Назад | Перейти на главную страницу

Настройка NameVirtualHosts и IP-адреса

так что у меня site1.com и 192.168.1.100

Если я использую IP-адрес, Apache не работает для site1.com, если я использую site1.com, IP-адрес не работает. Мысли?

Могу я получить оба?

Мне нужно получить доступ к IP и site1.com, чтобы они указывали на разные каталоги (разные проекты)

Site1.com

#NameVirtualHost site1.com:80
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /home/www/site1.com/current/web
        ServerName site1.com
        ServerAlias site1.com

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/site1.com/current/web/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/app_error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/app_access.log combined

</VirtualHost>

Айпи адрес

NameVirtualHost 192.168.1.100:80
<VirtualHost 192.168.1.100:80>
#<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /home/www/ip/current/
        ServerName 192.168.1.100
        ServerAlias 192.168.1.100

        <Directory /home/www/ip/current/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/ip_error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/ip_access.log combined


</VirtualHost>

ОБНОВЛЕНО с решением

Site1.com

#NameVirtualHost site1.com:80
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /home/www/site1.com/current/web
        ServerName site1.com
        ServerAlias site1.com

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/site1.com/current/web/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/app_error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/app_access.log combined

</VirtualHost>

Айпи адрес

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /home/www/ip/current/
        ServerName 192.168.1.100
        #ServerAlias 192.168.1.100

        <Directory /home/www/ip/current/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/ip_error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/ip_access.log combined


</VirtualHost>

Установите виртуальный хост без ServerName в качестве универсального виртуального хоста:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /home/www/ip/current/
    <Directory>
    ...

Обе ваши директивы VirtualHost должны соответствовать директиве NameVirtualHost. Так что вы должны либо использовать *:80 в обе VirtualHost и в имени VirtualHost, или вы используете 192.168.1.100:80 во всех местах.

Вам также не нужно устанавливать то же имя, что и ServerName и ServerAlias. ServerAlias предназначен для любых дополнительных имен, которые вы хотите назначить этому виртуальному хосту, в дополнение к ServerName.