作者:php麟状 | 来源:互联网 | 2023-05-19 21:59
我知道这是许多线程的常见错误,但我厌倦了搜索,我仍然没有解决它.当我尝试运行函数file_put_contents时,我收到以下错误:
Warning: file_put_contents(test.txt): failed to open stream: Permission denied in /var/www/html/nurses/adminWriter.php on line 29
我已经完成了最常见的答案,将nurses文件夹和test.txt文件的权限更改为777.这不起作用.
我目前正在全新安装最新的CentOS 7服务器.
我发现如果我通过控制台运行php脚本:
# php /var/www/html/nurses/adminWriter.php
它运行得很好,我只在通过浏览器运行它时才会收到错误,但我真的需要以这种方式运行它.
最好的祝福!
1> 小智..:
chcon -Rv --type=httpd_sys_rw_content_t /dir
这可能会有所帮助,而不是关闭selinux.
您能解释一下这件事吗?
2> danielnovais..:
好的,我发现了这个问题:selinux
这是解决方案:http:
//kb.sp.parallels.com/en/11142
如果页面出现故障:
症状
更改默认目录以存储网站内容(例如,更改为"/ home")后,您将无法通过Web访问子域和其他网站的内容.
原因
如果SELinux在" 强制 "模式下工作,则会出现此问题.在此模式下,网站和其中的子域的webroot目录具有不同的权限,并且您的Web服务器无法访问它们.运行此命令:
# getenforce
输出应该是:强制执行
解析度
禁用SELinux支持:在任何编辑器中打开文件/ etc/selinux/config并找到以下行:
SELINUX=
将其更改为:
SELINUX=disabled
如果找不到此文件,请在任何编辑器中打开文件/boot/grub/grub.conf,并将参数selinux = 0添加到Grub Boot Loader:
title SE-Linux Test System
root (hd0,0)
kernel /boot/vmlinuz-2.4.20-selinux-XXXXXXXXXX ro root=/dev/hda1 nousb selinux=0
#initrd /boot/initrd-2.4.20-selinux-XXXXXXXXXX.img
重新引导服务器以应用更改.如果您不想重新启动,请运行以下命令:
# setenforce 0
@Ilia Rostovtsev我遇到了同样的问题,禁用SELinux修复它,还有什么其他更好的方法可以在不禁用SELinux的情况下完成它?