
У меня есть сервер Centos release 6.7, на котором я установил Apache 2.4. Сервер поставлялся с Apache 2.2, но я обновил его до Apache 2.4.
Время от времени система возвращается к использованию Apache 2.2, и я не знаю, почему.
Например, сегодня я понял, что все мои сайты упали. Поэтому я проверил статус httpd, и он был остановлен и не мог запуститься из-за синтаксической ошибки в httpd.conf
файле.
С помощью which
команды я обнаружил, что используемый httpd находился в /usr/sbin
папке, и на самом деле /etc/init.d/httpd
файл содержал следующее:
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
Это неправильно, так как моя установка Apache 2.4 находится в /opt/apache
. Поэтому, чтобы решить эту проблему, я изменил эти строки следующим образом:
apachectl=/opt/apache/bin/apachectl
httpd=${HTTPD-/opt/apache/bin/httpd}
И система снова начала использовать Apache 2.4.
Вопрос в том, как проверить, какие автоматические установки были выполнены, и как избежать повторения этого в будущем?
Кстати, когда я /usr/sbin/httpd -V
получал информацию об Apache, там было указано, что он был построен 11 мая прошлого года.
решение1
CentOS 6.x поставляется с Apache 2.2 (httpd-2.2), который периодически обновляется через yum. Похоже, что вы используете версию, отличную от той, что была в CentOS (так как она находится в /opt). Обычно, если система была настроена с httpd, она пытается перезапустить ее после любых обновлений. Вы можете проверить это, выполнив команду: grep -i httpd /var/log/yum.log и посмотрев, когда она была обновлена, или: rpm -qa -last | grep -i httpd. Это должно сказать вам, когда она была обновлена в последний раз, и вы можете соотнести свой сбой с этим временем.
Вероятно, лучше удалить http-2.2, если вы знаете, что он вам больше не нужен, и запустить версию в каталоге /opt.