我使用的是 Ubuntu 15 64 位:
$ 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 rx rx)。
我编辑了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用户。
答案1
这里的问题是我必须使用:
sudo a2enmod xxx.load
然后它说重新启动Apache2。我这样做了,现在它正在发挥作用。
此版本的 Apache (2.4.12) 的工作方式与 2.4.7 的工作方式不同,因此我必须做一些不同的事情。
答案2
我已经解决了这个问题。
$ sudo service apache2 start
apache2.service 的作业失败,因为控制进程退出并出现错误代码。有关详细信息,请参阅“systemctl status apache2.service”和“journalctl -xe”。
apache2.service Failedbecause the Control Process Exited with Error Code and apache2 服务激活:失败完美解决方案。
$ 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