artisan 修补匠:mkdir() 权限被拒绝
artisan tinker: mkdir() permission denied
Laravel 版本 5.0.33
> php artisan tinker
[ErrorException]
mkdir(): Permission denied
这是在生产服务器上,我试图以网络用户身份使用 tinker 测试命令。此用户拥有基本路径中的每个目录,因此我不确定在我 运行 artisan tinker.
时尝试创建哪个目录
使用非常详细的 -vvv
,我能够获得堆栈跟踪。
Exception trace:
() at /data1/vhosts/website.com/vendor/psy/psysh/src/Psy/Configuration.php:459
Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n/a
mkdir() at /data1/vhosts/website.com/vendor/psy/psysh/src/Psy/Configuration.php:459
Psy\Configuration->getHistoryFile() at /data1/vhosts/website.com/vendor/psy/psysh/src/Psy/Configuration.php:598
getHistoryFile() 尝试在用户主目录而非应用程序目录中创建文件。此用户的主页设置为 /var/www/html 但它没有对该文件夹的执行权限。
将 .psysh.php 放入具有此内容的 Laravel 项目的根目录中
<?php
return [
'runtimeDir' => './.psysh',
];
更多信息
https://github.com/laravel/tinker/issues/34#issuecomment-357550126
出现此错误是因为您在没有 "dash" 选项的情况下切换用户(猜测使用 su)。
将 su www-data 替换为 su - www-data 一切正常!
或
su - 用户名
其中用户名有ssh登录权限
用户名前的破折号很重要
参考:here
Laravel 版本 5.0.33
> php artisan tinker
[ErrorException]
mkdir(): Permission denied
这是在生产服务器上,我试图以网络用户身份使用 tinker 测试命令。此用户拥有基本路径中的每个目录,因此我不确定在我 运行 artisan tinker.
时尝试创建哪个目录使用非常详细的 -vvv
,我能够获得堆栈跟踪。
Exception trace:
() at /data1/vhosts/website.com/vendor/psy/psysh/src/Psy/Configuration.php:459
Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n/a
mkdir() at /data1/vhosts/website.com/vendor/psy/psysh/src/Psy/Configuration.php:459
Psy\Configuration->getHistoryFile() at /data1/vhosts/website.com/vendor/psy/psysh/src/Psy/Configuration.php:598
getHistoryFile() 尝试在用户主目录而非应用程序目录中创建文件。此用户的主页设置为 /var/www/html 但它没有对该文件夹的执行权限。
将 .psysh.php 放入具有此内容的 Laravel 项目的根目录中
<?php
return [
'runtimeDir' => './.psysh',
];
更多信息 https://github.com/laravel/tinker/issues/34#issuecomment-357550126
出现此错误是因为您在没有 "dash" 选项的情况下切换用户(猜测使用 su)。
将 su www-data 替换为 su - www-data 一切正常!
或
su - 用户名
其中用户名有ssh登录权限
用户名前的破折号很重要
参考:here