Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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
Index.php无法访问私有文件_Php_File_Model View Controller_Permissions_Directory - Fatal编程技术网

Index.php无法访问私有文件

Index.php无法访问私有文件,php,file,model-view-controller,permissions,directory,Php,File,Model View Controller,Permissions,Directory,我从头开发了一个php MVC框架,当我更改权限时,我的index.php无法访问某些文件。我使用fillezilla,唯一可以设置的文件权限是每个组(所有者、组和公共)的读、写和执行复选框。如果我取消选中所有公共文件,那么我会得到一个错误,但是如果我保持选中public->execute框,index.php会找到这些文件。我没有公用/专用文件夹设置,因此此设置可以吗?或者我应该怎么做???权限必须是运行Web服务器的任何用户都可以访问的权限。例如,如果您在linux下运行apache,则需要

我从头开发了一个php MVC框架,当我更改权限时,我的index.php无法访问某些文件。我使用fillezilla,唯一可以设置的文件权限是每个组(所有者、组和公共)的读、写和执行复选框。如果我取消选中所有公共文件,那么我会得到一个错误,但是如果我保持选中public->execute框,index.php会找到这些文件。我没有公用/专用文件夹设置,因此此设置可以吗?或者我应该怎么做???

权限必须是运行Web服务器的任何用户都可以访问的权限。例如,如果您在linux下运行apache,则需要确保apache能够访问这些文件。这可以通过使用ACL轻松实现。我在谷歌上快速搜索了ACL,我知道如何用php编写登录脚本并控制谁去哪里,但我希望index.php是唯一可以访问某些文件/文件夹的东西。到目前为止,我认为任何人都可以读取公共文件,只有网站上的文件才能读取/需要私人文件/文件夹,但事实似乎并非如此。服务器是linux上的apache任何建议??文件权限不是这样工作的。apache以特定用户的身份运行,该用户通常是
apache
,也在特定组下运行,该组通常也是
apache
。在这两者之间定义了权限。就文件的权限而言,您应该将其限制为仅限用户/组权限,而不限公共权限。如果您希望将index.php限制为仅访问特定文件,那么您要做的是将这些文件移动到不可通过web访问的路径中,然后让index.php提供这些文件。但是,在执行此操作时需要非常谨慎,因为如果没有正确清理输入,那么用户可能正在读取文件系统中文件权限允许apache读取的任何文件。