Я вкладываю проблему 18.04
.I хотят настроить SSL для моего веб-сайта, таким образом, я изменяю профиль в etc/apache2/ports.conf
и добавьте строку как Listen 443
, но когда я делаю service apache2 restart
апачский сервис не может быть перезапущен, но он просто хорошо работает в 16.04
как этот. Затем я удаляю строку Listen 443
и сервис Apache работает снова..
Это говорит:Job for apache2.service failed because the control process exited with error code.See "systemctl status apache2.service" and "journalctl -xe" for details.
journalctl -xe
:
ubuntu apachectl[2867]: AH00526: Syntax error on line 8 of /etc/apache2/ports.conf:
ubuntu apachectl[2867]: Cannot define multiple Listeners on the same IP:port
ubuntu apachectl[2867]: Action 'start' failed.
ubuntu apachectl[2867]: The Apache error log may have more information.
ubuntu systemd[1]: apache2.service: Control process exited, code=exited status=1
ubuntu systemd[1]: apache2.service: Failed with result 'exit-code'.
ubuntu systemd[1]: Failed to start The Apache HTTP Server.
Строка 8, что я добавляю.. Это работа дозы в 16.04
если я делаю то же самое, я хочу знать, что-либо измененное в 18.04
?
Я провел маленькое расследование - да там другое поведение между версиями Apache2, которые идут с Ubuntu 16.04 и Ubuntu 18.04.
16.04 идет с Apache/2.4.18 и существует, неважно, сколько раз Вы повторите идентичный, Слушают директивы - я протестировал это на виртуальной машине.
18.04 идет с Apache/2.4.29, и в текущей документации Apache2.4 записан:
Состояние ошибки
Несколько Слушают, директивы для того же IP-адреса и порта уже приведут к Адресу используемое сообщение об ошибке.
В Вашем случае директива Listen 443
появляется дважды в рамках конфигурации Apache, таким образом, согласно этим новым правилам нормально получить вышеупомянутую ошибку.
По умолчанию, в ports.conf
, директива Listen 443
с включают <IfModule>
теги, следующим образом:
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Это означает, что будет активно только когда mod_ssl
(или mod_gnutls
) включен. Так, если Вы включили mod_ssl
, Вы не должны помещать никого дополнительного Listen 443
.
Можно заняться расследованиями сколько раз и где директива Listen 443
появляется в Вашей конфигурации командой:
grep -rni 'listen 443' /etc/apache2/
Можно проверить, какие модули Apache включены командой (командами):
sudo apachectl -M
sudo apachectl -M | grep 'ssl\|tls'
Можно проверить, слушает ли какой-либо сервис порт 443 и который является им командами:
sudo lsof -i -n -P | grep ':443'
sudo netstat -peanut | grep ':443'
Дальнейшее чтение: Как защитить Apache с, Давайте Зашифруем.