Các trang web nên sống trong / var / hoặc / usr / theo cách sử dụng được đề xuất?


62

Theo hướng dẫn về cấu trúc thư mục Linux , /usr/dành cho các tệp ứng dụng và /var/dành cho các tệp thay đổi (tôi giả sử điều này có nghĩa là "các tệp thuộc về các ứng dụng"). Điều này có đúng không?

Nếu đây là trường hợp thì tôi hơi bị giằng xé giữa việc sử dụng một trong hai. Trang web là một ứng dụng (nếu nó là động, có thể nói), nhưng trong các trường hợp khác, nó chỉ là một tập hợp các tệp được sử dụng bởi Apache.

Thư mục www mặc định tồn tại /var/www/, vì vậy chúng ta nên theo dõi bằng cách sử dụng /var/websites/(hoặc một cái gì đó tương tự), hoặc chọn /usr/websites/vì chúng có thể là các ứng dụng?

Đây là một câu hỏi rất nhỏ, nhưng dù sao nó cũng làm tôi khó chịu. Đối với trường hợp của chúng tôi, tôi đang nghiêng về phía trước /usr/webhoặc một cái gì đó tương tự, vì các trang web của chúng tôi đều là các ứng dụng.

Cập nhật:

Điều này là cho các trang web công ty của chúng tôi; nó không phải là một máy chủ lưu trữ được chia sẻ, vì vậy chúng tôi không cần phải lo lắng về việc tách chúng ra /home/hoặc bất cứ thứ gì tương tự.


10
Tôi không nghĩ câu hỏi đó là tầm thường; thực sự nó là một thứ khá tốt Hấp dẫn.
Aron Rotteveel

Câu trả lời:


63

Theo FHS , /usrlà dành cho shareable, read-only data- không phải nơi bạn muốn đặt trang web. Đây là nơi bạn nên đặt mã của mình (ví dụ Fedora thực hiện điều này cho Wordpress). Xem thêm hướng dẫn đóng gói tài sản web cho Fedora.

/varlà "tệp dữ liệu biến. Điều này bao gồm các thư mục và tệp đệm, dữ liệu quản trị và ghi nhật ký, và các tệp tạm thời và tạm thời." - tốt hơn, nhưng vẫn không hoàn toàn đúng - nhưng rất nhiều hệ thống sẽ sử dụng /var/www, vì vậy ngay cả khi bạn sai khi đặt nó ở đó, bạn đang ở trong một công ty tốt.

/srvdành cho "dữ liệu dành riêng cho trang web được phục vụ bởi hệ thống này." - có vẻ như là một trận đấu tốt, nhưng ít phổ biến hơn nhiều /var/www.

Vị trí phổ biến khác để đặt các tệp trang web nằm bên dưới /home- bằng cách tạo một người dùng đặc biệt được gọi websitehoặc như vậy, sau đó đặt các tệp bên trong homedir của người dùng đó (ví dụ /home/website:).


4
Ah, công việc của tôi sử dụng /srv- như tôi chưa bao giờ thấy điều này trước đây, tôi nghĩ rằng nó được tạo ra bởi họ. Có phải đó là một điều Redhat / CentOS?
Nick Bolton

12
Mặc định chỉ được đặt thành /var/wwwvì các bản phân phối không được phép chạm vào /srv; đó là cho quản trị viên hệ thống để cấu hình. Vì vậy, đó là lý do tại sao nó "ít phổ biến hơn" và cũng đúng.
Michael Hampton

28

Hãy xem Tiêu chuẩn phân cấp hệ thống tập tin ( Wikipedia ). Bản thân tôi sử dụng / srv / web / $ domain / {htdocs, log, cgi-bin, ...}.


3
Tôi cũng làm như vậy, nhưng thay vì "www", tôi luôn sử dụng tên dịch vụ "httpd". Vì vậy, tôi có / srv / httpd / $ domain ... hoặc / srv / smbd / sharename ... Như thế này sẽ dễ dàng hơn để xem dịch vụ nào đang phục vụ các tệp. Ví dụ: trên một số hệ thống, chúng tôi có tên miền / srv / nginx / $
Raffael Luthiger

9

Trang web nên sống trong thư mục nhà của người dùng. Chúng là dữ liệu người dùng, nên được cách ly bởi một người dùng trên mỗi trang và nội dung động sẽ chạy lại dưới dạng một người dùng riêng biệt, với các tệp mà nội dung động cần đọc và sửa đổi được cấp quyền phù hợp để làm như vậy.

Cập nhật:

Chỉ vì đó không phải là một máy chủ lưu trữ được chia sẻ không có nghĩa là bạn không nên tham gia vào các hoạt động bảo mật tốt và tách biệt các vai trò độc lập trong các khu vực bảo mật của riêng họ.


7

Hướng dẫn dứt khoát là Tiêu chuẩn phân cấp hệ thống tập tin nói rằng đó /srvlà nơi thích hợp.


2
Tôi không đọc nó theo cách đó - hoặc ít nhất, tôi đọc nó như mơ hồ về điểm này. Hầu hết các trang web không được phục vụ đơn giản by this system, chúng được phục vụ bởi cả một nhóm các hệ thống; và hai câu bắt đầu từ This setup will differ from host to host.gợi ý rằng đây không phải là nơi dành cho các tệp được chia sẻ trên nhiều máy chủ. Đó là một nơi khá có khả năng mặc dù - chắc chắn là phù hợp hơn /usr, và được cho là tốt hơn/var
James Polley

1
Tôi không nghĩ FHS hoàn toàn dứt khoát. Re: (Từ Wikipedia): Hầu hết các bản phân phối Linux tuân theo FHS và tuyên bố đó là chính sách của riêng họ để duy trì tuân thủ FHS. Tuy nhiên, phần lớn (kể từ năm 2009) các bản phân phối, bao gồm cả các bản phân phối được phát triển bởi các thành viên của Nhóm Tiêu chuẩn Tự do, không hoàn toàn tuân theo tiêu chuẩn đề xuất.
Michael Graff

6
Đó là điều tốt đẹp về tiêu chuẩn - có rất nhiều lựa chọn! :)
James Polley

3

Nơi họ sống trên đĩa có rất ít vấn đề. Đó là nơi bạn muốn họ.

Tôi có một liên kết tượng trưng từ / www trên tất cả các máy của mình đến nơi chúng thực sự sống, vì vậy tôi không bao giờ phải tự hỏi từ máy này sang máy khác. Một số máy cũ hơn có / u0 và / u1 cho đĩa người dùng và tôi đặt các thứ web ở đó. Một số có / nhà gắn trực tiếp, vì vậy họ đi đến đó, nhưng / www luôn chỉ đến đúng nơi.

Tôi cũng không đặt bất kỳ cấu hình nào trong / usr cũng như trong / var. Nó đi vào / cục bộ (mà bạn đoán nó là một liên kết tượng trưng ở đâu đó trên / u0 hoặc / u1). Điều này làm cho việc sao lưu mọi thứ dễ dàng. Tôi chỉ sao lưu các đĩa người dùng.

Tất nhiên, tôi có một trang phân phối chính cho HĐH mà tôi chọn, NetBSD. Tôi tạo hệ thống như tôi muốn trên máy chính này (thực sự là một ví dụ xen kẽ) và rsync / usr xung quanh. Làm cho cuộc sống của tôi dễ dàng.


6
Sẽ tốt thôi nếu bạn là người hoạt động một người, hoặc thậm chí là một nhóm nhỏ làm việc gần gũi và quen thuộc với nhau - học cách 'đúng' để làm điều đó có thể sẽ mất nhiều thời gian hơn là chỉ làm nó Nếu bạn có một hoạt động lớn và thường xuyên đưa người mới lên máy bay, việc phải tăng tốc họ với bố cục như thế này sẽ mất rất nhiều thời gian - gắn bó (hoặc ít nhất là, gần với) FHS sẽ tiết kiệm thời gian với mỗi người mới mà bạn mang vào đội.
James Polley

5
Khi bạn sử dụng 8 hệ điều hành khác nhau, các tiêu chuẩn nội bộ sẽ dễ học hơn rất nhiều so với mỗi hệ điều hành-os-does-it-it-own-way.
Michael Graff

1
@James Polley Mất bao nhiêu thời gian để nói với một người thuê mới "chúng tôi đưa đồ vào /path/we/chose"?
ceejayoz

@ceejayoz Nếu bạn có nhiều hơn hai loại "nội dung" thì việc nói với họ "chúng tôi theo FHS" đơn giản hơn nhiều, mặc dù điều đó có thể yêu cầu một số chi tiết bổ sung cho một số loại "nội dung".
tripleee

3

Máy chủ web Apache có trang web mặc định theo / var / www / nhưng đề nghị đặt các trang web khác dưới / srv /

Tôi nhận thấy điều này trên Ubuntu Server 14.04 LTS. Tệp apache2.conf mặc định của nó chứa khối nhận xét:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

2

Theo tôi bạn KHÔNG BAO GIỜ và KHÔNG BAO GIỜ đưa bất kỳ Dịch vụ Internet nào vào vùng hệ thống chung.

Dịch vụ Internet của bạn (Apache / Tomcat / SSH, v.v.) là một cửa trước, sau đó nếu bạn đặt các dịch vụ đó vào Vùng hệ thống, bạn sẽ dễ bị tấn công.

Nhiều hơn nếu bạn đã đặt các dịch vụ khác biệt của mình vào vùng hộp cát an toàn như phân vùng tách khác.

Đây là một ví dụ về cấu trúc bạn có thể sử dụng:

/ --> Root System --> On SDA1 --> Root and System security operator access only
 |
 | -->/usr /etc /var etc.

/SRV --> Web Root --> On SDB1 --> Web users access with minimal rights access.
 |
 |-->/srv/bin & /srv/dta
      |
      |-->/srv/bin/apache (or any other APPLICATION Binaries)
      |-->/srv/dta/SQL (or any other APPLICATION Datas like a 
                        database or web PHP files etc.)

1
Bạn có thể mở rộng trên "vùng hệ thống chung" không? Đây không phải là một thuật ngữ tôi đã nghe trước đây và tôi không chắc ý của bạn là gì. /srv/bindường như vi phạm FHS, trong đó tuyên bố /srvlà dành cho dữ liệu, không phải nhị phân
James Polley

Cũng có nghĩa là Vùng hệ thống chung, một phần của HĐH nơi lưu trữ tất cả các thành phần Hệ thống như, tài khoản, mật khẩu, nhị phân Quản trị viên và Thư viện. Tôi biết rằng bản cài đặt của tôi không hoàn toàn tôn trọng FHS nhưng tôi hoàn toàn có thể chia HĐH thành hai phần. 1 ° / - Hệ thống khá khắc phục (ngoại trừ cài đặt công cụ quản trị và cập nhật) 2 ° / - Các ứng dụng, dữ liệu và Người dùng Quê hương. Với cách này, nếu bạn gặp một số rắc rối với hệ thống hoặc dữ liệu của mình, bạn sẽ không mất tất cả dữ liệu.
Tiến sĩ I

Tôi hiểu rồi. Điều này có ý nghĩa - đó là lý do tại sao hầu hết các máy tính để bàn đều đặt /hometrên một phân vùng riêng - bạn có thể thổi bay mọi thứ trên /homephân vùng không và không lo mất dữ liệu người dùng. +1 để phân tách dữ liệu.
James Polley
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.