Apache2 www1 вместо www

Итак, я создал очень простой сайт, содержащий только index.html с текстом «welcome». виртуальный хост этого сайта выглядит следующим образом:

ServerAdmin email@email.com ServerName name.com ServerAlias www.name.com DocumentRoot /var/www/name.com/public_html

Это работает отлично. Затем я создаю другой сайт, который я хочу быть www1.name.com с текстом www1.

Я делаю практически то же самое, я создаю папку /var/www1/name.com/public_html с index.html, в ней копирую предыдущую файл и измените его

ServerAlias www1.name.com DocumentRoot /var/www1/name.com/public_html

, но при переходе на www1.name.com я получаю текст «Добро пожаловать», а не «www1». Может ли кто-нибудь помочь мне в этом?

И да, я всегда делаю a2ensite/a2dissite и service apache2 restart

0
задан 23 August 2017 в 17:52

4 ответа

Уточнение нескольких базовых точек:

В Ubuntu /var/www - это каталог по умолчанию, в котором должен храниться веб-контент пользователя. Это определено в глобальном файле конфигурации Apache: /etc/apache2/apache2.conf, по директивам: <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> Прямой связи между именем VirtualHost и его именем DocumentRoot нет прямой связи. Директива ServerName определяет имя общего сервера или имя определенного VirtualHost, когда оно помещается в его определение, - между тегами <VirtualHost>. В целях эффективного управления VH, как правило, определение каждого отдельного VirtualHost помещается в отдельный файл конфигурации. Директива ServerName требуется для каждого VirtualHost. Директива ServerAlias не требуется. Мы можем думать об этом как о месте, где мы можем ввести один или несколько синонимов ServerName.

В соответствии с этими пунктами мое предложение следующее:

Внутри Ubuntu /var/www является каталогом по умолчанию, в котором должен храниться веб-контент пользователя. Это определено в глобальном файле конфигурации Apache: /etc/apache2/apache2.conf по директивам: <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

Внутри Ubuntu /var/www является каталогом по умолчанию, в котором должен храниться веб-контент пользователя. Это определяется в глобальном файле конфигурации Apache: /etc/apache2/apache2.conf, директивами:

sudo nano /etc/apache2/sites-available/www.name.com.conf Его содержимое должно быть чем-то вроде: <VirtualHost *:80> ServerName www.name.com ServerAlias name.com ServerAdmin email@email.com DocumentRoot /var/www/www.name.com/public_html <Directory /var/www/www.name.com/public_html> Options None FollowSymLinks # Enable .htaccess Overrides: AllowOverride All DirectoryIndex index.html index.php Order allow,deny Allow from all Require all granted </Directory> </VirtualHost> Прямой связи между именем VirtualHost и его DocumentRoot.

Прямой связи между именем VirtualHost и его именем DocumentRoot нет прямой связи.

Директива ServerName определяет имя общего сервера или имя определенного VirtualHost, когда оно помещается в его определение, - между тегами <VirtualHost>.

Директива ServerName определяет имя общего сервера или имя определенного VirtualHost, когда оно помещается в его определение, - между тегами <VirtualHost>.

Ubuntu 14.04: sudo service apache2 restart Ubuntu 16.04: sudo systemctl restart apache2.service В целях эффективное определение VH, как правило, определение каждого отдельного VirtualHost помещается в отдельный файл конфигурации.
0
ответ дан 18 July 2018 в 08:03

Предположим, что теги VirtualHost точны. Вероятно, это потому, что ServerAlias не используется, если нет ServerName. Повторите попытку после изменения ServerAlias до ServerName во втором VirtualHost.

Хорошим напоминанием является установка ServerName для имени и использование ServerAlias для любых дополнительных псевдонимов. [ ! d1]

Обратите внимание, что если вы собираетесь использовать другой каталог (вне / var / www), чтобы разрешения были установлены правильно. Также, если используется SELinux, для этого каталога должен быть установлен соответствующий контекст. Но это не проблема, если вы не включили SELinux самостоятельно.

1
ответ дан 18 July 2018 в 08:03

Уточнение нескольких базовых точек:

В Ubuntu /var/www - это каталог по умолчанию, в котором должен храниться веб-контент пользователя. Это определено в глобальном файле конфигурации Apache: /etc/apache2/apache2.conf, по директивам: <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> Прямой связи между именем VirtualHost и его именем DocumentRoot нет прямой связи. Директива ServerName определяет имя общего сервера или имя определенного VirtualHost, когда оно помещается в его определение, - между тегами <VirtualHost>. В целях эффективного управления VH, как правило, определение каждого отдельного VirtualHost помещается в отдельный файл конфигурации. Директива ServerName требуется для каждого VirtualHost. Директива ServerAlias не требуется. Мы можем думать об этом как о месте, где мы можем ввести один или несколько синонимов ServerName.

В соответствии с этими пунктами мое предложение следующее:

Внутри Ubuntu /var/www является каталогом по умолчанию, в котором должен храниться веб-контент пользователя. Это определено в глобальном файле конфигурации Apache: /etc/apache2/apache2.conf по директивам: <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

Внутри Ubuntu /var/www является каталогом по умолчанию, в котором должен храниться веб-контент пользователя. Это определяется в глобальном файле конфигурации Apache: /etc/apache2/apache2.conf, директивами:

sudo nano /etc/apache2/sites-available/www.name.com.conf Его содержимое должно быть чем-то вроде: <VirtualHost *:80> ServerName www.name.com ServerAlias name.com ServerAdmin email@email.com DocumentRoot /var/www/www.name.com/public_html <Directory /var/www/www.name.com/public_html> Options None FollowSymLinks # Enable .htaccess Overrides: AllowOverride All DirectoryIndex index.html index.php Order allow,deny Allow from all Require all granted </Directory> </VirtualHost> Прямой связи между именем VirtualHost и его DocumentRoot.

Прямой связи между именем VirtualHost и его именем DocumentRoot нет прямой связи.

Директива ServerName определяет имя общего сервера или имя определенного VirtualHost, когда оно помещается в его определение, - между тегами <VirtualHost>.

Директива ServerName определяет имя общего сервера или имя определенного VirtualHost, когда оно помещается в его определение, - между тегами <VirtualHost>.

Ubuntu 14.04: sudo service apache2 restart Ubuntu 16.04: sudo systemctl restart apache2.service В целях эффективное определение VH, как правило, определение каждого отдельного VirtualHost помещается в отдельный файл конфигурации.
0
ответ дан 24 July 2018 в 18:58

Предположим, что теги VirtualHost точны. Вероятно, это потому, что ServerAlias не используется, если нет ServerName. Повторите попытку после изменения ServerAlias до ServerName во втором VirtualHost.

Хорошим напоминанием является установка ServerName для имени и использование ServerAlias для любых дополнительных псевдонимов. [ ! d1]

Обратите внимание, что если вы собираетесь использовать другой каталог (вне / var / www), чтобы разрешения были установлены правильно. Также, если используется SELinux, для этого каталога должен быть установлен соответствующий контекст. Но это не проблема, если вы не включили SELinux самостоятельно.

1
ответ дан 24 July 2018 в 18:58

Другие вопросы по тегам:

Похожие вопросы: