Debian ve Apache'yi çalıştırıyorum.
Dev sunucumda yeni bir dev ortamı yaratmak istiyorum. Buna dev2 diyelim. Şu anda dev sunucu sadece dev barındırıyor. Üretim sunucum, üzerinden erişilebilen canlı siteyi barındırıyor *.example.com
. dev2.example.com
Kendi docroot ile ayarlamak için aşağıdaki adımları takip ettikten sonra , dev2 URL'sini dev.example.com
, dev sunucudaki varsayılan siteye iletir .
İşte attığım adımlar:
- Hosting hesabımızda,
www
üretim sunucusunun IP'sine gitmek için A kaydımız var. Başka Bir A kaydıdev.example.com
dev sunucusuna gider ve bu URL varsayılan dev web sitesini yükler.dev2
Dev sunucusunun IP adresini de gösteren yeni bir A kaydı oluşturdum . dev2.example.com
Çalıştığından emin olmak için pinged ve hiçbir paket kaybı olmadı.- Yeni bir docroot ve sahte bir dizin oluşturdum:
/var/www/html/dev2/docroot/index.html
- Sonra,
dev2.conf
içinde bir dosya/etc/apache2/sites-available
oluşturdum ve içinden bir bağlantı oluşturdum/etc/apache2/sites-enabled
. - Sonra komutu koştum
sudo a2ensite dev2.conf
ve apache üzerinden yeniden yükledimservice apache2 reload
. Son olarak, tarayıcının önbelleğini temizledim ve bu işe yaramadığında, apache2'yi yeniden başlattım.
Neyi kaçırıyorum? İşte dev2.conf
dosyanın içeriği .
<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>
Düzenleme: Ayrıca ServerAlias dev2.example.com
boşuna ServerName altında satırı eklemeye çalıştı .
<VirtualHost xxx.xxx.xxx.xxx:80>
için<VirtualHost *:80>
ve sonra böyle Apache yenidenservice apache2 graceful
kullanmak yerinereload
.