Ubuntu Apache: httpd.conf hoặc apache2.conf?


43

Tôi nên sử dụng một trong hai tệp này để định cấu hình Apache?

Cái httpd.conftrống rỗng, trong khi apache2.confthì không.

Nó làm tôi bối rối!

Câu trả lời:


46

Httpd.conf được thiết kế cho cấu hình người dùng. Bạn thực sự không nên chỉnh sửa apache2.conf vì nó có thể được cập nhật bởi các bản nâng cấp trong tương lai.

Một tùy chọn bổ sung là chỉ cần đặt cấu hình tùy chỉnh của bạn vào /etc/apache2/conf.d, tất cả các tệp trong thư mục này cũng được bao gồm.


5
Tôi không có tệp có tên apapche2.conf
Doug Molineux

18

Đây không phải là lựa chọn duy nhất của bạn. Trên Ubuntu / Debian, Apache cũng xử lý tất cả các tệp trong /etc/apache2/sites-enabled/( phải là liên kết tượng trưng đến các tệp trong sites-available/thư mục, được quản lý bởi a2ensitea2dissitecác chương trình)

Bạn dự định sử dụng các thư mục này cho VirtualHosts.


1
Đây là câu trả lời chính xác ! và cả các tệp cấu hình cổng / mod có sẵn nếu bạn muốn giải thích câu trả lời của mình
Sudhi

5

apache2.conf bao gồm httpd.conf:

a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf 
Include /etc/apache2/httpd.conf

Tôi nghĩ rằng httpd.conf không được dùng nữa, nhưng chỉ để lại cho những người bảo thủ để họ tìm thấy chúng ...

BIÊN TẬP:

Sau khi đọc câu trả lời của Rob, tôi đã làm một grep tốt hơn:

a@test:/etc/apache2$ grep -C 1 httpd.conf apache2.conf 
# Include all the user configurations:
Include /etc/apache2/httpd.conf

Cấu hình người dùng là ...


6
+1 "httpd.conf bị phản đối"
feeela

1

Quỹ phần mềm Apache xuất bản nhiều bit phần mềm, một trong số đó là máy chủ web có tên httpd. Các nguồn dự án httpd bao gồm trong số những thứ khác một httpd.conftệp cấu hình mẫu, được cài đặt theo mặc định trong /usr/local/etc/httpdhoặc /etc/httpd. Bạn sẽ tìm thấy httpd được đặt tên như vậy trên hầu hết các hệ thống.

Tuy nhiên, từ rất lâu rồi, một người nào đó trong bản phân phối Debian GNU / Linux đã quyết định thay đổi tên của phần mềm trong bản phân phối đó từ httpdthành apache2. Do đó, trên hệ thống Debian, bạn sẽ tìm thấy một tệp cấu hình có tên apache2.conftrong một thư mục có tên /etc/apache2. Tôi không biết ai đã làm điều này hoặc tại sao, nhưng đó là một sự nhầm lẫn lâu năm ngang bằng với việc gọi Windows là "Microsoft" hoặc ESXi "VMware". Các bản phân phối dựa trên Debian, chẳng hạn như Ubuntu, thừa hưởng sự kỳ lạ này. Thậm chí xa lạ, sau đó chúng bao gồm một tệp /etc/apache2/httpd.confIncludetừ apache2.confđó người dùng có thể đặt cấu hình tùy chỉnh.

Vì vậy, câu trả lời là, nếu bạn đang sử dụng hệ thống dựa trên Debian, bạn sẽ điều khiển bộ não của mình thực hiện mọi thứ theo cách mà Debian muốn bạn làm. Nếu không, bạn thường làm mọi thứ theo cách thông thường như dự án httpd ngược dòng thực hiện.


1

Apache 2.4

Sử dụng:

Đặt bất kỳ cấu hình tùy chỉnh trong /etc/apache2/conf-available/{name}.conf

Bật / Tắt cấu hình của bạn bằng cách sử dụng sudo a2enconf {name}hoặc sudo a2disconf {name}.

(Sau đó khởi động lại dịch vụ apache2.)

Đừng sử dụng:

httpd.conf không được dùng nữa và bạn KHÔNG nên nhìn thấy nó nữa - nếu bạn làm thế, hãy để trống như đã cài đặt.

apache2.conf vẫn được cài đặt, nhưng hãy để nó một mình nếu bạn muốn nâng cấp sạch / dễ dàng Apache.

-

Bất cứ điều gì bạn có thể thấy trong cấu hình Apache 'toàn cầu' đều có thể được thêm / ghi đè theo cấu hình tùy chỉnh của bạn như trên.

Thêm: https://stackoverflow.com/a/11687212/503621


0

Nếu apache2.confkhông trống và httpd.conftrống, có lẽ bạn nên sử dụng apache2.conf;-)

Nhưng tôi cho rằng cái này bao gồm cái kia (và cái kia được giữ hoàn toàn vì lý do tương thích ngược) - vì vậy, nó không nên thay đổi nhiều.


Tuy nhiên, nếu bạn muốn thêm một cái gì đó, như một cái mới VirtualHost: không có thư mục con nào khác, trong đó bạn có thể đặt tệp của mình và có bao gồm nó không?

Nó có thể là một giải pháp tốt hơn: bạn sẽ không sửa đổi tệp mặc định - điều này sẽ đơn giản hóa các bản cập nhật.


Như mentionned bởi Pascal, nếu bạn muốn thêm một VirtualHost mới, bạn nên thêm một file mới dưới sites-available và sau đó có nó liên kết mềm trong sites-enabled với a2ensite lệnh - help.ubuntu.com/6.06/ubuntu/serverguide/ C / httpd.html
ccheneson

0

chỉ cần mở apache2.conf và xem nội dung:

Include /etc/apache2/mod-enabled/*.conf
Include /etc/apache2/httpd.conf

Vì vậy, nếu bạn muốn bao gồm cấu hình của riêng bạn, hãy thêm nó vào httpd.conf và apache2.conf sẽ tự động lấy nó.

Như những người khác nói, apache2.conf có thể tạo ra máy và tốt hơn hết là đừng chạm vào nó.

Để biết thêm thông tin, nói chung Ubuntu sử dụng apache2.conf và Centos sử dụng httpd.conf. Vì vậy, tất cả các tệp này phụ thuộc vào hệ điều hành bạn có.


-2

Để tìm tên và vị trí của tệp cấu hình, bạn sẽ phải:

1) Tìm kiếm khi quá trình được gọi, trong trường hợp này làm việc với người dùng apache:

ps -ef | grep apache

(trong ví dụ này, trả về httpd:)

2) Hiển thị các biến được sử dụng bởi nhị phân:

httpd -V | grep 'HTTPD_ROOT' && httpd -V | grep 'SERVER_CONFIG_FILE'

Trích xuất và ảnh chụp màn hình tại: http://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html


Xin chào, có vẻ như tôi đã trả lời một câu hỏi đã được trả lời, một câu hỏi đã được trả lời từ nhiều năm trước. Ngoài ra, giải pháp của bạn không giúp người hỏi ban đầu giải quyết vấn đề, tập tin cấu hình nào là cách thực hành tốt nhất để sử dụng.
M. Glatki
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.