apache设置php权限的方法:1、授予0777文件本身的权限;2、将所有权更改为Apache用户“www-data”并授予所有者写入权限;3、将用户添加到“www-data”组,然后分组写权限即可。
推荐:《PHP视频教程》
具体问题:
如何给Apache写入主目录的权限?
我的服务器在/ var/www/html我在/var/www/html/fileio_test/io_test.php中有一个php脚本
<?php $logging = <<< LOG This is a test LOG; $testfile = fopen('/home/djameson/test.txt', 'a'); fwrite ($testfile, $logging); fclose($testfile); ?>
当我尝试运行这个脚本时,我得到了
Warning: fopen(/home/djameson/test.txt): failed to open stream: Permission denied in /var/www/html/fileio_test/io_test.php on line 7 Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/html/fileio_test/io_test.php on line 8 Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/fileio_test/io_test.php on line 9
如何让Apache写入我的主目录?服务器在Fedora 20上运行。
解决办法:
由于您的文件位于主目录中,我建议使用以下方法之一。
授予0777文件本身的权限。
chmod 0777 /home/djameson/test.txt
将所有权更改为Apache用户www-data并授予所有者写入权限。
Sudo chown www-data:www-data /home/djameson/test.txt chmod 0744 /home/djameson/test.txt
将您的用户添加到www-data组或反之亦然将www-data用户添加到您的组。然后分组写权限。
Sudo usermod -a -G www-data djameson chmod 0764 /home/djameson/test.txt
注意:我假设Apache用户名和组名分别是www-data和www-data。您必须相应地更改服务器Apache用户名/组名称。