Сервер Apache на сервере Rackspace (облачный)
Я пытаюсь перейти с сервера веб-разработки django на сервер Apache. Сайт размещен на сервере RackSpace, к которому я обращаюсь по ssh. Я установил Apache на сервере.
Теперь проблема в том, что даже если я редактирую apache conf файлы, изменения не отражаются в ответах на запросы клиентов. Это как сервер rackspace, который я использую, имеет стандартную реализацию Apache по умолчанию? Если да, как мне получить доступ к этому экземпляру? Я проверил в файловой системе, но она содержит только Apache, который я установил.
Еще более удивительно, что даже когда служба apache (моя установка) не запущена, страница "Это работает" все же поступает с сервера.
2 ответа
В качестве дополнения, чтобы найти идентификатор процесса, на котором работает apache, вы можете запустить:
$ lsof -i:80
и / или
$ lsof -i:443
Если lsof
исполняемого файла там нет:
Ubuntu:
$ sudo apt-get install lsof
CentOS / RedHat
$ sudo yum install lsof
Вы обычно хотите запустить lsof как root
в противном случае вы получите несколько строк "разрешение запрещено".
Теперь проблема в том, что даже если я редактирую apache conf файлы, изменения не отражаются в ответах на запросы клиентов.
Недостаточно просто редактировать файлы конфигурации. Многие веб-фреймворки (например, Django) автоматически перезагружаются при изменении исходного кода или конфигурации, но на "производственных" веб-серверах, таких как Apache или Nginx, вам нужно будет перезапустить сервер, чтобы принять изменения. Обычно вы делаете это командой:
# Debian or Ubuntu image:
sudo /etc/init.d/apache2 restart
# Redhat or CentOS image:
sudo /etc/init.d/httpd restart
Вы также можете попросить Apache перезагрузить его конфигурацию без полного выключения и повторного включения, что лучше, когда на ваш сайт поступает трафик:
# Debian or Ubuntu image:
sudo /etc/init.d/apache2 reload
# Redhat or CentOS image:
sudo /etc/init.d/httpd graceful
Еще более удивительно, что даже когда служба apache (моя установка) не запущена, страница "Это работает" все же поступает с сервера.
Вы уверены, что служба была успешно остановлена? Вы можете проверить, выполнив поиск процесса с помощью ps
команда:
ps -ef | grep apache
А также, увидев, какой процесс прослушивает порт 80 или 443 с netstat
:
sudo netstat -n -l -p | grep 80
Как только вы нашли идентификатор процесса, вы можете kill
Это:
sudo kill 12345
# And if that doesn't work:
sudo kill -9 12345