Я хотел бы иметь 2 сайта на моей машине для разработки.
Я отредактировал / etc / hosts следующим образом
127.0.0.1 restaurant.local www.restaurant.local
127.0.0.1 lrv4.local www.lrv4.local
Я создал 2 новых файла /etc/apache2/sites-available/restaurant.local и ../lrv4.local
<VirtualHost restaurant.local:80>
ServerName restaurant.local
ServerAlias www.restaurant.local
DocumentRoot /var/www/restaurant/public
<Directory /var/www/restaurant/public/>
Options FollowSymLinks
AllowOverride None
</Directory>
CustomLog /var/log/apache2/restaurant.local-access.log combined
</VirtualHost>
<VirtualHost lrv4.local:80>
ServerName lrv4.local
ServerAlias www.lrv4.local
DocumentRoot /var/www/lrv4/public
<Directory /var/www/lrv4/public/>
Options FollowSymLinks
AllowOverride None
</Directory>
CustomLog /var/log/apache2/lrv4.local-access.log combined
</VirtualHost>
эти 2 файла относительно похожи друг на друга.
Я включил эти 2 сайта с помощью
sudo a2ensites restaurant.local
sudo a2ensites lrv4.local
Я также проверяю включенные сайты с помощью
ls /etc/apache2/sites-enabled
Моя проблема в том, что когда я пытался получить доступ к lrv4.local, я получил страницу, принадлежащую to restaurant.local, я попытался проверить файл журнала, который я объявил выше в файле конфигурации VirtualHost, все журналы зарегистрированы в /var/log/apache2/restaurant.local-access.log, ничего не записано в / var / log / apache2 / lrv4.local-access.log.
Пожалуйста, помогите.
Отредактировал мой ответ после прочтения в Apache docs : Технически, вы можете указать домен в VirtualHost
, но он не рекомендуется , потому что он может иметь неожиданные эффекты с DNS . Я предполагаю, что это случилось с вашим конфигом.
В вашей конфигурации Apache вы использовали директиву VirtualHost
, возможно, проблемным способом. Вы указали в нем доменное имя, т.е. г. <VirtualHost restaurant.local>
. Но это не рекомендуется в пользу указания IP-адреса серверов. Доменные имена определяются внутри блока VirtualHost
, например, с помощью ServerName
или ServerAlias
.
В директиве VirtualHost
вы можете указать IP-адрес вашего виртуального хоста для прослушивания, плюс порт:
<VirtualHost 127.0.0.1:80>
Это определение виртуального хоста применяется только в том случае, если клиент ( в большинстве случаев веб-браузер) подключается к IP-адресу 127.0.0.1 через порт 80. Поскольку 127.0.0.1 является (почти во всех случаях) внутренним устройством обратной связи, доступ к этому виртуальному хосту возможен только с самого сервера. Конечно, на публичных серверах вы предпочитаете использовать публичный IP-адрес.
Если вы хотите применить определение виртуального хоста к любому IP (который достигает сервера на сетевом уровне), вы можете использовать подстановочный знак *
, например:
<VirtualHost *:80>