Ubuntu Apache2 DefaultR.78Dir phải là một thư mục hợp lệ, tuyệt đối hoặc liên quan đến ServerRoot


14

Tôi có một máy chủ web chạy Ubuntu 17.04 mà tôi đang cố gắng thiết lập Apache. Mọi thứ diễn ra tuyệt vời cho đến khi tôi quyết định lưu trữ hai trang web trên một máy thông qua các máy chủ ảo. Bây giờ apachetừ chối bắt đầu với ngay cả một máy chủ duy nhất được kích hoạt. Mỗi lần tôi cố gắng bắt đầu, Apachetôi lại gặp lỗi này:

apache2: Syntax error on line 80 of /etc/apache2/apache2.conf:
DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot.

Không có nỗ lực nào của tôi để khắc phục điều này đã đến với bất cứ điều gì, kể cả:

apt purge apache2 && rm -r /etc/apache2 

Tất cả dòng 80 của thông báo lỗi cho tôi biết DefaultRuntimeDir ${APACHE_RUN_DIR}.

Và không có lúc nào tôi thấy nơi nào hoặc cái gì APACHE_RUN_DIRđược tuyên bố là.

Ai đó có thể giúp tôi không?

Câu trả lời:


15

Lệnh

source /etc/apache2/envvars

sắp xếp vấn đề của tôi ra (sau khi thử TẤT CẢ những người khác).

Để kiểm tra xem tất cả có tốt hay không sử dụng lệnh

apache2 -S

Tôi thấy rằng nó nhanh hơn so với việc sử dụng các bản ghi DNS của tôi.


Tôi đã sử dụng source /etc/apache2/envvarsnhưng sau đó thư mục chính của tôi đã thay đổi từ ~đến homevà khi tôi đã viết cd nó cho thấy -bash: cd: HOME not set. Khi tôi nhập envvars, một trong những dòng đầu tiên là # this won't be correct after changing uidunset HOME. Bất kỳ ý tưởng làm thế nào để khắc phục điều này?
Mihail Minkov


6

Apache2 sử dụng /etc/apache2/envvarsđể đặt các biến môi trường. Bạn có thể sử dụng thông tin này để đảm bảo các thư mục ${APACHE_RUN_DIR}trỏ đến là hợp lệ.

Tôi đã gặp vấn đề tương tự trong khi nâng cấp từ 14.04 lên 17.04. Vấn đề là: ${APACHE_RUN_DIR}đã được đặt thành /var/run/apache2, nhưng thư mục apache2 bị thiếu /var/run.

Cách khắc phục cho tôi là: mkdir /var/run/apache2


7
ngay cả khi bạn đã tạo thư mục hoặc nếu thư mục đã được trình bày (như trong tình huống của tôi), bạn phải chạy lệnh sau. source /etc/apache2/envvars
Peshmerge

bạn chỉ cần chạy lệnh envvares nếu bạn đang khởi động Apache mà không có phần khởi động, nếu bạn đang sử dụng init.d / system.d, tệp sẽ tự động được lấy nguồn.
Niyol

@Peshmerge cảm ơn! bạn có thể cho tôi biết làm thế nào để giữ lại nó sau khi khởi động lại? Có vẻ như khi khởi động lại, chúng ta phải thực hiện thủ công lệnh đó mọi lúc
T.Todua

1

trong trường hợp của tôi, nó liên quan đến dòng "Yêu cầu tất cả bị từ chối" trong tệp apache2.conf mà (một lần nữa) trong trường hợp của tôi được nhập vào chỉ là "Yêu cầu bị từ chối"


0

php5.6Mô-đun apache Reenebling giúp khắc phục vấn đề này.

Nhấn Ctrl+ Alt+ Tvà nhập chúng:

sudo a2dismod php5.6
sudo a2enmod php5.6

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

sudo service apache2 restart
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.