将子域指向同一服务器上的目录

时间:2017-02-18 11:53:37

标签: wordpress apache debian vps

我想将子域指向我的vps Apache/2.4.10 (Debian)上的目录。我创建了一个子域名,添加了我的服务器的A记录和ip。现在当我在浏览器中打开它时,这个子域指向主域。

主域位于/var/www/wordpress。子域名必须位于/var/www/subdomain.example.com

所以在/etc/apache2/sites-available我创建了subdomain.example.com.conf

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    ServerName subdomain.example.com
    DocumentRoot /var/www/subdomain.example.com

    <Directory /var/www/subdomain.example.com>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

然后我做了a2ensite subdomain.example.com.confservice apache2 reload。之后,主域和子域都返回HTTP ERROR 500。我输了。

apache2ctl -S

之前

a2ensite subdomain.example.com.conf

[Sat Feb 18 13:15:55.649294 2017] [alias:warn] [pid 4524] AH00671: The Alias directive in /etc/phpmyadmin/apache.conf at line 3 will     probably never match because it overlaps an earlier Alias.
VirtualHost configuration:
*:443                  examplevps.com (/etc/apache2/sites-enabled/default-ssl.conf:2)
*:80                   examplevps.com  (/etc/apache2/sites-enabled/wordpress.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
apache2ctl -S

之后

a2ensite subdomain.example.com.conf

[Sat Feb 18 13:39:42.263129 2017] [alias:warn] [pid 4917] AH00671: The Alias dir                                                                   ective in /etc/phpmyadmin/apache.conf at line 3 will probably never match becaus                                                                   e it overlaps an earlier Alias.
VirtualHost configuration:
*:443                  examplevps.com (/etc/apache2/sites-enabled/default-ssl                                                                   .conf:2)
*:80                   is a NameVirtualHost
         default server subdomain.example.com (/etc/apache2/sites-enabled/subdomain.example.com.conf:1)
         port 80 namevhost subdomain.example.com (/etc/apache2/sites-enabled/                                                                   subdomain.example.com.conf:1)
                 alias subdomain.example.com
         port 80 namevhost examplevps.com (/etc/apache2/sites-enabled/wordpress.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

1 个答案:

答案 0 :(得分:0)

看起来你缺少报价。试试这个:

<VirtualHost *:80>
    ServerName subdomain.example.com
    ServerAlias subdomain.example.com

    # DocumentRoot 
    DocumentRoot "/var/www/subdomain.example.com"

    <Directory "/var/www/subdomain.example.com">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    # Logging
    ErrorLog "${APACHE_LOG_DIR}/error.log"
    CustomLog "${APACHE_LOG_DIR}/access.log" combined
</VirtualHost>