Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
排除nginx Web服务器上php open_basedir中的a目录_Php_Apache_Nginx - Fatal编程技术网

排除nginx Web服务器上php open_basedir中的a目录

排除nginx Web服务器上php open_basedir中的a目录,php,apache,nginx,Php,Apache,Nginx,我正在尝试为我的网站设置一个php open_basedir,我只有2个位置可以执行我的php脚本,我需要在文档根目录中的子文件夹上禁用php。我不知道这是否可能 文档根是否需要执行php /home/bastian/html /home/bastian/meatalheavy 我需要在以下目录上禁用php执行 /home/bastian/html/ass_ests /home/bastian/html/images/ php.ini 设置设置访问目录树,而不是特定目录。因此,如果要限制子目

我正在尝试为我的网站设置一个php open_basedir,我只有2个位置可以执行我的php脚本,我需要在文档根目录中的子文件夹上禁用php。我不知道这是否可能

文档根是否需要执行php

/home/bastian/html
/home/bastian/meatalheavy
我需要在以下目录上禁用php执行

/home/bastian/html/ass_ests
/home/bastian/html/images/
php.ini

设置设置访问目录树,而不是特定目录。因此,如果要限制子目录,则不能允许它的任何父目录

注意:根据您的目录布局和PHP版本,您想做的事情似乎不可能,或者至少不需要大量配置来允许所有文件和子文件夹单独存在。

设置设置访问目录树,而不是特定目录。因此,如果要限制子目录,则不能允许它的任何父目录


注意:根据您的目录布局和PHP版本,您想要做的似乎是不可能的,或者至少不需要进行大量的配置,以允许所有文件和子文件夹单独存在。

open\u basedir设置应该这样写:

open_basedir = "/home/bastian/html:/home/bastian/meatalheavy"
这不会有效地阻止在子目录上执行php脚本,它还允许从open_basedir的子目录中包含php脚本include[_once],require[_once]。但是您可能需要OpenBaseDir中的som其他路径、临时目录上特别用于上传的任何外部PHP库或session.save_路径

open_basedir = "/home/bastian/html:/home/bastian/meatalheavy:/var/lib/php5/:/path/to/my/php/defined/temporary/dir:/path/to/my/session/dir"
因此,这对于包含来说是可以的,没有办法从包含中删除子树,现在为了防止在某些子目录上执行php,您只需要防止直接访问php脚本,而不是php access中的后端。对于Nginx,这应该可以:

location ~* ^/(ass_ests|images)/.*\.(php|php5)$
{
    deny all;
}
但您也可以使用mim类型,如中所述。其中,映像目录的内容被强制转换为映像,因此即使具有映像扩展名的脚本也不会执行。在FastCgi模式下,可以在图像文件中执行一些PHP。 所以,对于你的图像目录,不要知道你在另一个目录中有什么

    location /images/
    {
            types
            {
                    image/gif       gif;
                    image/jpeg      jpeg jpg;
                    image/png       png;
                    text/plain      txt;
            }
            default_type    application/octet-stream;
            location ~ \.(php|php5)$
            {
                    break;
            }
    }

open_basedir设置应该这样写:

open_basedir = "/home/bastian/html:/home/bastian/meatalheavy"
这不会有效地阻止在子目录上执行php脚本,它还允许从open_basedir的子目录中包含php脚本include[_once],require[_once]。但是您可能需要OpenBaseDir中的som其他路径、临时目录上特别用于上传的任何外部PHP库或session.save_路径

open_basedir = "/home/bastian/html:/home/bastian/meatalheavy:/var/lib/php5/:/path/to/my/php/defined/temporary/dir:/path/to/my/session/dir"
因此,这对于包含来说是可以的,没有办法从包含中删除子树,现在为了防止在某些子目录上执行php,您只需要防止直接访问php脚本,而不是php access中的后端。对于Nginx,这应该可以:

location ~* ^/(ass_ests|images)/.*\.(php|php5)$
{
    deny all;
}
但您也可以使用mim类型,如中所述。其中,映像目录的内容被强制转换为映像,因此即使具有映像扩展名的脚本也不会执行。在FastCgi模式下,可以在图像文件中执行一些PHP。 所以,对于你的图像目录,不要知道你在另一个目录中有什么

    location /images/
    {
            types
            {
                    image/gif       gif;
                    image/jpeg      jpeg jpg;
                    image/png       png;
                    text/plain      txt;
            }
            default_type    application/octet-stream;
            location ~ \.(php|php5)$
            {
                    break;
            }
    }

这不是关于编程,而是关于administration@Hnatt当前位置在SO上询问与编程相关的管理问题是可以的。对不起,我支持-1。这不是关于编程,而是关于administration@Hnatt:在SO上询问与编程相关的管理问题是可以的。对不起,我收回了我的-1