Laravel - “工匠修补匠” - > mkdir():权限被拒绝

时间:2018-01-17 14:17:59

标签: php laravel permissions artisan tinker

我一直在寻找几个小时,但即使遇到类似的问题也无法找到解决方案。

我正在尝试使用用户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

希望有人对我有所暗示。谢谢!

相关信息

  • 发布:Raspbian GNU / Linux 8(jessie)
  • 网络服务器:Apache / 2.4.25
  • Laravel版本:5.5(最新)
  • DocumentRoot /var/www/websites -> /media/usb/drive1/websites/
  • Apache用户www-data(在项目目录中具有权限)

类似报道的问题

1 个答案:

答案 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',
];