![移动到新服务器后出现“权限被拒绝”](https://linux22.com/image/596299/%E7%A7%BB%E5%8A%A8%E5%88%B0%E6%96%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%8E%E5%87%BA%E7%8E%B0%E2%80%9C%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D%E2%80%9D.png)
我们已将我们的网站移至我使用 ISPConfig 3 设置的新服务器(Ubuntu 12.04 LTS)。
问题:
一切运行正常,但是当我尝试将新的日志文件写入现有日志文件时,PHP 给出了“无法打开流:权限被拒绝”的警告。
我对玩弄这些东西还很不放心,因为我还不太熟悉 Linux。目前,我网站的所有文件和文件夹的所有者都是“web1”,属于“client1”组。日志目录的权限与以前相同(在旧主机上)。
我知道 Apache(和 PHP?)以其自己的用户“www-data”运行,因此基本上,我必须告诉我的日志文件和文件夹,可以由该用户读取/写入,对吗?
我(会)尝试的:
在研究过程中,我遇到了这个帖子讨论为文件所有者(web1)和 apache 用户(www-data)创建一个共同组。
我还发现了以下执行此操作的说明:
//Create new group
$ sudo addgroup webdev
//Change the group of your web directory:
$ sudo chgrp -R webdev /var/www/
$ sudo chmod -R g+rw /var/www/
//Set the guid bit on all folders in your web directory:
$ sudo find /var/www -type d -exec chmod +s {} \;
//Add Apache to the webdev group:
$ sudo usermod -a -G webdev www-data
//Add your user to the webdev group:
$ sudo usermod -a -G webdev <user_name>
但我还没有尝试过,因为我不知道
$ sudo find /var/www -type d -exec chmod +s {} \;
是的。这是否是解决我的问题的正确方法?
答案1
并非试图贬低,只是想说明一切。
sudo - run this command as a super user
find - look for something...
/var/www - ...in the /var/www directory...
-type d - ...that is a directory...
-exec chmod +s - ...and executes a chmod (change mode) +s (set the user bit) ...
{} - ...for every directory you find...
\; - and end the command.
现在上面列出的命令看起来不错,如果这就是你想要做的。创建一个与 apache 和其他程序的公共组。希望这能有所帮助