不久前,我决定告别 Windows,开始我的 Linux 之旅。到目前为止,一切都很顺利。但当涉及到权限时,我有点不知所措。
我正在运行一个包含多个 CraftCMS 安装的 LAMP Stack。一切正常,但我无法执行 CraftCMS 的命令行工具。因为我没有所需的权限。
不过,我确实知道这是怎么回事。让我解释一下我的设置:
我的文档根目录位于/home/mike/websites/
由于我的文档根目录位于我的主文件夹中,而不是/var/www/
运行 apache 的用户无权访问我的文档根目录。我通过将用户设为www-data
的所有者来解决这个问题/home/mike/websites/
。我通过运行 来做到这一点 网站此时运行良好,但我自己无权访问。为了解决这个问题,我使用以下命令sudo chown -R www-data /home/mike/websites/
将自己添加到组:www-data
sudo usermod -a -G www-data mike
这就是我们现在的情况。几乎一切都运行正常,我可以正常访问所有内容。
当尝试运行时,./craft
我/home/mike/websites/websiteA/
收到一个错误:bash: ./craft: Permission denied
如果我使用 sudo 权限运行该命令,sudo ./craft
我会收到错误:sudo: ./craft: command not found
我能让它工作的唯一方法是使用sudo php ./craft
。但这有点乏味。
不过我知道为什么:当我在控制台中输入 php 命令时,它将由我的用户执行。这可能没有该文件夹的 Php 权限。
现在,我该如何解决这个问题?或者我应该将文档根目录移动到/var/www/
什么才是正确的方法?
ls -l craft 输出:
-rwxrwxr-x 1 www-data www-data 577 apr 30 11:02 craft