我在安装 Apache 时遇到问题,导致我的 PHP 应用程序无法创建日志文件,原因是没有权限当尝试写入 Web 根目录时。
这发生在我的测试服务器上,它是 Virtual Box 内 Ubuntu 16.04 上的 LAMP 堆栈。安装与 apt 一样标准(用户是 www-data,/var/www 是 Web 根目录,由 root 拥有)。
我希望运行的每个项目都在它自己的虚拟主机中,创建如下:
- sudo mkdir -p /var/www/site1.com
- sudo chown -R $USER:$USER /var/www/site1.com
- sudo chmod -R 755 /var/www
当我想要测试时,我将代码 scp(作为 Ubuntu OS 用户)到 /var/www/site 目录(实际上,我有一个同步脚本,只要检测到代码更改就会执行此操作)。
除了应用程序无法创建日志文件之外,一切都正常。
我已经看到了几个答案,包括对所有内容执行 chmod 777 (?!)、将 Ubuntu 用户添加到 www-data 组以及将 www-data 用户添加到 ubuntu 用户的组。
我倾向于将 www-data 用户添加到 Ubuntu 用户组,并授予需要写入的任何内容的 g+w 权限;
这是正确的程序吗?