xdn*_*oot 7 apache ubuntu apache2
我在 ubuntu 18.04 上安装了 apache2。这是具有所有默认配置的全新安装。
我试图启动 apache2 但失败了。这就是我所看到的。
# systemctl status apache2.service 
? apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           ??apache2-systemd.conf
   Active: failed (Result: exit-code) since Wed 2020-03-11 23:17:35 WIB; 13s ago
  Process: 9151 ExecStart=/usr/sbin/apachectl start (code=exited, status=139)
Mar 11 23:17:35 xdn.id systemd[1]: Starting The Apache HTTP Server...
Mar 11 23:17:35 xdn.id apachectl[9151]: Segmentation fault
Mar 11 23:17:35 xdn.id apachectl[9151]: Action 'start' failed.
Mar 11 23:17:35 xdn.id apachectl[9151]: The Apache error log may have more information.
Mar 11 23:17:35 xdn.id systemd[1]: apache2.service: Control process exited, code=exited status=139
Mar 11 23:17:35 xdn.id systemd[1]: apache2.service: Failed with result 'exit-code'.
Mar 11 23:17:35 xdn.id systemd[1]: Failed to start The Apache HTTP Server.
当我检查 /var/log/apache2/error.log 时,有空。
这个错误有什么问题?
Tom*_*ung 20
“status=139”错误一定与启用了多个相互冲突的 PHP 版本有关。
我正在运行 18.04 并且我只在本地运行的旧 PHP 站点停止工作。我猜 aptitude 安装并启用了 php7.2,可能是几周前我安装了 kubuntu-desktop 时。
无论如何,我启用了两个版本的 PHP:
 $ cd /etc/apache2/
 $ l mods-*/php*
-rw-r--r-- 1 root root 867 Jun  9  2017 mods-available/php5.6.conf
-rw-r--r-- 1 root root 102 Jun  9  2017 mods-available/php5.6.load
-rw-r--r-- 1 root root 867 Mar  2  2017 mods-available/php7.0.conf
-rw-r--r-- 1 root root 102 Oct  1  2018 mods-available/php7.0.load
-rw-r--r-- 1 root root 855 Jul  7  2017 mods-available/php7.1.conf
-rw-r--r-- 1 root root 102 Jul  7  2017 mods-available/php7.1.load
-rw-r--r-- 1 root root 855 Feb  8  2019 mods-available/php7.2.conf
-rw-r--r-- 1 root root 102 Feb  8  2019 mods-available/php7.2.load
lrwxrwxrwx 1 root root  29 Jul  1  2017 mods-enabled/php5.6.conf -> ../mods-available/php5.6.conf
lrwxrwxrwx 1 root root  29 Jul  1  2017 mods-enabled/php5.6.load -> ../mods-available/php5.6.load
lrwxrwxrwx 1 root root  29 May 28 06:05 mods-enabled/php7.2.conf -> ../mods-available/php7.2.conf
lrwxrwxrwx 1 root root  29 May 28 06:05 mods-enabled/php7.2.load -> ../mods-available/php7.2.load
就我而言,我可以使用 php5.6,因为该站点不在线并且仅供我本地使用。所以禁用 7.2 就成功了:
sudo a2dismod php7.2
现在我的 php mods-enabled 对 apache3 不那么令人困惑了:
 $ l mods-*/php*
-rw-r--r-- 1 root root 867 Jun  9  2017 mods-available/php5.6.conf
-rw-r--r-- 1 root root 102 Jun  9  2017 mods-available/php5.6.load
-rw-r--r-- 1 root root 867 Mar  2  2017 mods-available/php7.0.conf
-rw-r--r-- 1 root root 102 Oct  1  2018 mods-available/php7.0.load
-rw-r--r-- 1 root root 855 Jul  7  2017 mods-available/php7.1.conf
-rw-r--r-- 1 root root 102 Jul  7  2017 mods-available/php7.1.load
-rw-r--r-- 1 root root 855 Feb  8  2019 mods-available/php7.2.conf
-rw-r--r-- 1 root root 102 Feb  8  2019 mods-available/php7.2.load
lrwxrwxrwx 1 root root  29 Jul  1  2017 mods-enabled/php5.6.conf -> ../mods-available/php5.6.conf
lrwxrwxrwx 1 root root  29 Jul  1  2017 mods-enabled/php5.6.load -> ../mods-available/php5.6.load
自然地,对于实时站点,人们会希望禁用 php-5.6 并启用 php7.2,因为您应该在现实生活中运行较新的版本。
sudo a2dismod php5.6
sudo a2enmod php7.2
然后 php mods 应该是这样的:
 $ l mods-*/php*
-rw-r--r-- 1 root root 867 Jun  9  2017 mods-available/php5.6.conf
-rw-r--r-- 1 root root 102 Jun  9  2017 mods-available/php5.6.load
-rw-r--r-- 1 root root 867 Mar  2  2017 mods-available/php7.0.conf
-rw-r--r-- 1 root root 102 Oct  1  2018 mods-available/php7.0.load
-rw-r--r-- 1 root root 855 Jul  7  2017 mods-available/php7.1.conf
-rw-r--r-- 1 root root 102 Jul  7  2017 mods-available/php7.1.load
-rw-r--r-- 1 root root 855 Feb  8  2019 mods-available/php7.2.conf
-rw-r--r-- 1 root root 102 Feb  8  2019 mods-available/php7.2.load
lrwxrwxrwx 1 root root  29 May 29 17:43 mods-enabled/php7.2.conf -> ../mods-available/php7.2.conf                                                                         
lrwxrwxrwx 1 root root  29 May 29 17:43 mods-enabled/php7.2.load -> ../mods-available/php7.2.load                                                                         
不要忘记重新启动服务器!
systemctl restart apache2
感谢 Pavel 的评论激发了这方面的研究!
Pej*_*yri 10
我收到此错误,并通过以下命令在我的 ubuntu 20.04 中启用 PHP 版本 8.0(当前稳定)并禁用 PHP 版本 7.4(旧)来修复它:
sudo a2dismod php7.4
sudo a2enmod php8.0
sudo service apache2 restart
完成这些操作后,通过以下方式检查您的 apache 状态:
sudo systemctl status apache2.service
它必须是green并且必须向您展示active (running)。
注意:您可以对您拥有并想要更改的任何 PHP 版本执行此操作。
| 归档时间: | 
 | 
| 查看次数: | 10694 次 | 
| 最近记录: |