ubuntu apache2.service:控制过程已退出,代码=已退出状态=139

xxhby3vn  于 2023-10-17  发布在  Apache
关注(0)|答案(3)|浏览(241)

我在ubuntu 18.04上安装了apache 2。这是全新安装,所有默认配置。
我尝试启动Apache 2,但失败了。这就是我所看到的

# 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/apache 2/error. log时,它是空的。
这个错误有什么问题?

oxf4rvwz

oxf4rvwz1#

“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对apache 3来说不那么困惑了:

$ 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的评论激发了这一系列的研究!

huus2vyu

huus2vyu2#

我得到了这个错误,我通过以下命令在我的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版本进行修改。

svdrlsy4

svdrlsy43#

我只是想分享我的案例。我在Ubuntu 22.04中安装了多个PHP版本。即使我输入sudo a2dismod php5.6,然后输入sudo a2dismod php7.2,apache 2服务也无法启动。问题是我的php7.0 mod已启用。我不知道为什么它被激活了。所以,如果你仍然没有启动apache 2服务,尝试禁用所有apache 2-mod-php到你安装的每个php版本。然后启用您要使用的版本。
我不知道为什么我找不到mod目录与汤姆给的命令。
现在,我的php mods-enabled对apache 3来说不那么困惑了:
$ l mods-*/php*
上面写着:

ls: cannot access 'mods-*/php*': No such file or directory

但是,由于我的LAMPP堆栈运行没有问题,我不关心“mod目录”至少现在

相关问题