首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让php7.4-fpm在ubuntu上启动的问题

让php7.4-fpm在ubuntu上启动的问题
EN

Stack Overflow用户
提问于 2021-01-17 21:22:51
回答 1查看 7.3K关注 0票数 1

我用的是nginx,而不是apache。刚从18.04升级到20.04,因此php7.2升级到php7.4。但是php7.4-fpm无法启动。这是我的日志。

代码语言:javascript
运行
复制
ian@thebeb:/etc/php/7.4/fpm$ sudo /etc/init.d/php7.4-fpm restart
Restarting php7.4-fpm (via systemctl): php7.4-fpm.serviceJob for php7.4-fpm.service failed because the control process exited with error code.
See "systemctl status php7.4-fpm.service" and "journalctl -xe" for details.
 failed!
ian@thebeb:/etc/php/7.4/fpm$ systemctl status php7.4-fpm.service
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sun 2021-01-17 21:01:20 GMT; 9s ago
       Docs: man:php-fpm7.4(8)
    Process: 63191 ExecStart=/usr/sbin/php-fpm7.4 --nodaemonize --fpm-config /etc/php/7.4/fpm/php-fpm.conf (code=exited, status=127)
    Process: 63205 ExecStopPost=/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUCCESS)
   Main PID: 63191 (code=exited, status=127)

Jan 17 21:01:20 thebeb systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Jan 17 21:01:20 thebeb php-fpm7.4[63191]: /usr/sbin/php-fpm7.4: symbol lookup error: /usr/sbin/php-fpm7.4: undefined symbol: pcre2_set_depth_limit_8
Jan 17 21:01:20 thebeb systemd[1]: php7.4-fpm.service: Main process exited, code=exited, status=127/n/a
Jan 17 21:01:20 thebeb systemd[1]: php7.4-fpm.service: Failed with result 'exit-code'.
Jan 17 21:01:20 thebeb systemd[1]: Failed to start The PHP 7.4 FastCGI Process Manager.
ian@thebeb:/etc/php/7.4/fpm$ journalctl -xe
-- A start job for unit UNIT has begun execution.
-- 
-- The job identifier is 431.
Jan 17 21:01:10 thebeb dbus-daemon[3745]: [session uid=1000 pid=3745] Activating via systemd: service name='org.freedesktop.Tracker1' unit='tracker-store.service' requested by ':1.2' (uid=1000 pid=3742 >
Jan 17 21:01:10 thebeb dbus-daemon[3745]: [session uid=1000 pid=3745] Successfully activated service 'org.freedesktop.Tracker1'
Jan 17 21:01:10 thebeb systemd[3723]: Started Tracker metadata database store and lookup manager.
-- Subject: A start job for unit UNIT has finished successfully
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- A start job for unit UNIT has finished successfully.
-- 
-- The job identifier is 431.
Jan 17 21:01:15 thebeb kernel: [UFW BLOCK] IN=enp0s3 OUT= MAC=01:00:5e:00:00:01:bc:14:01:0f:f6:e6:08:00 SRC=192.168.0.1 DST=224.0.0.1 LEN=36 TOS=0x00 PREC=0xC0 TTL=1 ID=0 DF PROTO=2 
Jan 17 21:01:20 thebeb sudo[63180]:      ian : TTY=pts/1 ; PWD=/etc/php/7.4/fpm ; USER=root ; COMMAND=/etc/init.d/php7.4-fpm restart
Jan 17 21:01:20 thebeb sudo[63180]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan 17 21:01:20 thebeb systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
-- Subject: A start job for unit php7.4-fpm.service has begun execution
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- A start job for unit php7.4-fpm.service has begun execution.
-- 
-- The job identifier is 3745.
Jan 17 21:01:20 thebeb php-fpm7.4[63191]: /usr/sbin/php-fpm7.4: symbol lookup error: /usr/sbin/php-fpm7.4: undefined symbol: pcre2_set_depth_limit_8
Jan 17 21:01:20 thebeb systemd[1]: php7.4-fpm.service: Main process exited, code=exited, status=127/n/a
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- An ExecStart= process belonging to unit php7.4-fpm.service has exited.
-- 
-- The process' exit code is 'exited' and its exit status is 127.
Jan 17 21:01:20 thebeb systemd[1]: php7.4-fpm.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- The unit php7.4-fpm.service has entered the 'failed' state with result 'exit-code'.
Jan 17 21:01:20 thebeb systemd[1]: Failed to start The PHP 7.4 FastCGI Process Manager.
-- Subject: A start job for unit php7.4-fpm.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- A start job for unit php7.4-fpm.service has finished with a failure.
-- 
-- The job identifier is 3745 and the job result is failed.
Jan 17 21:01:20 thebeb sudo[63180]: pam_unix(sudo:session): session closed for user root
Jan 17 21:01:41 thebeb tracker-store[63047]: OK
Jan 17 21:01:41 thebeb systemd[3723]: tracker-store.service: Succeeded.
-- Subject: Unit succeeded
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- The unit UNIT has successfully entered the 'dead' state.
ian@thebeb:/etc/php/7.4/fpm$

符号查找错误,是符号查找错误: /usr/sbin/php-fpm7.4:未定义符号: pcre2_set_depth_limit_8。

我已经检查了我能想到的一切,并且找不到问题。现在我已经超出我的深度了!帮助。

在请求后添加:

代码语言:javascript
运行
复制
ian@thebeb:/etc/php/7.4/fpm$ ldd $(which php-fpm7.4)
    linux-vdso.so.1 (0x00007ffefb4e7000)
    libargon2.so.1 => /usr/lib/x86_64-linux-gnu/libargon2.so.1 (0x00007f13e38a6000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f13e388a000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f13e373b000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f13e3735000)
    libapparmor.so.1 => /usr/lib/x86_64-linux-gnu/libapparmor.so.1 (0x00007f13e3720000)
    libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f13e3671000)
    libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f13e34b5000)
    libssl.so.1.1 => /usr/local/lib/libssl.so.1.1 (0x00007f13e3422000)
    libcrypto.so.1.1 => /usr/local/lib/libcrypto.so.1.1 (0x00007f13e2f57000)
    libpcre2-8.so.0 => /usr/local/lib/libpcre2-8.so.0 (0x00007f13e2d0c000)
    libz.so.1 => /usr/local/lib/libz.so.1 (0x00007f13e2af0000)
    libsodium.so.23 => /usr/lib/x86_64-linux-gnu/libsodium.so.23 (0x00007f13e2a98000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f13e28a4000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f13e2881000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f13e3d6f000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f13e2876000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f13e284d000)
    liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f13e282c000)
    libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f13e270e000)
    libicuuc.so.66 => /usr/lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007f13e2526000)
    libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f13e2503000)
    libicudata.so.66 => /usr/lib/x86_64-linux-gnu/libicudata.so.66 (0x00007f13e0a42000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f13e0861000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f13e0846000)
ian@thebeb:/etc/php/7.4/fpm$ 
EN

回答 1

Stack Overflow用户

发布于 2021-01-17 21:30:22

pcre2_set_depth_limit_8是一个库符号引用(在我的系统上是在/usr/lib/apache2/modules/libphp8.0.so中),它再次出现在我的系统中,驻留在/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.0中。

所以,我怀疑你系统上的PCRE包被损坏了。检查libpcre2-8-0包的状态。

或者就这么做

代码语言:javascript
运行
复制
ldd /usr/sbin/php-fpm7.4 | grep pcre2

并检查它指向的位置,或者它说没有找到库(在后一种情况下,只需安装它,显然该库的依赖检查系统就坏了,因为它没有发现缺少的地方)。

如果它确实指向一个.so文件,那么让我们检查上述文件:例如(我只有一个树莓可用)

代码语言:javascript
运行
复制
 nm -gD  /usr/lib/arm-linux-gnueabihf/libpcre2-8.so.0.7.1

应该报告库中的所有符号,而grep‘’ping为我们找到了它:

代码语言:javascript
运行
复制
 0000f508 T pcre2_set_depth_limit_8

如果是而不是,那就意味着库中不包含符号--在我看来,这意味着图书馆必须受到某种程度的破坏,因为在其他系统中,符号就在那里。

Ubuntu 20.04

我记得我在别的地方有一辆20.04。那里的图书馆是libpcre2-8.so.0.9.0

代码语言:javascript
运行
复制
-rw-r--r-- 1 root root 584392 Dec  7  2019 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0

符号就在那里。我拥有的Ubuntu包是libpcre2-8-0:amd64

代码语言:javascript
运行
复制
 # nm -gD /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0 | grep pcre2_set_depth_limit_8
 00000000000116f0 T pcre2_set_depth_limit_8
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65766097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档