centos PHP写入权限被拒绝

r8xiu3jd  于 2022-11-07  发布在  PHP
关注(0)|答案(1)|浏览(155)

我在CentOS 7上运行服务器。用户apache|组apache在/var/www/html上具有775权限当我执行一个PHP文件,希望在root dir (/var/www/html/)中创建一个新文件时,我得到以下错误Warning: file_put_contents(file.bin): failed to open stream: Permission denied in /var/www/html/file.php
PHP程式码:

<?php
ini_set('display_errors', 'on');
$file = 'file.bin';
$content = "Content";
file_put_contents($file, $content);
?>

我会用更多的数据来更新这个问题,但是因为我是新来的,所以我不知道太多关于调试服务器错误的事情。
我尝试过:

  • 对于执行脚本(php..),我看到用户是apache,所以我在/var/www/html/上给了“apache”所有权。
  • ./html上尝试了777(并在755不起作用后反转了操作)
  • 也尝试了cd /var/www/htmlchmod -R 775 .(来自评论)
r6l8ljro

r6l8ljro1#

很有可能是selinux的问题。如果您使用以下命令(从根用户)关闭selinux

setenforce 0

并且一切正常,您需要使用以下命令打开selinux

setenforce 1

并运行以下命令:

chcon -R -t httpd_sys_rw_content_t /your/path

一切都必须工作。如果这个方法没有帮助,我建议你阅读答案in this question。有一个答案与一个更灵活的selinux设置(与使用sudo semanage fcontext)。

相关问题