Я бы порекомендовал проверить системный журнал в /var/log/syslog
при перезагрузке Apache2. Это означает, что у вас открылось одно окно терминала, где вы просматриваете syslog
через tail
:
sudo tail -f -n 10 /var/log/syslog
А в другом окне попытайтесь перезапустить Apache. Но ваш синтаксис sudo /etc/init.d/apache2 restart
кажется неуклюжим, когда вы можете просто использовать такой service
:
sudo service apache2 restart
Я бы также порекомендовал вручную остановить и запустить его снова, выполнив эти две команды подряд:
sudo service apache2 stop
sudo service apache2 start
Любые более глубокие системные проблемы с Apache должны отображаться в syslog
. Как отладить это? Зависит от того, что вы видите / читаете. Но я выполнил тонны обновлений Ubuntu с более ранних версий до Ubuntu 12.04 LTS без каких-либо проблем.
ОБНОВЛЕНИЕ: Так как оригинальный постер опубликовал вывод syslog
журнала, можно также прокомментировать его. Это показывает, что при попытке запустить Apache происходит какая-то ошибка сегментации:
Apr 28 16:28:37 ubuntu-server kernel: [ 9061.735298] apache2[13102]: segfault at 0 ip 00007fe46d8d7476 sp 00007ffd6f130ba8 error 4 in libc-2.15.so[7fe46d7a6000+1b4000]
Подобные ошибки сегментации могут быть болезненными для отслеживания. Но по моему опыту это может быть вызвано несколькими важными вещами:
- Плохой / испорченный код PHP или HTML: Во-первых, я сомневаюсь, что это так, но я все равно упоминаю об этом: я предполагаю, что вы используете PHP с Apache, но это относится и к HTML. Лучший способ проверить это - установить простую страницу
index.php
и посмотреть, что произойдет. Но, как я уже сказал, если Apache не работает при перезапуске, я сомневаюсь, что это так, но это идея.
- Несовместимая или поврежденная конфигурация или настройка Apache2: вы заявляете, что используете рабочую конфигурацию Apache2 с другого работающего сервера Ubuntu 12.04 LTS, но все еще может быть проблема конфигурации, которую вы пропустили. Например, правильны ли разрешения для каталога
/etc/apache2
и его дочерних каталогов? Если вы их скопировали, всегда существует риск того, что вы могли не заметить владельца и разрешения при настройке, поэтому обязательно перепроверьте это.
- Поврежденный модуль Apache2. Возможно, модуль, подключенный к Apache, сам по себе поврежден. Если у вас установлено что-либо, например, APC (альтернативный кэш PHP), я бы порекомендовал отключить его или даже переустановить. Чтобы отключить его, откройте
/etc/php5/conf.d/apc.ini
и закомментируйте строку, которая читает extension=apc.so
с помощью a ;
как это ;extension=apc.so
- В общем, что-то не так в Apache2: если ничего не помогает , выполните
sudo apt-get purge apache2
а затем переустановите его с помощью sudo apt-get install apache2
и посмотрите, что происходит с установкой по умолчанию.
Если бы все это еще не вернуло процесс Apache2 к жизни, я бы также проверил другие системные службы и выяснил, работают ли они вообще; они также могут показывать ошибки сегментации в syslog
.
Кроме того, вы не указываете глубину или конфигурацию настроек этой системы. Но если это совсем не сложно - запускать только несколько сервисов, где вы знакомы с конфигурацией, - возможно, лучше просто отказаться от этой установки и переустановить Ubuntu 12.04 LTS с нуля.
Моя философия администрирования личного сервера должна быть очень контролируемой и иметь резервные копии всех конфигов и основных файлов, уникальных для этого сервера. Таким образом, если все станет слишком большой головной болью, я просто унесу проблемный сервер и начну с нуля.