5

Laravel 6 在 phpunit.xml 中包含一些额外的配置:

<server name="APP_CONFIG_CACHE" value="bootstrap/cache/config.phpunit.php"/>
<server name="APP_SERVICES_CACHE" value="bootstrap/cache/services.phpunit.php"/>
<server name="APP_PACKAGES_CACHE" value="bootstrap/cache/packages.phpunit.php"/>
<server name="APP_ROUTES_CACHE" value="bootstrap/cache/routes.phpunit.php"/>
<server name="APP_EVENTS_CACHE" value="bootstrap/cache/events.phpunit.php"/>

如果我在 PHPStorm 中运行测试,我会收到以下错误:

在 PackageManifest.php 第 168 行:

bootstrap/cache 目录必须存在且可写。

但是 bootstrap/cache 目录确实存在并且可写。但是,如果我在 phpunit.xml 中注释掉那些新配置,我的测试就会运行而不会出现任何错误。我该如何解决?

我也跑了php artisan cache:clear。没运气。

4

2 回答 2

5

如果您运行的是 Linux,很可能是读/写权限问题,要解决这些问题,请执行以下操作:

在执行以下步骤之前,请确保在您的 Laravel 文件夹之外

假设您user应该是所有者,请键入以下命令:

sudo chown -R user:www-data /path/of/your/laravel/project

然后给用户和网络服务器权限,如下所示:

sudo find /path/of/your/laravel/project -type f -exec chmod 664 {} \;

然后运行:

sudo find /path/of/your/laravel/project -type d -exec chmod 775 {} \;

运行这些命令后,转到您的 Laravel 文件夹并授予网络服务器读取/写入您的bootstrap/cachestorage文件夹的权限:

sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache

它不仅应该解决您的问题,还应该解决您的项目安全问题。

于 2019-09-11T05:50:20.210 回答
1

这是 Laravel 端的一个问题:

https://github.com/laravel/framework/issues/29862

这个 PR解决了这个问题。

将框架版本更新到最新版本(截至本答案时为 6.0.3)解决了该问题。

于 2019-09-12T10:57:10.517 回答