Php 无法写入任何内容

Php 无法写入任何内容

刚刚将我的网站移至我的第一个 vps (centos 7)。所以我对 linux 还很陌生。现在我遇到了一个问题:php 无法写入任何内容。无法创建目录、文件,也无法编辑它们。php 以“apache”的身份运行我尝试过的方法:

  • 将所有目录和文件的权限设置为 777
  • 将所有目录和文件更改为“apache”
  • 将所有目录和文件更改为“nobody”

它只是想用 file_put_contents(req.log, $content) 进行编辑。

我该如何修复它?

编辑: ls-l:

root@vps314463 data]# ls -l
total 120
drwxrwxrwx. 2 apache apache  4096 Sep  8 11:12 EMAIL
-rwxrwxrwx. 1 apache apache 30357 Sep  8 10:49 login.log
-rwxrwxrwx. 1 apache apache   510 Sep  8 10:49 loginfail.log
-rwxrwxrwx. 1 apache apache 73268 Sep  8 10:49 req.log
-rwxrwxrwx. 1 apache apache   837 Sep  8 10:49 users copy 3.db
-rwxrwxrwx. 1 apache apache   994 Sep  8 10:49 users.db

编辑:尝试了 Kostas 的答案,我 chmoded 并 chowned public_html/data。然后在 webbrowser 中使用以下代码在 public_html 中打开 test.php:

<?php
mkdir("data/testdir")
?>

什么都没发生,并且出现了这个错误:

[Thu Sep 08 22:39:20.138500 2016] [:error] [pid 24286] [client xx.xx.xxx.xxx:47632] PHP Warning: mkdir(): Permission denied in /var/www/example.com/public_html/usertest.php on line 3

答案1

要在目录内创建目录/文件,apache 用户应该对父目录具有写权限。

chown apache.apache /path/to/data

进而

chmod 755 /path/to/data

相关内容