Назад | Перейти на главную страницу

apache2 отлично работает без PHP, но не с php

Я удалил все и переустановил apache 2., и он работает.

Но если я установлю libapache2-mod-php5, apache перестанет работать.

Если я снова удалю этот libapache2 ... тогда снова начнет работать apache

Что я должен делать

Ubuntu 9.10

Это ошибка в файле журнала ошибки apache

PHP Warning:  [eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.2.6-3ubuntu4.4. Rebuild it for your PHP version (5.2.10-2ubuntu6.4) or download precompiled binaries.\n in Unknown on line 0
PHP Fatal error:  Unable to start eAccelerator module in Unknown on line 0

Apache2 не запустился? У вас установлен ускоритель? Вы недавно обновляли php5? Если да, возможно, у меня есть ответ на вашу проблему.

Все началось, когда я обновил некоторые пакеты на сервере Ubuntu через Webmin. Думаю, одним из пакетов был php5.

В любом случае, увидев, что я обновил пакеты, связанные с Apache2, я перезапустил службу apache2. Именно тогда я увидел следующее сообщение об ошибке:

 1.
      Failed to start apache :
   2.

   3.
       * Starting web server apache2
   4.
      (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
   5.
      no listening sockets available, shutting down
   6.
      Unable to open logs
   7.
         ...fail!

Кажется, что apache2 не может запуститься, потому что адрес уже использовался.

Полагая, что ошибка могла быть результатом запуска apache2 из Webmin, я открыл окно консоли и попытался запустить apache2 из командной строки с помощью

 1.
      sudo /etc/init.d/apache2 restart

Тем не менее, apache2 не запускался, и мне было показано следующее сообщение об ошибке:

   1.
      * Restarting web server apache2
   2.
      httpd (no pid file) not running

Что показалось немного странным, так это то, что когда я запустил команду top, она показала, что процесс apache2 запущен и использует 100% процессора.

Следующим местом, куда нужно было обратиться, были журналы ошибок apache, расположенные по адресу

  1.
      /var/log/apache2/error.log

В журнале ошибок было показано следующее сообщение, указывающее, что eaccelerator мог быть связан с проблемой, когда apache2 не запускается:

   1.
      PHP Warning:  [eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.2.4-2ubuntu5.3. Rebuild it for your PHP version (5.2.4-2ubuntu5.4) or download precompiled binaries.\n in Unknown on line 0
   2.
      PHP Fatal error:  Unable to start eAccelerator module in Unknown on line 0

Небольшой поиск в Google показал мне, что eAccelerator не работает, потому что он не скомпилирован для моей недавно обновленной версии php5.

Чтобы исправить ситуацию или, по крайней мере, чтобы подтвердить, была ли проблема с eaccelerator, я переименовал файл eaccelerator.ini, хранящийся в

   1. /etc/php5/apache2/conf.d   to something else and then started apache2.

Apache запустился как будто никогда не было проблем. Это был ускоритель, препятствовавший запуску Apache.

Apache2 работал, пока eaccelerator не был активен. Теперь все, что мне нужно сделать, если я хочу продолжить использование eaccelerator, - это перекомпилировать eaccelerator, чтобы он был совместим с моей обновленной версией php5.

Получаете ли вы какой-нибудь вывод журнала при попытке запустить apache с помощью php?

Возможные места: / var / log / messages, / var / log / syslog и /var/log/apache2/error.log

Если да, добавьте его к своему вопросу.