У меня есть сервер с vhosts conf, который выглядит так:
NameVirtualHost *:80
# My Virtual Hosts:
<VirtualHost *:80>
ServerAdmin admin@email.com
ServerName domain
DirectoryIndex index.php index.html
DocumentRoot /var/www/domain/public
# Custom log file locations
LogLevel warn
ErrorLog /var/www/domain/log/error_log
CustomLog /var/www/domain/log/access_log combined
<Directory "/var/www/dailysongfix/public">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Типичный vhost conf, правда? Ну, мне также нужно разработать несколько других сайтов на сервере, и к этим сайтам еще не подключены домены. Как я могу просмотреть их, не указывая на них домен? Я предполагаю, возможно, IP-адрес и порт, но не знаю, как это настроить.
Если вы собираетесь использовать именованные виртуальные хосты, вам необходимо назначить некоторые имя на сервер. В вашем примере к хосту будет обращаться по имени domain
(из ServerName domain
директива). Вы можете попробовать связаться с вашим сервером по IP-адресу напрямую, выполнив что-то вроде http://123.45.67.89/
но это не заставит Apache запускать именованный виртуальный хост. Для этого вам нужно будет добавить что-то подобное в свой /etc/hosts
файл на клиенте:
123.45.67.89 domain
Тогда вы сможете использовать http://domain/
в вашем браузере. Это устанавливает сопоставление между именем и IP-адресом локально без необходимости возиться с DNS.
Это работает так: когда браузер отправляет HTTP-запрос на сервер, он включает любой текст, который он использовал после //
в URL в Host:
заголовок. Apache берет этот текст в Host:
заголовок и сопоставляет его с ServerName
значения в каждом названном виртуальном хосте. Когда он находит совпадение, он использует его как сервер для обработки остальной части запроса. Apache делает не необходимо найти соответствие между именем хоста и IP-адресом, поэтому это работает, если вы изменяете только конфигурацию клиентского компьютера.
Используйте «Alias» вместо VirtualHost, это должно работать нормально, если вашим PHP-приложениям не требуется фиксированный URL.
Изменить: вы можете добавить псевдонимы к конфигурации, которую вы вставили выше, просто добавьте их перед контейнером.
возможно, это не лучший способ, но вы всегда можете сделать следующее:
Я знаю, что знаю - это не совсем то, о чем вы просили, но я думаю, что это может решить вашу проблему.
в качестве альтернативы, если ваши vhosts имеют точно такую же конфигурацию, просто поместите свои веб-страницы в / где-нибудь / {nameOfDomain}, а затем поделитесь / где-нибудь как другой vhost. тогда вы сможете получить доступ к любой странице, перейдя в http: // myVhost /{nameOfDomain}. это может вызвать некоторую угрозу безопасности, если в vhosts у вас есть правила доступа [которые, вероятно, не будут включены в конфигурацию 'другого vhost'].
На любом стандартном пакете apache будет настроен для использования через IP-адрес. у которого в основном нет виртуального хоста