相关疑难解决方法(0)

文件无法在追加模式下打开:无法打开流:权限被拒绝 laradock

我正在按照本地机器上 Laradock 的官方文档设置 laradock(多个项目的设置)。

安装后,我通过工作区容器 bash 安装了 laravel。我确实在nginx/sites/目录和文件中为应用程序配置了配置/etc/hosts文件。

在访问开发网址时,我收到以下错误消息:

流或文件“/var/www/laravel-api/storage/logs/laravel.log”无法在追加模式下打开:无法打开流:权限被拒绝

laravel docker dockerfile docker-compose laradock

7
推荐指数
4
解决办法
5万
查看次数

Laravel适当的权限

我只是试图将我的Laravel项目更改为在Nginx而不是Apache上运行,并且无法获得正确的权限.真的不知道下一步该尝试什么.目前他们在这里: 在此输入图像描述

我甚至将777权限授予了存储文件夹,但没有任何作用.我在博客上有一个管理面板,总是不断投掷

ErrorException in File.php line 190:
chmod(): Operation not permitted
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助.

我使用的是Nginx,PHP 7.0,MySQL.该网站使用Laravel框架编写.

nginx laravel php-7

6
推荐指数
2
解决办法
7375
查看次数

如何一劳永逸地设置laravel文件权限

我遵循了这个赞成的答案并执行了以下操作:

sudo chown -R my-user:www-data /var/www/domain.com/
sudo find /var/www/domain.com/ -type f -exec chmod 664 {} \;
sudo find /var/www/domain.com/ -type d -exec chmod 775 {} \;
sudo chgrp -R www-data /var/www/domain.com/storage /var/www/domain.com/bootstrap/cache
sudo chmod -R ug+rwx /var/www/domain.com/storage /var/www/domain.com/bootstrap/cache
Run Code Online (Sandbox Code Playgroud)

一切正常,但是每当一个目录(在存储目录中)由 my-user 而不是 www-data 用户创建时,网络服务器就无法写入它,反之亦然。除非我在创建目录后重新运行这些命令。

注意:有时我使用 my-user 创建目录运行命令,有时使用 www-data 用户创建目录。(在存储目录中)。

此外,my-user 已经在 www-data 组中。

如何避免权限错误?无需再次运行所有这些命令。

php file-permissions nginx laravel laravel-7

6
推荐指数
1
解决办法
3665
查看次数

我为什么要继续运行artisan serve命令来保持服务器正常工作?

我正在学习laravel,并且在开始时我已经执行了命令

php artisan serve
Run Code Online (Sandbox Code Playgroud)

并保持我的终端窗口打开,以便我可以保持服务器运行,但后来我想使用我的应用程序,就像在正常的PHP应用程序上工作一样,所以我创建了一个指向我的laravel应用程序"public"文件夹的虚拟主机.

这是问题所在:

我仍然需要运行"php artisan serve"并打开我的虚拟服务器URL

http://brk.localhost:8000
Run Code Online (Sandbox Code Playgroud)

然后关闭终端,所有这一切之前,我可以正常打开此链接而不定义端口号8000.如果我离开我的电脑并返回继续工作,我发现我无法访问它,除非我做整个过程再次.如果我对任何应用程序视图进行了修改,我会遇到同样的问题.

我错过了什么?

php ubuntu frameworks laravel artisan

5
推荐指数
2
解决办法
6636
查看次数

Laravel 6 测试期间出现“引导程序/缓存目录必须存在且可写”错误

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"/>
Run Code Online (Sandbox Code Playgroud)

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

在 PackageManifest.php 第 168 行:

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

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

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

phpunit laravel laravel-6

5
推荐指数
2
解决办法
4154
查看次数

新的 Laravel 8 安装 500 服务器错误,没有 Laravel 日志或 Apache 日志

这几天我一直在为这个问题揪心。

我有一个 Laravel Web 应用程序,我正在尝试将其部署到我的网络服务器。我几周前开始制作该应用程序,并从最新稳定版本的全新 Laravel 安装开始。

当我第一次尝试通过 Composer 安装 Laravel 时,它告诉我我的 PHP 版本已经过时。我需要 7.3 或更高版本并安装了 7.2。我继续按照本指南安装 php 7.4。

起初,我在 Apache 中收到默认的 503 服务不可用错误,我能够将其确定为另一个域虚拟主机上的 ProxyPass 错误。当我检查 Apache 错误日志时,这已显示在其中。

现在,我只是禁用了该网站,因为它已经有一段时间没有使用了。

这样做后,我现在得到一个样式为“500 | 服务器错误”的屏幕,它与 Laravel 默认错误代码屏幕相匹配。但是,storage/logs/laravel.log当我去检查时没有新的错误。如果我尝试运行 artisan 命令,因为php artisan migrate日志确实将这些错误的输出正确写入文件。所以根本无法写入日志并不是权限错误。

就目前情况而言,我已经在我的网络服务器上安装了以下内容。

  • 拉拉维尔 8.12
  • PHP 7.4.13(命令行)
  • 阿帕奇2.4.29

到目前为止我已经尝试过...

  • 文件.env已成功创建并具有正确的权限。(确实如此)
  • 调试已启用(确实如此)
  • 正如我在此服务器上安装的其他 Laravel 所做的那样,我确保文件权限设置正确。(他们是)
  • 我检查了我的虚拟主机文件(附在下面),它是我的其他 Laravel 站点虚拟主机之一的副本,其中相关信息已更改。我在此服务器上托管的其他 Laravel 站点(另外 2 个项目)运行正常。
  • 我确保Laravel 所需的所有 php 模块均已安装且是最新的。(据我所知)
  • 手动将调试设置为trueinconfig/app.php并重新加载配置缓存php artisan config:cache …

php apache laravel laravel-8

5
推荐指数
1
解决办法
1万
查看次数

Laravel 500 错误没有日志

首先,根据计算器,什么是错与权限发生此问题bootstrap/cachestorage目录。我尝试了几乎所有的建议,但都没有运气。

我很高兴在我的旧笔记本电脑上使用 Xubuntu 16.04,开发了一个项目。使用docker-compose建立开发环境。昨天我买了全新的 PC,安装了 Kubuntu 18.04,安装了 docker 以及我需要工作的一切。

克隆库,然composer installdocker-compose up,然后php artisan migratephp artisan storage:link。但是当我尝试在浏览器中打开网站时,我收到 500 错误,并带有空正文响应。

APP_DEBUG 设置为 true。

6 小时后,我来到这里,结果几乎为零。尝试了在这里和论坛上找到的数十种解决方案(仅示例)。

我什至做了一个小实验:从我的旧笔记本电脑中删除项目目录,从头开始克隆它,安装所需的一切并且它工作正常。没有任何权限问题。

更让我失望的是:docker 容器中没有日志,laravel 目录中没有日志,什么都没有。

请帮忙!怎么了?也许是库本图?也许是 18.04?也许它是较新的docker版本?

PS 现在bootstrap/cachestorage目录由拥有alex:alex并拥有 775 权限。和我的笔记本电脑完全一样。

php ubuntu laravel docker

4
推荐指数
1
解决办法
4453
查看次数

Heroku和Laravel护照

我尝试在heroku上安装我的应用程序。该应用程序是带有“护照”进行身份验证的php-laravel应用程序。在我的本地计算机(mac os)上一切运行正常。

当我尝试对邮递员进行简单的“发布”时,出现以下错误:

2018-03-17T17:05:22.059708 + 00:00 app [web.1]:[2018年3月17日17:05:22 UTC] [2018-03-17 17:05:22]生产。错误:密钥路径“ file:///app/storage/oauth-private.key”不存在或不可读{“ exception”:“ [object](LogicException(code:0):关键路径\” file:/// app / storage / oauth-private.key \“不存在,或在/app/vendor/league/oauth2-server/src/CryptKey.php:45)处不可读”] []

要设置护照,我用生成了密钥:

PHP的工匠护照:安装

我在heroku的数据库中看到了密钥。因此该命令正常运行。

那么这是什么错误呢?

我也尝试过重新生成密钥,以停止并重新启动应用程序。没有成功。

感谢您的建议。谢谢

多米尼克

编辑:实际上,密钥文件不是在文件夹app / storage中生成的,这就是为什么出现此错误的原因。但是为什么不生成这些文件?

heroku laravel laravel-passport

2
推荐指数
1
解决办法
1709
查看次数

Laravel sail up 抛出权限被拒绝错误

我使用的是Ubuntu 22.04以及最新版本的Docker Desktop (4.11.1)Laravel Framework 9.26.1

我尝试按照https://laravel.com/docs/9.x#getting-started-on-linux中列出的步骤创建一个新的 Laravel 项目。

当我运行时,./vendor/bin/sail up终端没有显示任何错误。但是当我尝试访问 http://localhost/ Laravel 时显示此UnexpectedValueException

The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log: The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log: The stream or file "/var/www/html/storage/logs/laravel.log" …
Run Code Online (Sandbox Code Playgroud)

php laravel docker-compose laravel-sail

2
推荐指数
1
解决办法
8073
查看次数

EC2用户访问或文件访问有问题吗?

尝试调用CLI命令时,使用EC2实例时遇到了一些问题。我正在使用Laravel,但我不能完全确定这是Laravel问题还是EC2。

当我将ssh放入EC2实例时,我运行以下laravel命令来迁移数据库:

php artisan migrate

我得到以下错误:

PHP致命错误:无法打开消息“流或文件“ /var/app/current/storage/logs/laravel.log”的未捕获异常'UnexpectedValueException':/ var / app中无法打开流:权限被拒绝/current/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107

然后我运行sudo php artisan migrate并得到一个完全不同的错误:

[PDOException] SQLSTATE [HY000] [2002]没有这样的文件或目录

然后我php artisan migrate再次运行,一切都按预期工作!

任何人都知道是什么导致了这种行为,或者我怎么可能会发现错误?

注意:EC2是运行PHP 5.5的64位Amazon Linux 2016.03 v2.1.4

linux amazon-ec2 laravel-5

1
推荐指数
1
解决办法
911
查看次数

php artisan key:generate --force-仍然不写入.env

我正在创建一个脚本来启动我的Laravel 5.8项目

#Install dependencies
composer self-update
composer install

# create .env base on .env.example
cat .env.example > .env

#permission
chmod -R 777 .env

#create the key
php artisan key:generate --force

cat .env

#set permission
chmod -R 777 bootstrap/ vendor/ storage/ public/

sleep 1

#clear cache
php artisan config:cache
php artisan cache:clear
composer dump-autoload
php artisan clear-compiled

php artisan key:generate

python -mwebbrowser http://127.0.0.1:8000
php artisan serve
Run Code Online (Sandbox Code Playgroud)

这条线似乎不起作用。

php artisan key:generate --force
Run Code Online (Sandbox Code Playgroud)

看看我的.env

 ??  bheng  cat .env                                                                             
APP_ENV=local                                                                                  
APP_URL=http://bheng.test/                                                                     
APP_DEBUG=true                                                                                 
APP_KEY=***                                                                                    
CODE=### …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 artisan laravel-5.8

-3
推荐指数
1
解决办法
270
查看次数