Установка прав пользователя | Команда Artisan не запускается в коде, но отлично работает в командной строке

У меня есть маршрут, который по сути является «крючком» для запуска команды 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&param=hello ), моя команда не создает ничего, как ожидалось. Если это помогает, я пробую это на Laravel Forge. На моей локальной машине dev все работает нормально.

Любая идея, что не так?

Solutions Collecting From Web of "Установка прав пользователя | Команда Artisan не запускается в коде, но отлично работает в командной строке"

Вы можете либо установить разрешения для этой папки на

 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>