Я искал несколько часов, но не могу найти решение, хотя там есть похожие проблемы.
Я пытаюсь бежать 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
Надеюсь, у кого-нибудь есть подсказка для меня. Спасибо!
/var/www/websites -> /media/usb/drive1/websites/
www-data
(имеет разрешения в каталоге проекта)Прошел год с тех пор, как я задал вопрос. Я просто проигнорировал отсутствие использования повозки и продолжил. Но сегодня я, наконец, нашел решение и подумал, что это может быть хорошей идеей.
Среда общего сервера может вызвать эту ошибку. Сброс переменной $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',
];
Других решений пока нет …