Сервер 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
Другие вопросы по тегам