Я использую Ubuntu 15 64-bit:
$ uname -a
Linux {hostname} 4.2.0-16-generic
И я установил apache2
:
$ sudo apt-get install -y apache2
У меня есть mod_xxx.so
, который я поместил в: /usr/lib/apache2/modules/
. Я установил разрешения на 755 (rwx r-x r-x).
Я отредактировал apache2.conf
:
$ sudo vi /etc/apache2/apache2.conf
AddHandler xxx-handler .xxx
LoadModule xxx_module modules/mod_xxx.so
Я знаю, что это работает, так как я уже делал это на нескольких других машинах Linux.
Когда я пытаюсь перезапустить Apache, он не работает с этой ошибкой:
$ sudo service apache2 restart
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.
После выполнения, как сказано выше, systemctl status apache2.service
, он показывает следующее:
apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Active: failed (Result: exit-code) since Wed 2016-03-09 10:32:34 GMT; 9s ago
Docs: man:systemd-sysv-generator(8)
Process: 3479 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 3503 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)
Mar 09 10:32:34 Ubuntu14 apache2[3503]: *
Mar 09 10:32:34 Ubuntu14 apache2[3503]: * The apache2 configtest failed.
Mar 09 10:32:34 Ubuntu14 apache2[3503]: Output of config test was:
Mar 09 10:32:34 Ubuntu14 apache2[3503]: apache2: Syntax error on line 224 of...y
Mar 09 10:32:34 Ubuntu14 apache2[3503]: Action 'configtest' failed.
Mar 09 10:32:34 Ubuntu14 apache2[3503]: The Apache error log may have more i....
Mar 09 10:32:34 Ubuntu14 systemd[1]: apache2.service: Control process exite...=1
Mar 09 10:32:34 Ubuntu14 systemd[1]: Failed to start LSB: Apache2 web server.
Mar 09 10:32:34 Ubuntu14 systemd[1]: apache2.service: Unit entered failed state.
Mar 09 10:32:34 Ubuntu14 systemd[1]: apache2.service: Failed with result 'e...'.
Hint: Some lines were ellipsized, use -l to show in full.
Поэтому я пытался искать везде, где указан LoadModule
. Я попробовал сделать следующее:
$ sudo grep "LoadModule" /
Я также попробовал следующее:
sudo find / -type f grep -l "LoadModule"
Все еще безрезультатно.
Где указан LoadModule
в Apache 2.4.12
?
Я знаю, что в Apache 2.4.7
он находится в файле apache.conf
, в котором я использовал ту же логику, что и в более новой версии.
Это делается на виртуальной машине, поэтому, если произойдет ошибка, я могу очистить машину и запустить снова. Я также являюсь пользователем root.
Проблема здесь в том, что мне пришлось использовать:
sudo a2enmod xxx.load
Затем он сказал перезапустить Apache2. Я сделал это, и теперь все работает.
Эта версия Apache (2.4.12) работает иначе, чем 2.4.7, поэтому мне пришлось сделать все немного по-другому.
Я решил проблему.
$ sudo service apache2 start
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
apache2.service Failed Because the Control Process Exited with Error Code and apache2 service activation:failed perfect solution.
$ systemctl restart apache2
$ journal -xe
$ sudo apt-get purge apache2
$ sudo apt autoremove apache2
$ sudo apt-get purge apache2
$ sudo apt-get purge apache2*
$ sudo apt-get install apache2
$ sudo service apache2 start