У меня есть маршрут, который по сути является «крючком» для запуска команды Artisan, он принимает некоторые параметры get
качестве аргументов:
Route::get('hook', function() { $param = Input::get('param'); Artisan::call('myCommand', array('param' => $param)); }
myCommand
просто создает каталог в корневом каталоге param
и файл hello.txt
.
Я могу запустить myCommand
fine, используя php artisan myCommand param1
и он работает так, как ожидалось. Я также могу использовать команду Artisan::call()
и запустить Artisan::call()
отлично.
Однако, когда я пытаюсь выполнить команду, посетив URL-адрес (например, example.com/hook¶m=hello
), моя команда не создает ничего, как ожидалось. Если это помогает, я пробую это на Laravel Forge. На моей локальной машине dev все работает нормально.
Любая идея, что не так?
Вы можете либо установить разрешения для этой папки на
chmod 777 -R /path/to/folder
что вы абсолютно не должны делать, поскольку каждый может писать и выполнять все в этом каталоге впоследствии
или, что бы я предпочел, вы создаете новую группу, назовем ее usergroup:
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 после …
Вам нужно правильно настроить права доступа к каталогам.
sudo chown -R <YOUR_USERNAME>:www-data <THE_DIRECTORY>