PHP:“您必须遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他有关法律法规。”;无法打开流:权限被拒绝";

PHP:“您必须遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他有关法律法规。”;无法打开流:权限被拒绝";,php,file-permissions,mkdir,directory-permissions,file-put-contents,Php,File Permissions,Mkdir,Directory Permissions,File Put Contents,当我尝试通过某些功能访问任何目录或文件时,我在服务器上得到了一些有趣的结果。我已将所有文件和目录权限设置为777,并已将内容所有者更改为Apache,但仍会收到错误消息。代码: move_-upload_文件($_-FILES['file']['tmp_-name'],'/var/www/html/fileContent\u-Site/userData/'.$_-SESSION['username'].目录分隔符。$_-FILES['file']['name']); 或 file\u put\

当我尝试通过某些功能访问任何目录或文件时,我在服务器上得到了一些有趣的结果。我已将所有文件和目录权限设置为777,并已将内容所有者更改为Apache,但仍会收到错误消息。代码:
move_-upload_文件($_-FILES['file']['tmp_-name'],'/var/www/html/fileContent\u-Site/userData/'.$_-SESSION['username'].目录分隔符。$_-FILES['file']['name']);

file\u put\u内容('userData/userData.txt',$result,file\u APPEND)

mkdir(“userData/”$register['username'])

对于“移动上传的文件()”,我得到:

移动上传的文件(/var/www/php/Site/userData/radi/110729.png):无法打开流:在/var/www/php/Site/upload.php中的权限被拒绝

move_upload_file():无法将“/tmp/phpUFvMcn”移动到/var/www/php/Site/userData/radi/110729.png”中的“/var/www/php/Site/upload.php”

对于“file\u put\u content()”和“mkdir()”

文件内容(userData/userData.txt):打开流失败:在/var/www/php/Site/register.php中权限被拒绝

mkdir():在/var/www/php/Site/register.php中被拒绝的权限

使用

并检查一次打开http.conf(在/opt/lampp/etc/httpd.conf文件中)

编辑此部分:

<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User hostname
Group hostname
</IfModule>

#
#如果希望httpd作为其他用户或组运行,则必须运行
#httpd最初作为root,它将切换。
#
#用户/组:要作为运行httpd的用户/组的名称(或#编号)。
#通常,为用户创建一个专用的用户和组是一个很好的做法
#运行httpd,与大多数系统服务一样。
#
用户主机名
组主机名
看,如果这样行的话

  • 检查运行PHP的所有者。检查-只需在PHP文件中的“文件内容”附近添加这些字符串

    回显“当前用户:”。获取当前用户()

    echo“脚本是在用户:.exec('whoami')下执行的

  • 如果您看到当前用户和“脚本用户”之间的差异,那么您已经找到了问题所在

  • 输出示例:

    current user: root
    script was executed under user: www-data
    
    只需将适当的用户设置为PHP文件目录/要从PHP脚本编写的目录: 在Linux终端中执行:

    chown -R www-data:www-data /path/to/the/folder
    
    请注意,“www数据”用户只是一个例子。您应该使用从“脚本在用户下执行”输出中获得的用户

    附言: 要检查文件夹所有者,可以使用以下linux命令:

    ls -ltr
    
    p.p.S.: 检查文件夹是否具有正确的访问权限:755 文件夹php文件应具有“644”访问权限

    要检查权限,请使用与所有者检查相同的命令:

    ls -ltr
    
    您将看到如下内容:

    drwxr-xr-x  10 www-data www-data 4096 Aug  5 15:18 api
    

    其中“drwxr-xr-x”是访问权限。用谷歌搜索它,获取更多信息。

    我认为这是所有者的错误。PHP所有者是deamon,所以当我更改运行.httpd的用户时,您可以检查您的服务器配置吗?即使是sudoers文件中的用户,我也会收到更多错误。您项目的用户名和组名是什么?是www数据吗?不是,项目的路径是/var/www/php/site。php中所有文件和文件夹的所有者是我的用户,组是apache,但即使在我“chown-R apache:apache php”时,仍然没有发生相同的错误
    drwxr-xr-x  10 www-data www-data 4096 Aug  5 15:18 api