在浏览器中访问时file_put_contents不起作用

时间:2018-10-30 04:07:19

标签: php apache

我在centOS7.5中使用php5.6和Apache2.4.6
我在/var/www/html

中放了一个php文件。

像这样:

<?php    
echo (__DIR__ . "/test.text");    
file_put_contents(__DIR__ . "/test.text","test text");  

当我通过网络浏览器(谷歌浏览器)访问此文件时,file_put_contents无法正常工作。 但是,当我在控制台中执行此文件时,file_put_contents会起作用。它会制作test.text文件。

这是由于服务器设置引起的问题吗?或某些php函数无法通过浏览器访问?

这是httpd / error_log

[Tue Oct 30 13:35:13.191011 2018] [:error] [pid 15037] [client XX.XXX.XX.XXX:29220] PHP Warning:  
file_put_contents(/var/www/html/test.text): failed to open stream: Permission denied in /var/www/html/fpc2.php on line 3

但是,此文件的许可为777。

1 个答案:

答案 0 :(得分:0)

对。因此,这是一个权限问题。您需要确保运行php代码的“用户”具有写入目录的权限。我不知道向哪个用户授予权限,但是可能是“网络”。试试:

sudo chgrp -R web / var / www / html

然后

sudo chmod -R g + w *