PHP:“您必须遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他有关法律法规。”;无法打开流:权限被拒绝";
当我尝试通过某些功能访问任何目录或文件时,我在服务器上得到了一些有趣的结果。我已将所有文件和目录权限设置为777,并已将内容所有者更改为Apache,但仍会收到错误消息。代码: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\
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