尝试使用 /var/www/html 以外的文件夹

Posted

技术标签:

【中文标题】尝试使用 /var/www/html 以外的文件夹【英文标题】:Attempting to use folder other than /var/www/html 【发布时间】:2015-03-06 15:36:36 【问题描述】:

我正在为我的网络服务器运行 Ubuntu (+LAMP) 堆栈。网络服务器的一切似乎都运行良好。例如我有 index.php 页面与

<?php
phpinfo();
?>

在 /var/www/html 内 & 也在 /var/www/mytestsite.com/ 下 从网络服务器内部,两个站点 @http://MyServerIPAddress/hello.phphttp://MyServerIPAddress/mytestsite.com/hello.php 都在显示正确的 phpinfo。

当我从服务器外部测试时,我只能访问 /var/www/html 内的页面 http://MyServerIPAddress/hello.php 但是页面访问 http://MyServerIPAddress/mytestsite.com/hello.php 消息显示

Not Found
The requested URL /example.com was not found on this server.
Apache/2.4.7 (Ubuntu) Server at *MyServerIPAddress* Port 80.

这是我用于 apache 的 mytestsite.com.conf

<VirtualHost *:80>
    ServerAdmin admin@mytestsite.com
    ServerName mytestsite.com
    ServerAlias www.mytestsite.com
    DocumentRoot /var/www/mytestsite.com
</VirtualHost>

并且还将文件夹访问权限和所有者设置与 /var/www/html 和 /var/www/mytestsite.com 匹配

我需要什么额外的配置才能访问 /var/www/html 文件夹之外的网站?

【问题讨论】:

如果您尝试将 index.php 放在 /var/www/html/mytestsite.com/ 会怎样? 也可以。只有当我创建一个与 /var/www/html 相同级别的新文件夹时,我才能让它工作。 【参考方案1】:

在查看 apache 日志和其他人的帮助后,我找到了自己问题的答案 首先我将网站的 apache conf 文件更改为

<VirtualHost *:80>
        ServerAdmin admin@mytestsite.com
        ServerName mytestsite.com
        ServerName <ServerIpAddress>
        DocumentRoot /var/www
        <Directory /var/www/mytestsite.com/public_html**/>
                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>

我还对 /etc/hosts 文件进行了更改,以包含该站点

<localhostIp>       localhost
<localhostIp>       ubuntu
<ServerIpAddress>   mytestsite.com mytestsite.com

更改后,我可以从服务器外部访问站点

【讨论】:

以上是关于尝试使用 /var/www/html 以外的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

我需要“/var/www”,但 Apache2 尝试使用空的“/var/www/html”

Composer 在 /var/www/html 中找不到 composer.json 文件

如何通过wget下载指定文件的位置?

Httpd 只允许访问直接在 /var/www/html 文件夹中创建的文件

/var/www/html 是啥? [关闭]

浅谈几种Bypass open_basedir的方法