Laravel — «ремесленник-повозитель» — & GT; mkdir (): в доступе отказано

Я искал несколько часов, но не могу найти решение, хотя там есть похожие проблемы.

Я пытаюсь бежать php artisan tinker на новой установке Laravel с пользователем webmaster (кто является владельцем каталога проекта demo) но я получаю следующую ошибку:

In Configuration.php line 352:
mkdir(): Permission denied

Запуск с подробным флагом:

Трассировка исключения:
Осветить \ Foundation \ Bootstrap \ HandleExceptions-> handleError () в н / д: н / д
mkdir () на /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Configuration.php:352
Psy \ Configuration-> getRuntimeDir () на /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Shell.php:185
Psy \ Shell-> getDefaultCommands () на /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:1211
Symfony \ Component \ Console \ Application-> init () по адресу /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:435
Symfony \ Component \ Console \ Application-> add () в /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Shell.php:134
Psy \ Shell-> add () на /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:421
Symfony \ Component \ Console \ Application-> addCommands () по адресу /media/usb/drive1/websites/demo/vendor/laravel/tinker/src/Console/TinkerCommand.php:54
Laravel \ Tinker \ Console \ TinkerCommand-> handle () в н / д: н / д
call_user_func_array () в /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29
Осветить \ Container \ BoundMethod :: Illuminate \ Container {closure} () в
/ СМИ / USB / drive1 / сайты / демо / продавец / Laravel / рамки / SRC / Осветите / контейнер /
BoundMethod.php: 87
Осветить \ Container \ BoundMethod :: callBoundMethod () по адресу /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31
Осветить \ Container \ BoundMethod :: call () на /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/Container.php:549
Осветить \ Container \ Container-> call () в /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Console/Command.php:183
Осветить \ Console \ Command-> execute () в /media/usb/drive1/websites/demo/vendor/symfony/console/Command/Command.php:252
Symfony \ Component \ Console \ Command \ Command-> run () по адресу /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Console/Command.php:170
Осветить \ Console \ Command-> run () в /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:938
Symfony \ Component \ Console \ Application-> doRunCommand () по адресу /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:240
Symfony \ Component \ Console \ Application-> doRun () по адресу /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:148
Symfony \ Component \ Console \ Application-> run () по адресу /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Console/Application.php:88
Осветить \ Console \ Application-> run () в /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:121
Осветить \ Foundation \ Console \ Kernel-> handle () в / media / usb / drive1 / sites / demo / artisan: 37

Надеюсь, у кого-нибудь есть подсказка для меня. Спасибо!

  • распределение: Raspbian GNU / Linux 8 (Джесси)
  • Веб сервер: Apache / 2.4.25
  • Версия Laravel: 5.5 (последняя)
  • DocumentRoot: /var/www/websites -> /media/usb/drive1/websites/
  • Пользователь Apache: www-data (имеет разрешения в каталоге проекта)

1

Решение

Прошел год с тех пор, как я задал вопрос. Я просто проигнорировал отсутствие использования повозки и продолжил. Но сегодня я, наконец, нашел решение и подумал, что это может быть хорошей идеей.

Среда общего сервера может вызвать эту ошибку. Сброс переменной $this->runtimeDir по строке 352 из файла vendor/psy/psysh/src/Configuration.php говорит о пропущенных разрешениях на создание папки в /run/user/1000/psysh, где 1000 это UID.

Обходной путь должен сказать psysh использовать направление, в котором у действующего пользователя есть доступ для записи. Это можно сделать с помощью runtimeDir опция конфигурации. Все, что вам нужно сделать, это создать файл конфигурации в ~/.config/psysh/config.php или локально как .psysh.php в вашем корне Laravel. Добавьте следующий контент, и вы готовы к работе.

<?php
return [
'runtimeDir' => './.psysh',
];
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]