如何在浏览器中打开不在/ var / www / html中的php页面?

在/ var / www /中有一个带有三个目录的apache服务器:

/var/www/html/ and /var/www/printer and /var/www/codes

我可以毫无问题地通过浏览器读取/ html /中的所有页面。但是我不知道如何通过浏览器在/ printer /中读取页面。 codes /目录的权限为0777,但其中没有任何权限。

1-问题是普通用户如何通过浏览器读取/ var / www / html /以外的目录中的文件?

2-用户是否可以滥用/ codes /目录来提升其特权?如果是,怎么办?仅供参考:用户可以用代码制作任何文件,但不能将其所有权更改为root或其他任何人。

谢谢。

评论
  • 幸福棒棒糖
    幸福棒棒糖 回复

    您应该使用指令和别名:

    <VirtualHost *> 
        ServerName test.com
        DocumentRoot /var/www/html
    
        Alias /codes "/var/www/codes"
    
        <Directory "/var/www/codes">
            Options None
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    

    If you are using httpd2.4 then use Require all granted instead of Order allow,deny Allow from all.

  • et_ea
    et_ea 回复

    您需要在httpd.conf文件中更改DocumentRoot设置。可能会在/etc/apache2/conf/httpd.conf之类的地方

    使用您喜欢的编辑器查找DocumentRoot,并将其更改为/ var / www。对于看起来像这样的设置,还要往下看一点:

    <Directory "/var/www">
    

    您还需要将引号中的内容更改为新目录。这样,当用户发出调用该目录的请求时,Apache便可以从该目录进行读取。

    现在重启您的apache服务(httpd -k restart),您应该一切顺利。