我一直在寻找几个小时,但即使遇到类似的问题也无法找到解决方案。
我正在尝试使用用户php artisan tinker
(他是项目目录webmaster
的所有者)的新laravel安装上运行demo
但是我收到以下错误:
In Configuration.php line 352:
mkdir(): Permission denied
使用详细标志运行:
异常追踪: 在n / a上照亮\ Foundation \ Bootstrap \ HandleExceptions-> handleError():不适用 mkdir()at /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Configuration.php:352 Psy \ Configuration-> getRuntimeDir()at /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()at /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:435 Symfony \ Component \ Console \ Application-> add()at /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Shell.php:134 Psy \ Shell-> add()at /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()at n / a:n / a call_user_func_array()at /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 Illuminate \ Container \ BoundMethod :: Illuminate \ Container {closure}()at /媒体/ USB / DRIVE1 /网站/演示/供应商/ laravel /框架/ src目录/照亮/集装箱/ BoundMethod.php:87 Illuminate \ Container \ BoundMethod :: callBoundMethod()at /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 Illuminate \ Container \ BoundMethod :: call()at /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/Container.php:549 Illuminate \ Container \ Container-> call()at /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 在/media/usb/drive1/websites/demo/vendor/symfony/console/Command/Command.php:252照亮\ Console \ Command-> execute() Symfony \ Component \ Console \ Command \ Command-> run()at /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Console/Command.php:170 Illuminate \ Console \ Command-> run()at /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:938 Symfony \ Component \ Console \ Application-> doRunCommand()at /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:240 Symfony \ Component \ Console \ Application-> doRun()at /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:148 Symfony \ Component \ Console \ Application-> run()at /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Console/Application.php:88 Illuminate \ Console \ Application-> run()at /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:121 Illuminate \ Foundation \ Console \ Kernel-> handle()at / media / usb / drive1 / websites / demo / artisan:37
希望有人对我有所暗示。谢谢!
/var/www/websites -> /media/usb/drive1/websites/
www-data
(在项目目录中具有权限)答案 0 :(得分:1)
问了问题已经一年了。我只是忽略了缺少修补程序的使用,然后继续。但是今天我终于找到了解决方案,并认为分享是个好主意。
共享服务器环境可能导致此错误。从文件$this->runtimeDir
中转出第352行的变量vendor/psy/psysh/src/Configuration.php
告诉我,缺少在/run/user/1000/psysh
中创建文件夹的权限,其中1000
是uid。
一种解决方法是告诉psysh使用操作用户具有写访问权的方向。可以使用runtimeDir
配置选项来完成。您需要做的就是在Laravel根目录下的~/.config/psysh/config.php
或本地.psysh.php
中创建一个配置文件。添加以下内容,就可以开始了。
<?php
return [
'runtimeDir' => './.psysh',
];