Я был шарить через настройку Redmine в окне unbuntu (12.04) и где-то по пути NginX был настроен, и теперь apache больше не загружается, потому что nginx уже захватил порт.
Я попытался удалить NginX с помощью приведенной ниже команды, но, похоже, это не имело никакого значения. Когда я перезапустил сервер и указал свой веб-браузер, я все еще получал сообщение «Добро пожаловать в NginX»
sudo apt-get purge nginx
Я подтвердил, что NginX ушел, потому что, когда я запускаю вышеупомянутое, я получаю в качестве вывода
Package nginx is not installed, so not removed
Но каждый раз, когда я запускаю машину, она снова работает. Я заметил следующее для запущенных процессов (если это полезно)
root 923 0.0 0.0 76784 1280 ? Ss 03:00 0:00 nginx: master process /usr/sbin/nginx
www-data 925 0.0 0.0 77092 1704 ? S 03:00 0:00 nginx: worker process
www-data 926 0.0 0.1 77092 2204 ? S 03:00 0:00 nginx: worker process
www-data 927 0.0 0.0 77092 1704 ? S 03:00 0:00 nginx: worker process
www-data 928 0.0 0.0 77092 1704 ? S 03:00 0:00 nginx: worker process
Какие-либо советы по возвращению apache2 в качестве веб-сервера "по умолчанию" (из-за отсутствия лучшего термина)?
Зависит от того, как вы установили nginx.
Если процедура, которую вы использовали для его установки, также установила допустимые сценарии rc, тогда это будет работать:
sudo update-rc.d nginx disable
Если это дает логичный вывод, у вас не будет проблем с перезагрузкой.
Если использовался сценарий выскочки, проверьте внутри /etc/init/nginx
. Возможно, вам придется изменить переменную внутри этого файла, чтобы отключить его.
Если это исходная установка, и вы не знаете, где и как вы ее установили, используйте find
или locate
.
Чтобы использовать locate, запустите: sudo updatedb
Это проиндексирует все файлы для быстрого поиска
Затем запустите: locate nginx
Это должно дать вам потерянные файлы nginx, которые вы должны (осторожно) удалить.
Я предполагаю, что у вас есть сценарий запуска, который это делает. Учитывая его Ubuntu 12.04, скорее всего, это сценарий-выскочка (в противном случае это сценарий инициализации, но в наши дни мы используем оба).
Вы можете проверить, есть ли выскочка, запускающая ngnix с initctl list
В таком случае вы найдете задачу, которая, вероятно, называется ngnix
. Вы можете остановить это с помощью stop ngnix, а затем запустить apache вручную.
Перейти к /etc/init
и найдите файл с именем ngnix.conf (сценарии запуска в upstart jobname.conf
) - переименуйте его во что-то, не заканчивающееся на conf, или удалите, затем перезапустите.
Если такого файла нет, проверьте /etc/init.d на наличие скрипта, запускающего ngnix.
Я бы предложил также убить процессы. Возможно, в процессе удаления некоторые процессы остались запущенными.
Очевидно, что перезагрузка тоже должна позаботиться об этом. Но если вы не хотите перезагружаться, вам нужно вручную убить их, поскольку ваша очистка удалила сценарий /etc/init.d/nginx.
Запустите это из командной строки:
kill $(pidof nginx)
Он убивает все процессы nginx и должен позволить вам продолжить запуск Apache.
Если ЭТО не работает, вам нужно определить, что это за порт. Вы можете сделать это с помощью netstat -natp | grep 80
.
Эта команда покажет ссылку на порт ': 80' в статусе 'LISTEN' вместе с процессом, у которого этот порт открыт. Затем вы убиваете этот конкретный процесс.
Вы должны проверить, какой пакет nginx вы фактически установили, запустив:
dpkg -l | grep nginx
В Debian и Ubuntu разные пакеты nginx содержат другой набор модулей, например ты мог бы получить пакет nginx-extras
или nginx-full
установлен, то вам нужно будет запустить
aptitude purge nginx-full
nginx
это простой мета-пакет, который установит nginx-full
как зависимость, но устанавливать ее не нужно.