PHP致命错误:require():无法解锁pthread锁

时间:2012-11-21 15:09:53

标签: php apache apache2

我在Debian Linux上使用LAMP。 Apache 2.2.22-12,PHP 5.4.4。

有时我收到此错误,然后我无法重新加载页面或打开页面,其中包含此错误的文件。在我遇到这样的错误后,我无法重启apache

  

重新启动web服务器:apache2(98)已在使用的地址:make_sock:无法绑定到地址[::]:80

     

(98)已经在使用的地址:make_sock:无法绑定到地址0.0.0.0:80   没有可用的侦听套接字,关闭

     

无法打开日志

     

行动'开始'失败。

     

Apache错误日志可能包含更多信息。    失败!

在apache日志文件中:

  

[Wed Nov 21 15:07:55 2012] [warn]子进程4020仍未退出,发送SIGTERM

     

[Wed Nov 21 15:07:55 2012] [warn]子进程4021仍未退出,发送SIGTERM

     

[Wed Nov 21 15:07:55 2012] [warn]子进程4022仍未退出,发送SIGTERM

     

[Wed Nov 21 15:07:57 2012] [错误]子进程1309仍未退出,发送SIGKILL

     

[Wed Nov 21 15:07:57 2012] [错误]子进程1310仍未退出,发送SIGKILL

     

[Wed Nov 21 15:07:57 2012] [错误]子进程1311仍未退出,发送SIGKILL

主持人日志:

  

[Wed Nov 21 12:21:24 2012] [错误] [client 127.0.0.1] PHP致命错误:require():无法在〜/ www / yii / yii-1.1.11.58da45 /解锁pthread锁定第127行的framework / base / CApplication.php

$config=require($config);

或者:

  

[Wed Nov 14 21:04:26 2012] [错误] [client 127.0.0.1] PHP致命错误:require_once():无法解锁第14行〜/ projects / politiya / index.php中的pthread锁< / p>

有:

require_once($game_loader);

我删除了php-apc,现在灯泡工作正常。

4 个答案:

答案 0 :(得分:11)

修复

如上所述here,我必须快速卸载并重新安装apc(文字需要5秒):

1 sudo pecl uninstall apc

2 sudo pecl install apc

BUT将已经为pthread互斥锁填充的 no 更改为 yes

AND将已填写pthread读/写锁的 yes 更改为 no

答案 1 :(得分:5)

由于APC中存在“死锁错误”,因此发生此错误。 一个php bug report page说,这个错误在APC 3.1.8

中得到修复

我们也可以看到APC更改日志here

答案 2 :(得分:2)

仅仅是一个FYI(响应OMG关于APC版本错误的评论),我正在运行APC 3.1.13和PHP 5.4.17,我仍然遇到了这个错误:

unable to obtain pthread lock (EDEADLK)

答案 3 :(得分:-1)

这意味着正在运行的某个进程正在使用此端口,因此尝试终止该进程

喜欢获取流程

例如:ps -ef | grep httpd

然后杀死进程

例如kill -9进程ID

----------------------- OR ---------------------- < / p>

端口80被另一个服务使用,因此找到并更改system-config-httpd.conf:system-config-httpd.conf system-config-httpd.conf。所有这一切,重启httpd: /etc/init.d/httpd start