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

Работа с поддоменами разработки

У меня есть виртуальный хост, который пересылает данные на мой основной домен (например, показывает тот же контент, что и мой основной домен).


Сейчас мой сайт использует основной домен: www.example.com

И различные псевдонимы доменов: example.com short.com

Я создаю новый обнесенный стеной сайт развития сада: dev.example.com

Но мой виртуальный хост не распознается по этому URL-адресу.

Нужно ли мне создавать запись с подстановочными знаками для * .example.com на моем DNS-узле или что-то в этом роде?

Вот соответствующий раздел из моих настроек виртуального хоста по умолчанию (в настоящее время /etc/apache2/sites-enabled/000-default ):

<VirtualHost *:80>
   ServerAdmin webadmin@example.com
    ServerName www.example.com
    ServerAlias example.com
    ServerAlias shortUrlEx.com
    ServerAlias www.shortUrlEx.com

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^example.com [NC]
    RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]

    RewriteCond %{HTTP_HOST} ^shortUrlEx.com [NC]
    RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]

    RewriteCond %{HTTP_HOST} ^www.shortUrlEx.com [NC]
    RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]

    DocumentRoot /var/www/examplepath
    php_value date.timezone "America/New_York"
    php_value expose_php "Off"
    php_value upload_max_filesize 10M
    php_value post_max_size 10M

... other config options

А dev.example.com настроен следующим образом (из /etc/apache2/sites-enabled/dev.example.com):

<VirtualHost *>
<Directory />
    AuthType Basic
    AuthName "Check Site"
    AuthUserFile /srv/dev-example/config/.htpasswd
    Require valid-user
</Directory>

    ServerName dev.example.com


    DocumentRoot /srv/dev-example/public_html/
    Alias /favicon.ico /srv/dev-example/docs/dev_favicon.ico
    php_value date.timezone "America/New_York"


    php_value expose_php "Off"
    php_value upload_max_filesize 10M
    php_value post_max_size 10M
    <Directory />
        Options FollowSymLinks -Indexes
        AllowOverride None
    </Directory>
    <Directory /srv/dev-example>
        Options FollowSymLinks MultiViews -Indexes
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ... further options that shouldn't be applicable...

Что я здесь делаю не так? Как мне настроить виртуальные хосты по умолчанию и dev.example.com, чтобы разрешить доступ к поддомену dev и использовать основной домен для всего остального?

Мне пришлось:

Измените настройку виртуального хоста на:

<VirtualHost *:80>

Раскомментируйте параметр NameVirtualHost:

NameVirtualHost *:80

И добавьте ServerAlias ​​к виртуальному хосту dev.shermanbrothers.com.

ServerAlias dev.shermanbrothers.com

Попробуйте обновить запись Virtualhost на своем сайте разработчиков до: <VirtualHost *:80>

Обратите внимание на добавление: 80.

Определения вашего виртуального хоста должны соответствовать ИмяVirtualHost значение настройки. Бег apachectl configtest обычно сообщает о любых несоответствиях.

Что происходит, когда вы пытаетесь пинговать "dev.example.com"? Преобразуется ли он вообще в IP-адрес? Если да, то это IP-адрес сервера Apache?

В этом случае я подозреваю, что вам нужно будет настроить новую запись "dev.example.com" в DNS (или, по крайней мере, в / etc / hosts), чтобы ваша рабочая станция знала, куда должен идти этот DNS.

Не должен /etc/apache2/sites-enabled/dev.shermanbrothers.com быть /etc/apache2/sites-enabled/dev.shermanbrothers.com.conf? Я думаю, что Apache принимает файлы * .conf, по крайней мере, в CentOS. Или вы его вручную включили?