1

我实际上是在管理一台服务器,而我的网络相关应用程序显然有一些问题......

当我查看我的 Apache error_log 时,我可以看到很多[notice] child pid **** exit signal Segmentation fault (11)......

经过一番搜索,启用/禁用 PHP 模块后,我发现“mysql”或“pdo_mysql”PHP 模块可能存在问题。

  • 当启用 mysql.so 而不是pdo_mysql.so 时,不会再发生分段错误。但是,不再可能在 PHP 应用程序中使用 mysql 作为 PDO 驱动程序。
  • 当启用 pdo_mysql.so 而不是mysql.so 时,子进程的寿命更长,但一段时间后仍会出现段错误。

我使用 gdb 探索了一些我向 Apache 询问的核心转储。有核心转储分析。

[New Thread 4565]
Reading symbols from /lib/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libpcre.so.0...done.
Loaded symbols for /lib/libpcre.so.0
Reading symbols from /lib/libselinux.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libselinux.so.1
Reading symbols from /usr/lib/libaprutil-1.so.0...done.
Loaded symbols for /usr/lib/libaprutil-1.so.0
Reading symbols from /lib/libcrypt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libexpat.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libexpat.so.0
Reading symbols from /lib/libdb-4.3.so...(no debugging symbols found)...done.
Loaded symbols for /lib/libdb-4.3.so
Reading symbols from /usr/lib/libapr-1.so.0...done.
Loaded symbols for /usr/lib/libapr-1.so.0
Reading symbols from /lib/libpthread.so.0...(no debugging symbols found)...done.
[Thread debugging using libthread_db enabled]
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libsepol.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libsepol.so.1
Reading symbols from /lib/libuuid.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libuuid.so.1
Reading symbols from /lib/libresolv.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/libnss_files.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /lib/libnss_dns.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libnss_dns.so.2
Reading symbols from /usr/lib/libldap-2.3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libldap-2.3.so.0
Reading symbols from /usr/lib/liblber-2.3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/liblber-2.3.so.0
Reading symbols from /usr/lib/libsasl2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libsasl2.so.2
Reading symbols from /lib/libssl.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libssl.so.6
Reading symbols from /lib/libcrypto.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libcrypto.so.6
Reading symbols from /usr/lib/libgssapi_krb5.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgssapi_krb5.so.2
Reading symbols from /usr/lib/libkrb5.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkrb5.so.3
Reading symbols from /lib/libcom_err.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libcom_err.so.2
Reading symbols from /usr/lib/libk5crypto.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libk5crypto.so.3
Reading symbols from /lib/libz.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libz.so.1
Reading symbols from /usr/lib/libkrb5support.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkrb5support.so.0
Reading symbols from /lib/libkeyutils.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libkeyutils.so.1
Reading symbols from /usr/lib/apr-util-1/apr_ldap-1.so...done.
Loaded symbols for /usr/lib/apr-util-1/apr_ldap-1.so
Reading symbols from /lib/librt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /etc/httpd/modules/mod_auth_basic.so...done.
Loaded symbols for /etc/httpd/modules/mod_auth_basic.so
Reading symbols from /etc/httpd/modules/mod_auth_digest.so...done.
Loaded symbols for /etc/httpd/modules/mod_auth_digest.so
Reading symbols from /etc/httpd/modules/mod_authn_file.so...done.
Loaded symbols for /etc/httpd/modules/mod_authn_file.so
Reading symbols from /etc/httpd/modules/mod_authn_alias.so...done.
Loaded symbols for /etc/httpd/modules/mod_authn_alias.so
Reading symbols from /etc/httpd/modules/mod_authn_anon.so...done.
Loaded symbols for /etc/httpd/modules/mod_authn_anon.so
Reading symbols from /etc/httpd/modules/mod_authn_dbm.so...done.
Loaded symbols for /etc/httpd/modules/mod_authn_dbm.so
Reading symbols from /etc/httpd/modules/mod_authn_default.so...done.
Loaded symbols for /etc/httpd/modules/mod_authn_default.so
Reading symbols from /etc/httpd/modules/mod_authz_host.so...done.
Loaded symbols for /etc/httpd/modules/mod_authz_host.so
Reading symbols from /etc/httpd/modules/mod_authz_user.so...done.
Loaded symbols for /etc/httpd/modules/mod_authz_user.so
Reading symbols from /etc/httpd/modules/mod_authz_owner.so...done.
Loaded symbols for /etc/httpd/modules/mod_authz_owner.so
Reading symbols from /etc/httpd/modules/mod_authz_groupfile.so...done.
Loaded symbols for /etc/httpd/modules/mod_authz_groupfile.so
Reading symbols from /etc/httpd/modules/mod_authz_dbm.so...done.
Loaded symbols for /etc/httpd/modules/mod_authz_dbm.so
Reading symbols from /etc/httpd/modules/mod_authz_default.so...done.
Loaded symbols for /etc/httpd/modules/mod_authz_default.so
Reading symbols from /etc/httpd/modules/mod_ldap.so...done.
Loaded symbols for /etc/httpd/modules/mod_ldap.so
Reading symbols from /etc/httpd/modules/mod_authnz_ldap.so...done.
Loaded symbols for /etc/httpd/modules/mod_authnz_ldap.so
Reading symbols from /etc/httpd/modules/mod_include.so...done.
Loaded symbols for /etc/httpd/modules/mod_include.so
Reading symbols from /etc/httpd/modules/mod_log_config.so...done.
Loaded symbols for /etc/httpd/modules/mod_log_config.so
Reading symbols from /etc/httpd/modules/mod_logio.so...done.
Loaded symbols for /etc/httpd/modules/mod_logio.so
Reading symbols from /etc/httpd/modules/mod_env.so...done.
Loaded symbols for /etc/httpd/modules/mod_env.so
Reading symbols from /etc/httpd/modules/mod_ext_filter.so...done.
Loaded symbols for /etc/httpd/modules/mod_ext_filter.so
Reading symbols from /etc/httpd/modules/mod_mime_magic.so...done.
Loaded symbols for /etc/httpd/modules/mod_mime_magic.so
Reading symbols from /etc/httpd/modules/mod_expires.so...done.
Loaded symbols for /etc/httpd/modules/mod_expires.so
Reading symbols from /etc/httpd/modules/mod_deflate.so...done.
Loaded symbols for /etc/httpd/modules/mod_deflate.so
Reading symbols from /etc/httpd/modules/mod_headers.so...done.
Loaded symbols for /etc/httpd/modules/mod_headers.so
Reading symbols from /etc/httpd/modules/mod_usertrack.so...done.
Loaded symbols for /etc/httpd/modules/mod_usertrack.so
Reading symbols from /etc/httpd/modules/mod_setenvif.so...done.
Loaded symbols for /etc/httpd/modules/mod_setenvif.so
Reading symbols from /etc/httpd/modules/mod_mime.so...done.
Loaded symbols for /etc/httpd/modules/mod_mime.so
Reading symbols from /etc/httpd/modules/mod_dav.so...done.
Loaded symbols for /etc/httpd/modules/mod_dav.so
Reading symbols from /etc/httpd/modules/mod_status.so...done.
Loaded symbols for /etc/httpd/modules/mod_status.so
Reading symbols from /etc/httpd/modules/mod_autoindex.so...done.
Loaded symbols for /etc/httpd/modules/mod_autoindex.so
Reading symbols from /etc/httpd/modules/mod_info.so...done.
Loaded symbols for /etc/httpd/modules/mod_info.so
Reading symbols from /etc/httpd/modules/mod_dav_fs.so...done.
Loaded symbols for /etc/httpd/modules/mod_dav_fs.so
Reading symbols from /etc/httpd/modules/mod_vhost_alias.so...done.
Loaded symbols for /etc/httpd/modules/mod_vhost_alias.so
Reading symbols from /etc/httpd/modules/mod_negotiation.so...done.
Loaded symbols for /etc/httpd/modules/mod_negotiation.so
Reading symbols from /etc/httpd/modules/mod_dir.so...done.
Loaded symbols for /etc/httpd/modules/mod_dir.so
Reading symbols from /etc/httpd/modules/mod_actions.so...done.
Loaded symbols for /etc/httpd/modules/mod_actions.so
Reading symbols from /etc/httpd/modules/mod_speling.so...done.
Loaded symbols for /etc/httpd/modules/mod_speling.so
Reading symbols from /etc/httpd/modules/mod_userdir.so...done.
Loaded symbols for /etc/httpd/modules/mod_userdir.so
Reading symbols from /etc/httpd/modules/mod_alias.so...done.
Loaded symbols for /etc/httpd/modules/mod_alias.so
Reading symbols from /etc/httpd/modules/mod_rewrite.so...done.
Loaded symbols for /etc/httpd/modules/mod_rewrite.so
Reading symbols from /etc/httpd/modules/mod_proxy.so...done.
Loaded symbols for /etc/httpd/modules/mod_proxy.so
Reading symbols from /etc/httpd/modules/mod_proxy_balancer.so...done.
Loaded symbols for /etc/httpd/modules/mod_proxy_balancer.so
Reading symbols from /etc/httpd/modules/mod_proxy_ftp.so...done.
Loaded symbols for /etc/httpd/modules/mod_proxy_ftp.so
Reading symbols from /etc/httpd/modules/mod_proxy_http.so...done.
Loaded symbols for /etc/httpd/modules/mod_proxy_http.so
Reading symbols from /etc/httpd/modules/mod_proxy_connect.so...done.
Loaded symbols for /etc/httpd/modules/mod_proxy_connect.so
Reading symbols from /etc/httpd/modules/mod_cache.so...done.
Loaded symbols for /etc/httpd/modules/mod_cache.so
Reading symbols from /etc/httpd/modules/mod_suexec.so...done.
Loaded symbols for /etc/httpd/modules/mod_suexec.so
Reading symbols from /etc/httpd/modules/mod_disk_cache.so...done.
Loaded symbols for /etc/httpd/modules/mod_disk_cache.so
Reading symbols from /etc/httpd/modules/mod_file_cache.so...done.
Loaded symbols for /etc/httpd/modules/mod_file_cache.so
Reading symbols from /etc/httpd/modules/mod_mem_cache.so...done.
Loaded symbols for /etc/httpd/modules/mod_mem_cache.so
Reading symbols from /etc/httpd/modules/mod_cgi.so...done.
Loaded symbols for /etc/httpd/modules/mod_cgi.so
Reading symbols from /etc/httpd/modules/mod_version.so...done.
Loaded symbols for /etc/httpd/modules/mod_version.so
Reading symbols from /etc/httpd/modules/libphp5.so...(no debugging symbols found)...done.
Loaded symbols for /etc/httpd/modules/libphp5.so
Reading symbols from /usr/lib/sse2/libgmp.so.3...done.
Loaded symbols for /usr/lib/sse2/libgmp.so.3
Reading symbols from /usr/lib/libbz2.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libbz2.so.1
Reading symbols from /lib/libnsl.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /usr/lib/libxml2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libxml2.so.2
Reading symbols from /etc/httpd/modules/mod_proxy_ajp.so...done.
Loaded symbols for /etc/httpd/modules/mod_proxy_ajp.so
Reading symbols from /etc/httpd/modules/mod_ssl.so...done.
Loaded symbols for /etc/httpd/modules/mod_ssl.so
Reading symbols from /usr/lib/libdistcache.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libdistcache.so.1
Reading symbols from /usr/lib/libnal.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libnal.so.1
Reading symbols from /usr/lib/kloxophp/ioncube/ioncube_loader_lin_age.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/kloxophp/ioncube/ioncube_loader_lin_age.so
Reading symbols from /usr/lib/php/modules/curl.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/curl.so
Reading symbols from /usr/lib/libcurl.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libcurl.so.3
Reading symbols from /usr/lib/libidn.so.11...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libidn.so.11
Reading symbols from /usr/lib/php/modules/dom.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/dom.so
Reading symbols from /usr/lib/php/modules/fileinfo.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/fileinfo.so
Reading symbols from /usr/lib/php/modules/gd.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/gd.so
Reading symbols from /usr/lib/libfreetype.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libfreetype.so.6
Reading symbols from /usr/lib/libX11.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libX11.so.6
Reading symbols from /usr/lib/libXpm.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXpm.so.4
Reading symbols from /usr/lib/libpng12.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libpng12.so.0
Reading symbols from /usr/lib/libjpeg.so.62...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libjpeg.so.62
Reading symbols from /usr/lib/libXau.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXau.so.6
Reading symbols from /usr/lib/libXdmcp.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXdmcp.so.6
Reading symbols from /usr/lib/php/modules/imap.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/imap.so
Reading symbols from /usr/lib/libc-client.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libc-client.so.1
Reading symbols from /lib/libpam.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libpam.so.0
Reading symbols from /lib/libaudit.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libaudit.so.0
Reading symbols from /usr/lib/php/modules/json.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/json.so
Reading symbols from /usr/lib/php/modules/mbstring.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/mbstring.so
Reading symbols from /usr/lib/php/modules/mcrypt.so...done.
Loaded symbols for /usr/lib/php/modules/mcrypt.so
Reading symbols from /usr/lib/libmcrypt.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libmcrypt.so.4
Reading symbols from /usr/lib/php/modules/mysql.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/mysql.so
Reading symbols from /usr/lib/mysql/libmysqlclient.so.15...done.
Loaded symbols for /usr/lib/mysql/libmysqlclient.so.15
Reading symbols from /usr/lib/php/modules/mysqli.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/mysqli.so
Reading symbols from /usr/lib/php/modules/pdo.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/pdo.so
Reading symbols from /usr/lib/php/modules/pdo_mysql.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/pdo_mysql.so
Reading symbols from /usr/lib/php/modules/pdo_sqlite.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/pdo_sqlite.so
Reading symbols from /usr/lib/libsqlite3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libsqlite3.so.0
Reading symbols from /usr/lib/php/modules/phar.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/phar.so
Reading symbols from /usr/lib/php/modules/snmp.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/snmp.so
Reading symbols from /usr/lib/libnetsnmp.so.10...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libnetsnmp.so.10
Reading symbols from /lib/libwrap.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libwrap.so.0
Reading symbols from /usr/lib/php/modules/soap.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/soap.so
Reading symbols from /usr/lib/php/modules/wddx.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/wddx.so
Reading symbols from /usr/lib/php/modules/xmlreader.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/xmlreader.so
Reading symbols from /usr/lib/php/modules/xmlwriter.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/xmlwriter.so
Reading symbols from /usr/lib/php/modules/xsl.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/xsl.so
Reading symbols from /usr/lib/libexslt.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libexslt.so.0
Reading symbols from /usr/lib/libxslt.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libxslt.so.1
Reading symbols from /usr/lib/libgcrypt.so.11...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgcrypt.so.11
Reading symbols from /usr/lib/libgpg-error.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgpg-error.so.0
Reading symbols from /usr/lib/php/modules/zip.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php/modules/zip.so
Core was generated by `/usr/sbin/httpd -k graceful'.
Program terminated with signal 11, Segmentation fault.
#0  0xb60e8dc6 in tcp_getline () from /usr/lib/libc-client.so.1

我对这些分析不是很熟悉,但似乎我所有的 PHP 模块都被提及了,没有一个是缺失的。mysql似乎没有任何问题,pdo_mysql也没有。

有一些 C 编程经验,我基本上会说 /usr/sbin/httpd 需要比他应该的更多的内存。也许我要求他处理比他能力更多的模块。不知道。在这种情况下,是否有办法为子进程分配更多内存?

或者也许我没有看到另一个问题?感谢您的回答;)如果您需要更多信息,请询问。


附加信息 :

已安装 PHP 5.3.3-13.el5_8。已安装 HTTPD 2.2.23-3。我没有安装 suphp,但我不记得在升级到 PHP5.3 之前看到它。我已经列出了 Apache 请求的模块(/etc/php.d/ 中的 .ini 文件),它们中的每一个都属于我系统上安装的一个 php53-* 包。

4

0 回答 0