Я использую LAMP на Debian Linux. Apache 2.2.22-12, PHP 5.4.4.
Иногда я получаю эту ошибку, а затем я не могу перезагрузить страницу или открывать страницы, включая файл с этой ошибкой. После того, как я получил такую ошибку, я не смог перезапустить apache
Перезапуск веб-сервера: 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] [error] [клиент 127.0.0.1] PHP Неустранимая ошибка: require (): невозможно разблокировать блокировку pthread в ~ / www / yii / yii-1.1.11.58da45 / framework / base /CApplication.php в строке 127
Там есть
$config=require($config);
Или:
[Wed Nov 14 21:04:26 2012] [error] [клиент 127.0.0.1] PHP Неустранимая ошибка: require_once (): невозможно разблокировать блокировку pthread в ~ / projects / politiya / index.php в строке 14
Там есть:
require_once($game_loader);
Я удалил php-apc, и теперь лампа работает хорошо.
Как уже упоминалось, мне пришлось быстро удалить и переустановить apc (буквально занимает 5 секунд):
1 sudo pecl uninstall apc
2 sudo pecl install apc
BUT
измените значение no
которое уже заполнено для мьютексов pthread, в yes
AND
измените yes
которое уже заполнено для блокировок чтения / записи pthread в no
.
Эта ошибка возникает из-за «ошибки блокировки» в APC. На странице отчета об ошибке php говорится, что эта ошибка исправлена в APC 3.1.8
Также мы видим журналы изменений APC здесь
Просто FYI (в ответ на комментарий OMG о ошибке APC), я запускаю APC 3.1.13 и PHP 5.4.17, и у меня все еще есть ошибка:
unable to obtain pthread lock (EDEADLK)
Это означает, что какой-то процесс ir работает, который использует этот порт, поэтому попытайтесь убить этот процесс
как получить процесс
например: ps -ef | grep httpd
затем убейте процесс
например, kill -9 идентификатор процесса
———————–ИЛИ———————-
порт 80 используется другой службой, поэтому найдите и измените system-config-httpd.conf: system-config-httpd.conf system-config-httpd.conf. все это, перезапустите httpd: /etc/init.d/httpd start