排除nginx Web服务器上php open_basedir中的a目录
我正在尝试为我的网站设置一个php open_basedir,我只有2个位置可以执行我的php脚本,我需要在文档根目录中的子文件夹上禁用php。我不知道这是否可能 文档根是否需要执行php排除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 设置设置访问目录树,而不是特定目录。因此,如果要限制子目
/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