启用 APC 导致内部服务器错误

启用 APC 导致内部服务器错误

安装并启用 APC 3.1.9 (Alternate PHP Cache) 后,使用 时pecl,我遇到了内部服务器错误。我检查了错误日志,结果显示如下。

错误日志:

PHP Fatal error:  PHP Startup: apc_mmap: mkstemp on /tmp/apc.efdb4d failed: in Unknown on line 0
[Wed Jul 06 23:47:41 2011] [error] mod_fcgid: process /var/www/cgi-bin/cgi_wrapper/cgi_wrapper(22397) exit(communication error), get unexpected signal 11

我没有将 APC 扩展添加到我的php.ini文件中,而是apc.ini在中创建了一个文件/etc/php.d/,这是我当前的 APC 配置

apc.ini 配置:

; /etc/php.d/apc.ini

extension = apc.so

apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 128M
apc.optimization = 0
apc.num_files_hint = 4096
apc.ttl = 7200
apc.user_ttl = 7200
apc.gc_ttl = 0
apc.cache_by_default = 1
apc.filters = ""
apc.mmap_file_mask = "/tmp/apc.XXXXXX"
apc.slam_defense = 0
apc.file_update_protection = 2
apc.enable_cli = 0
apc.max_file_size = 10M
apc.stat = 1
apc.write_lock = 1
apc.report_autofilter = 0
apc.include_once_override = 0
;apc.rfc1867 = 0
;apc.rfc1867_prefix = "upload_"
;apc.rfc1867_name = "APC_UPLOAD_PROGRESS"
;apc.rfc1867_freq = 0
apc.localcache = 0
apc.localcache.size = 512
apc.coredump_unmap = 0
apc.stat_ctime = 0

即使禁用 APC 后,我在尝试登录 Plesk CP 时仍然遇到另一个错误:

ERROR: Zend_Db_Statement_Exception
SQLSTATE[HY000]: General error: 1 Can't create/write to file '/tmp/#sql_6d7_0.MYI' (Errcode: 13)

我通过 Plesk 的 Power Panel 重新启动容器解决了上述问题。我认为必须改为/tmp使用execmount -o remount,exec /tmp解决 APC 安装过程中的权限错误pecl。安装完成后,我返回/tmpnoexec。这些步骤的要点可以在这里找到这里

第一个错误仍然没有解决。

我目前正在运行:

  • CentOS 5.6
  • PHP 5.3.5
  • 快速CGI
  • 已安装 APC 3.1.9

我不知道如何解决这个问题。是因为我使用的是最新版本的 APC 吗?还是因为配置apc.ini?我在哪里启用了 apc 扩展有关系吗?即/etc/php.ini/etc/php.d/apc.ini

FastCGI 和 APC 兼容性问题怎么样?

任何帮助或建议都将不胜感激。

答案1

您是否已实施 open_dir 限制?如果这是在用户帐户上,我会设置 APC 的 tmp 目录相对于用户主目录的适当权限。

相关内容