Gần đây tôi đã nâng cấp một máy chủ sản xuất từ PHP 7.4 lên PHP 8.0 (máy chủ này đang sử dụng các gói ondrej). Để tham khảo, tôi đang sử dụng Ubuntu 20.04.3, apache2.4.46 và giờ là PHP8.0.
Sau khoảng 18 giờ, máy chủ apache ngừng phản hồi, đưa ra lỗi dữ liệu phản hồi trống. Apache đưa ra lỗi sau:
[core:notice] [pid 1285919] AH00051: con pid 1329445 tín hiệu thoát Lỗi phân đoạn (11), có thể kết xuất lõi trong /etc/apache2
Thật không may, không có coredump nào ở trong /etc/apache2/
. Tôi cũng thấy thông tin mâu thuẫn về việc kích hoạt kết xuất lõi, cụ thể là CoreDumpDirectory có thể gây ra sự cố với kích thước tệp và những thứ khác.
Tôi đã tự hỏi một vài điều:
- Tôi nên tiến hành gỡ lỗi apache2 trên hệ thống sản xuất như thế nào? Tôi có nên kích hoạt coredumps không? Cách tốt nhất để đảm bảo nó không phát điên và lấp đầy dung lượng đĩa là gì?
- Làm cách nào tôi có thể đảm bảo rằng nó không bị hỏng nữa? Có công cụ hoặc công cụ giám sát nào tôi nên sử dụng để khởi động lại apache không?
- Đây có phải chỉ là sự cố gói PHP8.0 không? Có ai gặp phải vấn đề này gần đây không? Dưới đây là các gói được cài đặt qua php -m:
[Mô-đun PHP]
amqp
lịch
Cốt lõi
ctype
Xoăn
ngày tháng
số thập phân
nhà thờ
Exif
FFI
nộp thông tin
lọc
ftp
gđ
lấy văn bản
ma thuật
băm
iconv
nhị phân
quốc tế
json
ldap
libxml
chuỗi mb
bộ nhớ đệm
bộ nhớ đệm
mongodb
gói thông điệp
mysqli
mysqlnd
OAuth
opensl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
phar
tư thế
raphf
dòng đọc
làm lại
Sự phản xạ
rrd
phiên họp
con tép
SimpleXML
ổ cắm
natri
SPL
sqlite3
Tiêu chuẩn
sysvmsg
hệ thống
sysvshm
ngăn nắp
mã thông báo
uuid
xhprof
xml
trình đọc xml
xmlwriter
xsl
yac
khoai mỡ
Zend OPcache
khóa kéo
zlib
zmq
[Mô-đun Zend]
Zend OPcache
Tôi đã có thể chạy khởi động lại dịch vụ apache2
để sao lưu và chạy mọi thứ, nhưng trong khoảng 3 năm kể từ khi tôi thực hiện nâng cấp từ PHP7/7.1/7.2/7.3/7.4, tôi chưa gặp bất kỳ sự cố Apache2 nào như thế này.
Bất kỳ lời khuyên được đánh giá cao.