我在centOS7.5中使用php5.6和Apache2.4.6
我在/var/www/html
像这样:
<?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。
答案 0 :(得分:0)
对。因此,这是一个权限问题。您需要确保运行php代码的“用户”具有写入目录的权限。我不知道向哪个用户授予权限,但是可能是“网络”。试试:
sudo chgrp -R web / var / www / html
然后
sudo chmod -R g + w *