Я использую Debian и Apache.
Я хочу создать новую среду разработки на моем сервере разработки. Давайте назовем это dev2. В настоящее время на сервере dev размещается только dev. Мой производственный сервер размещает живой сайт, доступный через *.example.com
. После выполнения приведенных ниже действий по настройке dev2.example.com
со своим собственным docroot, URL-адрес dev2 перенаправляется на dev.example.com
, сайт по умолчанию на сервере dev.
Вот шаги, которые я предпринял:
- В нашей учетной записи хостинга у нас есть запись A для
www
чтобы перейти к IP- адресу рабочего сервера. Другая запись A дляdev.example.com
отправляется на сервер разработчика, и этот URL-адрес загружает веб-сайт разработчика по умолчанию. Я создал новую запись A дляdev2
также указывающую на IP-адрес сервера dev. - Я отправил ping на
dev2.example.com
чтобы убедиться, что он работает и нет потери пакетов. - Я создал новый docroot и фиктивный индекс:
/var/www/html/dev2/docroot/index.html
- Затем я создал файл
dev2.conf
в/etc/apache2/sites-available
и создал символическую ссылку на него из/etc/apache2/sites-enabled
. - Затем я запустил команду
sudo a2ensite dev2.conf
и перезагрузил apache черезservice apache2 reload
. Наконец, я очистил кеш браузера и когда это не сработало, я перезапустил apache2.
Что мне не хватает? Вот содержимое файла dev2.conf
.
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerAdmin tech@example.com
ServerSignature email
ServerName dev2.example.com
DirectoryIndex index.php index.html index.htm index.shtml
DocumentRoot /var/www/html/dev2/docroot
HostNameLookups off
RewriteEngine on
# Force SSL
RewriteCond %{HTTP_HOST} ^dev2\.example\.com$ [NC]
RewriteRule ^(.*)$ https://dev2.example.com$1 [L,R=301]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://dev2.example.com$1 [L,R=301]
# Force our domain name
RewriteCond %{HTTP_HOST} !^dev2\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) https://dev2.example.com/$1 [L,R]
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html/dev2/docroot>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
# For friendly URLs
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Изменить: Я также попытался добавить строку ServerAlias dev2.example.com
под ServerName безрезультатно.