升级到 20.04 后 Apache2 和 php 无法启动

升级到 20.04 后 Apache2 和 php 无法启动

我已更新至 20.04,但并未立即测试 apache2。但在尝试使用以下命令安装 php 后:

sudo apt install php libapache2-mod-php php-mysql

当我尝试开始时,php我得到:

PHP Fatal error: Unable to start pcre module in Unknown on line 0

当我查看返回结果时,sudo systemctl status apache2我得到以下信息:

apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sun 2020-10-18 04:23:56 EDT; 53s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 35951 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 35968 (code=exited, status=254)

Oct 18 04:23:56 coyote-HP-250-G5-Notebook-PC systemd[1]: Starting The Apache HTTP Server...
Oct 18 04:23:56 coyote-HP-250-G5-Notebook-PC systemd[1]: Started The Apache HTTP Server.
Oct 18 04:23:56 coyote-HP-250-G5-Notebook-PC systemd[1]: apache2.service: Main process exited, c>
Oct 18 04:23:56 coyote-HP-250-G5-Notebook-PC systemd[1]: apache2.service: Failed with result 'ex>

apache2 error.log 中有相同的行php

PHP Fatal error:  Unable to start pcre module in Unknown on line 0
PHP Fatal error:  Unable to start pcre module in Unknown on line 0

答案1

虽然距离报告错误已经有一段时间了,但通常可以这样做来解决问题:

cd ~
mkdir pcre-bak
cd pcre-bak
mv /usr/local/lib/libpcre* .

这将pcre-bak在您的主目录中创建一个名为的目录,然后您将所有libpcre以 - 为前缀的文件从其当前目录移动到该目录。

完成后,使用以下命令启动/重新启动 apache:

sudo service apache2 restart

只要一切正常,您就可以删除该pcre-bak目录。发生这种情况是因为 PHP 在 7.3 版中从 PCRE 切换到了 PCRE2。除非特别告知不要安装,否则 Ubuntu 20.04 将安装 PHP 7.4。

如果你需要 PCRE2,你可以这样安装:

sudo apt-get install libpcre2-dev

相关内容