gpt4 book ai didi

php - 在 ubuntu 上启动 php7.4-fpm 时出现问题

转载 作者:行者123 更新时间:2023-12-04 18:43:25 27 4
gpt4 key购买 nike

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

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: undefined symbol :pcre2_set_depth_limit_8。
我已经检查了我能想到的所有内容,但无法发现问题。现在我已经超出了我的深度!帮助。
请求后添加:
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$

最佳答案

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 的状态包裹。
或者只是做

ldd /usr/sbin/php-fpm7.4 | grep pcre2
并检查它指向的位置,或者它是否说找不到该库(在后一种情况下,您只需要 apt-get 安装它,显然该库的依赖项检查系统已损坏,因为它没有发现缺少)。
如果它确实指向一个 .so 文件,那么让我们检查一下该文件:例如(我只有一个 Raspberry 可用)
 nm -gD  /usr/lib/arm-linux-gnueabihf/libpcre2-8.so.0.7.1
应该报告库中的所有符号,而我们的 grep'ping 确实找到了它:
 0000f508 T pcre2_set_depth_limit_8
如果是 不是 ,那么这意味着该库不包含该符号-对我而言,这表明该库必须以某种方式损坏,因为在其他系统上该符号存在。
Ubuntu 20.04
我记得我在其他地方有一个 20.04 可用。图书馆有 libpcre2-8.so.0.9.0 :
-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 .
 # 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

关于php - 在 ubuntu 上启动 php7.4-fpm 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65766097/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com