我最近将生产服务器从 PHP 7.4 升级到了 PHP 8.0(这是使用 ondrej 包)。作为参考,我使用的是 Ubuntu 20.04.3、apache2.4.46 和现在的 PHP8.0。
大约 18 小时后,apache 服务器停止响应,并给出空响应数据错误。Apache 给出以下错误:
[core:notice] [pid 1285919] AH00051: child pid 1329445 exit signal Segmentation fault (11), possible coredump in /etc/apache2
不幸的是,没有核心转储/etc/apache2/
。我还看到了有关启用核心转储的相互矛盾的信息,即 CoreDumpDirectory 可能会导致文件大小和其他问题。
我想知道几件事:
- 我应该如何在生产系统上调试 apache2?我应该启用 coredump 吗?确保它不会发疯并填满磁盘空间的最佳方法是什么?
- 我如何确保它不会再次出现故障?是否有一些监控工具或工具可用于重新启动 apache?
- 这仅仅是 PHP8.0 软件包问题吗?最近有人遇到过这种情况吗?以下是通过 php -m 安装的软件包:
[PHP Modules]
amqp
calendar
Core
ctype
curl
date
decimal
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmagick
hash
iconv
igbinary
intl
json
ldap
libxml
mbstring
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
OAuth
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
raphf
readline
redis
Reflection
rrd
session
shmop
SimpleXML
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
uuid
xhprof
xml
xmlreader
xmlwriter
xsl
yac
yaml
Zend OPcache
zip
zlib
zmq
[Zend Modules]
Zend OPcache
我能够运行service apache2 restart
以使一切恢复正常运行,但是在我从 PHP7/7.1/7.2/7.3/7.4 升级后的大约 3 年内,我没有遇到过任何类似的 apache2 问题。
任何建议都值得感激。