校长无法创建"/tmp/rector_cached_files/26":mkdir():权限被拒绝



当我运行命令:

vendor/bin/vector process—dry-run

我得到错误:

[ERROR] Failed to create "/tmp/rector_cached_files/26": mkdir(): Permission denied

当前以用户身份运行的Web服务器进程。

如果我以root身份运行脚本,它会运行良好。它需要由用户运行!

我有一个域,这段代码运行良好。我创建了一个名为https://rector.86it.us的新域,并加载了已经在另一个域中工作的完全相同的配置。我用composer做了很多次同样的设置,却一次又一次地得到同样的错误。

新域位于同一台服务器上,配置相同。我运行php -fpm,从php 7.4切换到php 8.0,再切换到php 8.1

我正在运行Apache与PHP 8.1 (ea-php81) (PHP- fpm)

当前的rector.php配置。

<?php
declare(strict_types=1);

use RectorCodeQualityRectorClass_InlineConstructorDefaultToPropertyRector;
use RectorConfigRectorConfig;
use RectorSetValueObjectSetList;
use RectorTypeDeclarationRectorPropertyTypedPropertyFromStrictConstructorRector;
use RectorSetValueObjectLevelSetList;
use RectorCoreValueObjectPhpVersion;

return static function (RectorConfig $rectorConfig): void {

$rectorConfig->skip([
//__DIR__ . '/src/SingleFile.php',
__DIR__ . '/assets',
__DIR__ . '/blocks',
__DIR__ . '/install',
__DIR__ . '/modules/Forums',
__DIR__ . '/modules/Advertising',
__DIR__ . '/modules/Arcade_Tweaks',
__DIR__ . '/modules/Blog_Submit',
__DIR__ . '/modules/Blog_Topics',
__DIR__ . '/modules/Blogs',
__DIR__ . '/modules/Blogs_Top',
__DIR__ . '/modules/Bookmarks',
__DIR__ . '/modules/Cemetery',
__DIR__ . '/modules/cPanel_Login',
__DIR__ . '/modules/CSS_Color_Chart',
__DIR__ . '/modules/CSS_Reference',
__DIR__ . '/modules/Docs',
__DIR__ . '/modules/Donations',
__DIR__ . '/modules/ECalendar',
__DIR__ . '/modules/Evo_UserBlock',
__DIR__ . '/modules/FAQ',
__DIR__ . '/modules/Feedback',
__DIR__ . '/modules/File_Repository',
__DIR__ . '/modules/Google-Site-Map',
__DIR__ . '/modules/Groups',
__DIR__ . '/modules/HTML_Newsletter',
__DIR__ . '/modules/HTML_to_PHP',
__DIR__ . '/modules/Image_Repository',
__DIR__ . '/modules/Link_Us',
__DIR__ . '/modules/Loan_Amortization',
__DIR__ . '/modules/Member_List',
__DIR__ . '/modules/My_Forum_Topics',
__DIR__ . '/modules/Network',
__DIR__ . '/modules/Network_Advertising',
__DIR__ . '/modules/Network_Projects',
__DIR__ . '/modules/NukeSentinel',
__DIR__ . '/modules/Private_Messages',
__DIR__ . '/modules/Profile',
__DIR__ . '/modules/Proof_Of_God',
__DIR__ . '/modules/Recommend_Us',
__DIR__ . '/modules/Reviews',
__DIR__ . '/modules/Search',
__DIR__ . '/modules/Shout_Box',
__DIR__ . '/modules/Spambot_Killer',
__DIR__ . '/modules/Statistics',
__DIR__ . '/modules/Surveys',
__DIR__ . '/modules/Titanium_SandBox',
__DIR__ . '/modules/Web_Links',
__DIR__ . '/modules/Your_Account',


__DIR__ . '/admin',
//__DIR__ . '/includes',
__DIR__ . '/themes',
__DIR__ . '/dev_modules',
__DIR__ . '/cgi-bin',
__DIR__ . '/.well-known',
__DIR__ . '/vendor',

// or use fnmatch
//__DIR__ . '/src/*/Tests/*',
]);

$rectorConfig->paths([
//__DIR__ . '/admin',
//__DIR__ . '/images',
//
//__DIR__ . '/mainfile.php',
//__DIR__ . '/index.php',
//__DIR__ . '/includes/Facebook/FacebookApp.php',
//__DIR__ . '/includes/classes/class.cache.php',
//__DIR__ . '/modules/Blogs/comments.php',
__DIR__ . '/includes/classes/class.identify.php',
//__DIR__ . '/modules/Shout_Box/shout.php',
//__DIR__ . '/modules/Your_Account/public/new_user1.php',
//__DIR__ . '/modules/Forums/posting.php',
//
]);

// register a single rule
$rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class);

$rectorConfig->phpVersion(PhpVersion::PHP_81);
//define sets of rules
$rectorConfig->sets([
LevelSetList::UP_TO_PHP_81,
SetList::CODE_QUALITY,

]);


};
?>

openvendor/rector/rector/config.php68

:

$rectorConfig->cacheDirectory(sys_get_temp_dir() . '/rector_cached_files');

更改为:

$rectorConfig->cacheDirectory(__DIR__ . '/rector_cached_files');

这将解决问题,干杯!

最新更新