У меня есть маршрут, который по сути является «крючком» для запуска команды 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>