"It works!" после смены IP сервера Apache Печать
Добавил(а) microsin   

После того, как хостер перенес сервер с сайтами Joomla на новую площадку, и были прописаны зоны доменов в DNS на новый IP, сервер Apache начал выдавать вместо главной страницы сайта сообщение "It works!".

Apache-It-works-message

Если Вы видите такое сообщение, то оно означает, что Apache работает, но он не знает, что отображать в ответ на запрос пользователя. В данном примере пользователь ввел абсолютный IP (178.63.170.153), но на сервере было прописано несколько виртуальных хостов, и сервер не знал, что именно (какой из сайтов) ему отобразить. Вот поэтому сервер Apache и вывел сообщение "It works!" (я работаю, но что все-таки от меня Вам надо?..).

Виртуальный хост - специальная возможность держать под одним IP-адресом несколько доменов сразу. Например, на одном IP сервер Apache может обслуживать сразу два сайта siteA.ru и siteB.ru, и эти сайты могут иметь совершенно независимое друг от друга содержание. Каждый отдельный сайт (домен) обслуживает отдельный виртуальный хост, и для каждого такого хоста настраиваются отдельные каталоги для хранения файлов страниц сайта. Виртуальный хост настраивается внутри тега VirtualHost конфигурационного файла Apache.

Другими словами, если Вы видите сообщение "It works!", значит что-то не так с конфигурацией сервера Apache.

Обычный путь до файла настроек /etc/apache2/apache2.conf, но может быть и другой путь, в зависимости от версии Apache.

В моем случае, когда сервер поменял свой IP, причина сообщения It works! была также в неправильно заданной конфигурации сервера. На сервере было прописано несколько виртуальных хостов, и в описании каждого был указан старый фиксированный IP. На самом деле надо было вместо фиксированного IP указать звездочку. Пример неправильно заданной конфигурации (в этом примере абсолютный адрес IP хоста a.b.c.d, и настроено два сайта, два виртуальных хоста mydomain1.net и mydomain2.net):

NameVirtualHost a.b.c.d:80
< VirtualHost a.b.c.d:80 >
        ServerName mydomain1.net
        DocumentRoot /var/www/user1/data/www/mydomain1.net
        SuexecUserGroup usergroup usergroup
        CustomLog /var/www/httpd-logs/mydomain1.net.access.log combined
        ErrorLog /var/www/httpd-logs/mydomain1.net.error.log
        ServerAlias www.mydomain1.net
        ServerAdmin webmaster@mydomain1.net
        ScriptAlias /php-bin/ /var/www/user1/data/php-bin/
        ScriptAlias /cgi-bin/ /var/www/user1/data/www/mydomain1.net/cgi-bin/
        AddHandler php-cgi .php .php3 .php4 .php5 .phtml
< /VirtualHost >
< VirtualHost a.b.c.d:80 >
        ServerName mydomain2.net
        DocumentRoot /var/www/user2/data/www/mydomain2.net
        SuexecUserGroup usergroup usergroup
        CustomLog /var/www/httpd-logs/mydomain2.net.access.log combined
        ErrorLog /var/www/httpd-logs/mydomain2.net.error.log
        ServerAlias www.mydomain2.net
        ServerAdmin webmaster@mydomain2.net
        ScriptAlias /php-bin/ /var/www/user2/data/php-bin/
        ScriptAlias /cgi-bin/ /var/www/user2/data/www/mydomain2.net/cgi-bin/
        AddHandler php-cgi .php .php3 .php4 .php5 .phtml
< /VirtualHost >

Чтобы устранить привязку к абсолютному IP сервера (при этом автоматически пропадет сообщение "It works!" после смены IP сервера), нужно всего лишь заменить абсолютный IP адрес на звездочку:

NameVirtualHost *:80
< VirtualHost *:80 >
        ServerName mydomain1.net
        DocumentRoot /var/www/user1/data/www/mydomain1.net
        SuexecUserGroup usergroup usergroup
        CustomLog /var/www/httpd-logs/mydomain1.net.access.log combined
        ErrorLog /var/www/httpd-logs/mydomain1.net.error.log
        ServerAlias www.mydomain1.net
        ServerAdmin webmaster@mydomain1.net
        ScriptAlias /php-bin/ /var/www/user1/data/php-bin/
        ScriptAlias /cgi-bin/ /var/www/user1/data/www/mydomain1.net/cgi-bin/
        AddHandler php-cgi .php .php3 .php4 .php5 .phtml
< /VirtualHost >
< VirtualHost *:80 >
        ServerName mydomain2.net
        DocumentRoot /var/www/user2/data/www/mydomain2.net
        SuexecUserGroup usergroup usergroup
        CustomLog /var/www/httpd-logs/mydomain2.net.access.log combined
        ErrorLog /var/www/httpd-logs/mydomain2.net.error.log
        ServerAlias www.mydomain2.net
        ServerAdmin webmaster@mydomain2.net
        ScriptAlias /php-bin/ /var/www/user2/data/php-bin/
        ScriptAlias /cgi-bin/ /var/www/user2/data/www/mydomain2.net/cgi-bin/
        AddHandler php-cgi .php .php3 .php4 .php5 .phtml
< /VirtualHost >