apache2 VirtualHost(DocumentRoot?)配置不起作用

时间:2019-03-04 05:26:08

标签: php node.js codeigniter ubuntu apache2

我正在尝试在Ubuntu 16.04上配置Apache WebServer,以通过以下两个VirtualHost指令为PHP网站和PHP API服务:

 `<VirtualHost *:80>
    ServerName phpapi.my-domain.net
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/services
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
    ServerName nodeapi.my-domain.net
    <Location "/">
        ProxyPreserveHost On
        ProxyPass http://localhost:2040/
        ProxyPassReverse http://localhost:2040/
    </Location>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost>
<VirtualHost *:80>
    ServerName admin.my-domain.net
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/admin
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>`

我在html内有一个admin文件夹,如果我简单地调用http :: IP_Address / admin,则该代码有效。

当我这样做时-> sudo apache2ctl -S我可以看到如下所示的VirtualHost:

    VirtualHost configuration:*:80 is a NameVirtualHost
             default server phpapi.my-domain.net (/etc/apache2/sites-enabled/my- 
   domain.net.conf:1)
             port 80 namevhost nodeapi.my-domain.net (/etc/apache2/sites- 
   enabled/my-domain.net.conf:8)
             port 80 namevhost admin.my-domain.net (/etc/apache2/sites- 
   enabled/my-domain.net.conf:18)
        ServerRoot: "/etc/apache2"
        Main DocumentRoot: "/var/www/html"
        Main ErrorLog: "/var/log/apache2/error.log"
        Mutex proxy: using_defaults
        Mutex default: dir="/var/lock/apache2" mechanism=fcntl
        Mutex mpm-accept: using_defaults
        Mutex watchdog-callback: 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

现在,当我尝试运行http://admin.my-domain.net时,它可以工作并显示Ubuntu服务器页面(因此我的DNS可以工作)。当我给出项目文件的路径... http://admin.my-domain.net/admin时,我得到了404(在此服务器上找不到请求的URL / admin/。http://phpapi.my-domain.net(获取404)也是如此。 但是有趣的是,NodeAPI设置起作用,我的API POST调用得到200 OK。

现在我不确定为什么PHP VirtualHost设置不起作用,而仅Node API设置起作用?如您所知,我是Apache2配置的新手。无论出于何种原因,我的域名中确实都有一个“连字符”。 我希望有人可以向我指出正确的方向或提供帮助,因为我花了很多时间在此上,以了解发生了什么并使其工作。

感谢您的时间。

0 个答案:

没有答案