[英]Error in configuring dynamic subdomains for apache2 in ubuntu
我想為在我的網站上注冊的每個機構創建子域。
我執行以下步驟為測試網站創建子域:
須藤a2enmod vhost_alias
須藤nano / etc / hosts
添加行-127.0.0.1 test.loc
須藤納米/etc/apache2/sites-available/testloc.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName test.loc
ServerAlias *.test.loc
VirtualDocumentRoot /var/www/html/test
<Directory "/var/www/html/test">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
須藤a2ensite testloc.conf
sudo服務apache2重新加載
須藤apt-get install dnsmasq
sudo服務dnsmasq狀態
它給出了端口53已在使用中的錯誤,因此我將其端口更改為5353
須藤nano /etc/NetworkManager/NetworkManager.conf
添加的行-dns = dnsmasq
sudo服務網絡管理器重啟
須藤nano /etc/dnsmasq.conf
修改后的行-監聽地址= 127.0.0.1
須藤納米/etc/dnsmasq.d/loc
添加的行-地址= / loc / 127.0.0.1
sudo /etc/init.d/dnsmasq重新啟動
須藤nano /etc/dhcp/dhclient.conf
未注釋的行-#prepend域名服務器127.0.0.1;
須藤dhclient
創建一個測試文件夾,在.htaccess中添加以下行以接受子域
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]+\.test\.loc$
RewriteRule !^index\.php$ index.php [L]
index.php代碼:
preg_match('/([^.]+)\.test\.loc/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
echo $subdomain;
在創建虛擬主機及其工作之前,我嘗試過test.loc。 在安裝dnsmasq之前,一切都還不錯。 安裝dnsmasq后, 挖google.com也不起作用,但是“挖google.com @ 127.0.0.53”或“挖google.com @ 8.8.8.8”也可以工作。 因此,似乎域名服務器存在一些問題。 盡管我檢查了/etc/resol.conf,但那里已經有名稱服務器。
但是不知何故,一切都不正常。 有人可以保釋我嗎?
經過數小時的研究,可以得出結論,Ubuntu 17.04不是穩定版本,因此dnsmasq(以及其他一些版本)無法正常工作。
我測試以上過程在Ubuntu 17.10上運行正常,沒有任何錯誤。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.