我有一个路径,它本质上是一个运行Artisan命令的“钩子”,它接受一些get参数作为参数:
Route::get('hook', function()
{
$param = Input::get('param');
Artisan::call('myCommand', array('param' => $param));
}
myCommand只是在根目录中创建一个名为param的目录和一个hello.txt文件.
我可以使用php artisan myCommand param1运行myCommand,它按预期工作.我也可以使用Artisan的tinker命令并完全运行Artisan :: call().
但是,当我通过访问URL(例如example.com/hook\u0026amp;param=hello)尝试命令时,我的命令不会按预期创建任何内容.如果它也有帮助,我在Laravel Forge上尝试这个.在我的本地开发机器上一切正常.
知道什么是错的吗?
解决方法:
您可以通过设置文件夹的权限
chmod 777 -R /path/to/folder
你绝对不应该做的事情,因为每个人都可以在之后编写并执行此目录中的所有内容
或者,我希望你创建一个新组,让我们称之为用户组:
sudo groupadd usergroup
既然该组存在,请将两个用户添加到其中:
sudo usermod -a -G usergroup
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
现在,只有用户组组的成员才能读取,写入或执行目录中的文件和文件夹.注意chmod和chgrp命令的-R参数:这告诉他们递归到目标目录的每个子目录并修改每个可用的文件和目录.
如果您希望其他人能够读取文件,您可能还希望将770更改为774(775),如果您希望其他人读取和执行文件,则可以更改775等.在用户注销之前,组分配更改将不会生效然后回来.
在你的情况下,你应该明确地将它改为775 ……
标签:php,laravel,permissions,laravel-4
来源: https://codeday.me/bug/20190926/1820638.html