我在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/html
chmod -R 775 .
(来自评论)
1条答案
按热度按时间r6l8ljro1#
很有可能是
selinux
的问题。如果您使用以下命令(从根用户)关闭selinux
:并且一切正常,您需要使用以下命令打开
selinux
:并运行以下命令:
一切都必须工作。如果这个方法没有帮助,我建议你阅读答案in this question。有一个答案与一个更灵活的
selinux
设置(与使用sudo semanage fcontext
)。