授权Apache2 + PHP读写目录权限
摘要:您需要将目录的所有者设置为PHP使用的用户(Web服务器用户)。
步骤1:确定PHP用户
创建一个包含以下内容的PHP文件:
<?php echo `whoami`; ?>
将其上传到您的Web服务器。输出应类似于以下内容:
www-data
因此,PHP用户是www-data
。
步骤2:确定目录的所有者
接下来,通过命令行检查Web目录的详细信息:
ls -dl /var/www/example.com/public_html/example-folder
结果应类似于以下内容:
drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder
因此,目录的所有者为exampleuser1
。
步骤3:将目录所有者更改为PHP用户
然后,将Web目录的所有者更改为PHP用户:
sudo chown -R www-data /var/www/example.com/public_html/example-folder
验证Web目录的所有者是否已更改:
ls -dl /var/www/example.com/public_html/example-folder
结果应类似于以下内容:
drwxrwxr-x 2 www-data exampleuser2 4096 Mar 29 16:34 example-folder
因此,的所有者example-folder
已成功更改为PHP用户:www-data
。
做完了!PHP现在应该能够写入该目录。
----------------------------------------------------------
方法2
1使用以下命令找出哪个用户拥有apache2进程
ps aux | grep apache2
您将获得如下几行响应:
www-data 4046 0.0 0.9 205188 8964 ? S 02:51 0:00 /usr/sbin/apache2 -k start
这里的第一栏显示用户名。因此,现在您知道正在尝试写文件的用户,在这种情况下,www-data 您现在可以继续设置PHP脚本尝试写东西的目录的权限:
sudo chown www-data:www-data PhpCanWriteHere sudo chmod 755 PhpCanWriteHere