刚刚将我的网站移至我的第一个 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