簡體   English   中英

在ubuntu中為apache2配置動態子域時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM