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

nginx запускается до apache

Я был шарить через настройку 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 как зависимость, но устанавливать ее не нужно.