Php 如何修复错误:无法打开laravel.log?
事实上,我在拉威尔是个新手,我正试图创建我的第一个项目。由于某些原因,我一直遇到这个错误(我甚至还没有开始编码) 我已经读到这与权限有关,但是Php 如何修复错误:无法打开laravel.log?,php,laravel,Php,Laravel,事实上,我在拉威尔是个新手,我正试图创建我的第一个项目。由于某些原因,我一直遇到这个错误(我甚至还没有开始编码) 我已经读到这与权限有关,但是chmod-R 775存储根本没有帮助 不要将777用于实时服务器上的目录,但在您自己的计算机上,有时我们需要执行775以上的操作,因为 chmod -R 775 storage 意味着 如果您的Web服务器不是以流浪者身份运行,它将无法写入,因此您有2个选项: chmod -R 777 storage 或者将组更改为您的Web服务器用户,假设它是ww
chmod-R 775存储
根本没有帮助
不要将777用于实时服务器上的目录,但在您自己的计算机上,有时我们需要执行775以上的操作,因为
chmod -R 775 storage
意味着
如果您的Web服务器不是以流浪者身份运行,它将无法写入,因此您有2个选项:
chmod -R 777 storage
或者将组更改为您的Web服务器用户,假设它是www-data
:
chown -R vagrant:www-data storage
要解决此问题,您需要将目录的所有权更改为Web服务器使用的unix用户
config.vm.synced_folder "./app","/var/www/", create:true,
:owner => "vagrant",
:group => "www-data",
:mount_options => ["dmode=775","fmode=664"]
您需要调整
存储
和引导/缓存
的权限
进入您的Laravel项目李>cd
sudo chmod-R 755存储器
sudo chmod-R 755引导/缓存
WEB服务器名称Laravel文件权限
了解更多信息
在撰写本文时,这是针对Laravel 5.4的,切勿将目录设置为777。您应该更改目录所有权。因此,将您当前登录的用户设置为所有者,将webserver用户(www-data,apache,…)设置为组。 您可以尝试以下方法:
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
chmod -R 775 storage
chmod -R 775 bootstrap/cache
然后,要设置目录权限,请尝试以下操作:
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
chmod -R 775 storage
chmod -R 775 bootstrap/cache
更新:
Web服务器用户和组取决于您的Web服务器和操作系统。要了解您的web服务器用户和组是什么,请使用以下命令。对于nginx使用:
ps aux|grep nginx|grep-v grep
对于apache使用:
ps aux | egrep'(apache | httpd)
此解决方案专门针对laravel 5.5
您必须更改对几个文件夹的权限:
chmod-R-777存储/日志
chmod-R-777存储/框架
对于上述文件夹,775或765不适用于我的项目
chmod -R 775 bootstrap/cache
此外,项目文件夹的所有权应如下所示(当前用户):(web服务器用户)我不太想将文件夹权限更改为777。下面是我如何着手解决这个问题的 首先,我更改了在本地机器上运行web服务器的用户(我运行nginx,但原则适用于所有地方): 重新加载页面时,我发现
www-data
就是用户(在环境部分下)。我还发现我正在运行PHP7.1。我继续更改用户:
$> sudo vim /etc/php/7.0/fpm/pool.d/www.conf
#Look for www-data or the following variables: user, group, listen.user, listen.group.
最后,我为文件夹授予了以下权限:
sudo chmod -R 775 ./storage/
现在,我通过使用一个简单的:
ls -al
例如,如果您将服务器和php fpm用户设置为您自己,并且文件夹归root所有,那么您将不断遇到此问题。如果您以root用户身份执行sudo laravel new,则可能会发生这种情况。在这种情况下,请确保在项目上使用递归的chown
命令来更改user:group
设置。在大多数默认情况下,www-data
是服务器和php的主要设置,在这种情况下,需要确保文件夹不超出www-data
的范围
我的项目设置在我的主目录中。在Ubuntu 16.04和Laravel 5.5上。有这个问题,发现了这个问题,解决了这个问题
可以通过禁用Linux来修复此错误 检查是否已启用 芝麻 你试试 setEnforce0试试这个
运行以下命令,您可以在命令开始时添加
sudo
,具体取决于您的系统:
chmod -R 775 storage/framework
chmod -R 775 storage/logs
chmod -R 775 bootstrap/cache
它也可能是SELinux。(Centos,RedHat)
确定终端上SElinux的状态:
$ sestatus
sudo chmod -R 777 storage
如果状态为enabled,则写入命令以禁用SElinux
$ setenforce Permissive
或者您可以执行此命令
$sudo setenforce 0
对于Laravel上下文中的所有Centos 7用户,无需禁用Selinux,只需运行以下命令:
yum install policycoreutils-python -y # might not be necessary, try the below first
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/laravel/storage(/.*)?" # add a new httpd read write content to sellinux for the specific folder, -m for modify
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/laravel/bootstrap/cache(/.*)?" # same as the above for b/cache
restorecon -Rv /var/www/html/ # this command is very important to, it's like a restart to apply the new rules
最后,确保您的主机、IP和虚拟主机都可以正确地进行远程访问
Selinux旨在限制对根用户的访问,因此只能访问必要的内容,至少在一般情况下是这样的,这是额外的安全性,禁用它不是一个好的做法,有很多链接可以学习Selinux,但在这种情况下甚至不需要它。添加到
composer.json
"scripts": {
"post-install-cmd": [
"chgrp -R www-data storage bootstrap/cache",
"chmod -R ug+rwx storage bootstrap/cache"
]
}
对于此错误,请在安装composer后执行以下操作:
异常处理程序中出错:无法打开流或文件“/var/www/laravel/app/storage/logs/laravel.log”:无法打开流:在/var/www/laravel/bootstrap/compiled.php:8423中的权限被拒绝
在终端中使用此命令:
$ sestatus
sudo chmod -R 777 storage
如果使用cmd
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
如果您使用GUI
首先转到项目,右键单击存储并检查属性,然后转到“权限”选项卡
使用下面的代码更改权限
sudo chmod -R 777 storage
那么您的文件属性可能是
然后检查您的设置并执行laravel命令,它将工作:)
chcon -R -t httpd_sys_rw_content_t storage
chcon -R -t httpd_sys_content_t $SITE_PATH
chcon -R -t httpd_sys_rw_content_t $SITE_PATH
$ sudo chmod -R 777 storage
$ sudo service apache2 restart
HTTPDUSER=$(ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1)
sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX bootstrap/cache storage/
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX bootstrap/cache storage/
cd /var/www/html/
sudo chmod -R 777 storage/
sudo chmod -R 777 bootstrap/cache/
php artisan route:clear
php artisan config:clear
php artisan cache:clear
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
user = www-data
group = www-data
user = vagrant
group = vagrant
sudo service php7.x-fpm restart
user nginx nginx;
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
user = nginx
group = nginx
sudo chmod nginx:nginx -R .
chcon -R -t httpd_sys_content_t .
chcon -R -t httpd_sys_rw_content_t .
cd PATH_TO_LARAVEL_PROJECT
sudo chown -R $USER:_www storage
chmod -R 775 storage
sudo chown -R $USER:_www bootstrap/cache
chmod -R 775 bootstrap/cache