我有一条基本上是" hook"要运行Artisan命令,它接受一些get
参数作为参数:
Route::get('hook', function()
{
$param = Input::get('param');
Artisan::call('myCommand', array('param' => $param));
}
myCommand
只需在根目录中创建一个名为param
和hello.txt
文件的目录。
我可以使用myCommand
运行php artisan myCommand param1
并且按预期工作。我也可以使用Artisan的tinker
命令并完全运行Artisan::call()
。
但是,当我通过访问URL(例如example.com/hook¶m=hello
)尝试命令时,我的命令没有按预期创建任何内容。如果它也有帮助,我会在Laravel Forge上尝试这个。在我当地的开发机器上一切正常。
知道出了什么问题吗?
答案 0 :(得分:4)
您可以通过
设置文件夹的权限chmod 777 -R /path/to/folder
你绝对不应该这样做,因为之后每个人都可以在这个目录中编写和执行所有内容
或者,我希望您创建一个新组,让我们称之为用户组:
sudo groupadd usergroup
现在该组已存在,请将两个用户添加到其中:
sudo usermod -a -G usergroup <your username>
sudo usermod -a -G usergroup www-data
现在剩下的就是设置目录的权限:
sudo chgrp -R usergroup /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory // <<<<<< change this to 775
现在,只有用户组组的成员才能读取,写入或执行目录中的文件和文件夹。请注意-R
和chmod
命令的chgrp
参数:这会告诉他们递归到目标目录的每个子目录并修改每个可用的文件和目录。
如果您希望其他人能够阅读文件,您可能还希望将770更改为774,如果您希望其他人阅读和执行文件,则可能需要更改775等。组分配更改不会生效直到用户退出并重新登录。
在你的情况下,你应该明确地将它改为775 ......
答案 1 :(得分:1)
您需要正确设置目录权限。
sudo chown -R <YOUR_USERNAME>:www-data <THE_DIRECTORY>