Apache 未在 linux mint 中启动
Apache not starting in linux mint
好的,所以,我是 Apache 的新手:我试图创建一个本地网站(在 sites-available 文件夹中创建了 .conf 文件,在 var/www/mysite/ 中创建了文件夹等)然后,我停止了 Apache(使用 systemctl stop apache2.service)但现在如果我尝试重新启动(systemctl restart apache2.service ) 它抛出这个错误:
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 的结果:
Mar 22 16:33:13 user-xxx apache2[10403]: * Starting Apache httpd web server apach
Mar 22 16:33:13 user-xxx apache2[10403]: *
Mar 22 16:33:13 user-xxx apache2[10403]: * The apache2 configtest failed.
Mar 22 16:33:13 user-xxx apache2[10403]: Output of config test was:
Mar 22 16:33:13 user-xxx apache2[10403]: apache2: Syntax error on line 140 of /etc/apache2/apache2.conf:
Mar 22 16:33:13 user-xxx apache2[10403]: Action 'configtest' failed.
以及 /etc/apache2/apache2.conf 中的第 140 行:
# Include module configuration:
IncludeOptional mods-enabled/*.load <--This one
IncludeOptional mods-enabled/*.conf
所以我尝试了:
sudo apt-get install libapache2-mod-php
然后我得到:
libapache2-mod-php is already the newest version (1:7.2+60+ubuntu16.04.1+deb.sury.org+1).
我还尝试了什么:删除 Apache 并再次安装,安装 lamp (sudo apt-get install lamp-server^)。
我已经删除了:mysite.conf 来自 available.sites ...
似乎没有任何效果,我一直在收到 "Job for apache2.service failed"。
好吧,有点愚蠢的错误,我 运行 apachectl configtest 得到更详细的错误,我得到:
apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax
error on line 3 of /etc/apache2/mods-enabled/php7.0.load: Cannot load
/usr/lib/apache2/modules/libphp7.0.so into server:
/usr/lib/apache2/modules/libphp7.0.so: cannot open shared object file:
No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.
所以我检查了 /etc/apache2/mods-enabled/php7.0.load 并且在第 3 行它有:
LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.so
但是在我的 /usr/lib/apache2/modules 文件夹中我有一个较新的模块:
libphp7.2.so
所以在/etc/apache2/mods-enabled/php7.0.load中我改成了:
LoadModule php7_module /usr/lib/apache2/modules/libphp7.2.so
然后重新启动 apache,它运行得非常棒!!!
注意:我不知道这是否是正确的方法,但它确实有效。
在我的例子中,升级到 Ubuntu 20.04 LTS 时失败了。模块 libphp7.2.so 而不是 libphp7.4.so 被加载到 conf 文件中 Melesio Marquez 的解决方案有效!
在 Ubuntu 20.04 上有同样的问题:
Syntax error on line 146 of /etc/apache2/apache2.conf:
Syntax error on line 3 of /etc/apache2/mods-enabled/php7.3.load:
Cannot load /usr/lib/apache2/modules/libphp7.3.so into server: /usr/lib/apache2/modules/libphp7.3.so:
cannot open shared object file: No such file or directory
已更新 /etc/apache2/mods-enabled/php7.3.load 以指向 libphp7.4.so:
#LoadModule php7_module /usr/lib/apache2/modules/libphp7.3.so
LoadModule php7_module /usr/lib/apache2/modules/libphp7.4.so
/etc/apache2/mods-enabled/ 中的文件是 /etc/apache2/mods-available/* 的符号链接
所以只需删除它们并创建新的。要在 /usr/bin/bar 处创建引用原始文件 /opt/foo 的符号链接,请使用:ln -s /opt/foo /usr/bin/bar
修复
cd /etc/apache2/mods-enabled/
rm php7.*
sudo ln -s /etc/apache2/mods-available/php7.4.load php7.4.load
sudo ln -s /etc/apache2/mods-available/php7.4.conf php7.4.conf
确保文件存在并且删除了旧链接。编辑符号链接将导致将来出现升级问题。
在 ubuntu 更新到 20.04 后,我将 PHP 更改为 7.4
sudo a2dismod php7.3
sudo a2enmod php7.4
sudo apachectl configtest
sudo systemctl restart apache2
您可以从这里查看您的 PHP 版本 ->
php -v
然后写这个命令
sudo a2dismod php7.3
您应该看到模块 php7.3
已禁用。
要激活新配置,您需要 运行:
systemctl restart apache2
如果你想确定检查你的confs
apache2ctl configtest
您应该会看到(语法正确)
最后,重新启动您的 Apache 服务器 (sudo systemctl restart apache2
)
我遇到了错误:
Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/
从 Ubuntu 18.04 升级到 20.04 后(php 7.3 到 php 7.4)
我用运行解决了
sudo apt install libapache2-mod-php7.4
好的,所以,我是 Apache 的新手:我试图创建一个本地网站(在 sites-available 文件夹中创建了 .conf 文件,在 var/www/mysite/ 中创建了文件夹等)然后,我停止了 Apache(使用 systemctl stop apache2.service)但现在如果我尝试重新启动(systemctl restart apache2.service ) 它抛出这个错误:
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 的结果:
Mar 22 16:33:13 user-xxx apache2[10403]: * Starting Apache httpd web server apach
Mar 22 16:33:13 user-xxx apache2[10403]: *
Mar 22 16:33:13 user-xxx apache2[10403]: * The apache2 configtest failed.
Mar 22 16:33:13 user-xxx apache2[10403]: Output of config test was:
Mar 22 16:33:13 user-xxx apache2[10403]: apache2: Syntax error on line 140 of /etc/apache2/apache2.conf:
Mar 22 16:33:13 user-xxx apache2[10403]: Action 'configtest' failed.
以及 /etc/apache2/apache2.conf 中的第 140 行:
# Include module configuration:
IncludeOptional mods-enabled/*.load <--This one
IncludeOptional mods-enabled/*.conf
所以我尝试了:
sudo apt-get install libapache2-mod-php
然后我得到:
libapache2-mod-php is already the newest version (1:7.2+60+ubuntu16.04.1+deb.sury.org+1).
我还尝试了什么:删除 Apache 并再次安装,安装 lamp (sudo apt-get install lamp-server^)。 我已经删除了:mysite.conf 来自 available.sites ...
似乎没有任何效果,我一直在收到 "Job for apache2.service failed"。
好吧,有点愚蠢的错误,我 运行 apachectl configtest 得到更详细的错误,我得到:
apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax
error on line 3 of /etc/apache2/mods-enabled/php7.0.load: Cannot load
/usr/lib/apache2/modules/libphp7.0.so into server:
/usr/lib/apache2/modules/libphp7.0.so: cannot open shared object file:
No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.
所以我检查了 /etc/apache2/mods-enabled/php7.0.load 并且在第 3 行它有:
LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.so
但是在我的 /usr/lib/apache2/modules 文件夹中我有一个较新的模块:
libphp7.2.so
所以在/etc/apache2/mods-enabled/php7.0.load中我改成了:
LoadModule php7_module /usr/lib/apache2/modules/libphp7.2.so
然后重新启动 apache,它运行得非常棒!!!
注意:我不知道这是否是正确的方法,但它确实有效。
在我的例子中,升级到 Ubuntu 20.04 LTS 时失败了。模块 libphp7.2.so 而不是 libphp7.4.so 被加载到 conf 文件中 Melesio Marquez 的解决方案有效!
在 Ubuntu 20.04 上有同样的问题:
Syntax error on line 146 of /etc/apache2/apache2.conf:
Syntax error on line 3 of /etc/apache2/mods-enabled/php7.3.load:
Cannot load /usr/lib/apache2/modules/libphp7.3.so into server: /usr/lib/apache2/modules/libphp7.3.so:
cannot open shared object file: No such file or directory
已更新 /etc/apache2/mods-enabled/php7.3.load 以指向 libphp7.4.so:
#LoadModule php7_module /usr/lib/apache2/modules/libphp7.3.so
LoadModule php7_module /usr/lib/apache2/modules/libphp7.4.so
/etc/apache2/mods-enabled/ 中的文件是 /etc/apache2/mods-available/* 的符号链接 所以只需删除它们并创建新的。要在 /usr/bin/bar 处创建引用原始文件 /opt/foo 的符号链接,请使用:ln -s /opt/foo /usr/bin/bar
修复
cd /etc/apache2/mods-enabled/
rm php7.*
sudo ln -s /etc/apache2/mods-available/php7.4.load php7.4.load
sudo ln -s /etc/apache2/mods-available/php7.4.conf php7.4.conf
确保文件存在并且删除了旧链接。编辑符号链接将导致将来出现升级问题。
在 ubuntu 更新到 20.04 后,我将 PHP 更改为 7.4
sudo a2dismod php7.3
sudo a2enmod php7.4
sudo apachectl configtest
sudo systemctl restart apache2
您可以从这里查看您的 PHP 版本 ->
php -v
然后写这个命令
sudo a2dismod php7.3
您应该看到模块 php7.3
已禁用。
要激活新配置,您需要 运行:
systemctl restart apache2
如果你想确定检查你的confs
apache2ctl configtest
您应该会看到(语法正确)
最后,重新启动您的 Apache 服务器 (sudo systemctl restart apache2
)
我遇到了错误:
Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/
从 Ubuntu 18.04 升级到 20.04 后(php 7.3 到 php 7.4)
我用运行解决了
sudo apt install libapache2-mod-php7.4