ade*_*min 7 ubuntu logging laravel-5
我有Ubuntu和Laravel 5框架,我在浏览器中看到了白屏.
当我更改storage/logs目录权限时,它会有所帮助,但由于"每日"日志配置,我必须每天都这样做.
出于明显的安全原因,storage和vendor文件夹的权限应保持775不变.
但是,您的计算机和服务器Apache都需要能够在这些文件夹中写入.例如:当您运行命令时php artisan,您的计算机需要在日志文件中写入storage.
您需要做的就是将文件夹的所有权授予Apache:
sudo chown www-data:www-data /path/to/your/project/vendor
sudo chown www-data:www-data /path/to/your/project/storage
Run Code Online (Sandbox Code Playgroud)
然后,您需要将您的计算机(由它引用username)添加到服务器Apache所属的组.像这样:
sudo usermod -a -G www-data userName
Run Code Online (Sandbox Code Playgroud)
最常见的groupName是www-data,您可能希望将其替换为正确的组.
我得到了同样的错误。通过使用以下命令,我可以解决它。出于某种原因,它与日志文件无关。
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache
Run Code Online (Sandbox Code Playgroud)
ade*_*min -3
简短回答:
sudo chmod -R 777 vendor storage
echo "umask 000" | sudo tee -a /etc/resolv.conf
sudo service apache2 restart
广泛的答案:
当您在 Apache 服务器上启动 Laravel 5 框架并默认启用“每日”选项来创建日志文件时,有时您会因文件权限而面临写入日志文件的禁止。
通常,当您有 php 项目时,所有文件都属于www-data用户,并且当前用户不需要写入日志文件。
对于 Laravel,有两个不同的进程需要写入日志文件: 1)当您在浏览器中执行某些操作时
Apache 服务器(用户);2)当您在命令行中
执行时,Php进程(您的用户) 。www-dataphp artisan something
当然,每次你想使用 artisan 时,你可以执行 sudo -u www-data php artisan your_command (就像这里建议的那样),但这有点烦人。
首先,您需要为 Apache 用户授予供应商和存储目录的权限。最简单的方法(但不是最好的方法)是执行:
sudo chmod -R 777 vendor storage
现在,让我们看看在这两种情况下创建日志文件时会发生什么。
如果最初日志文件storage/logs/laravel-2015-mm-dd.log是通过命令引发的错误创建的
php artisan something(情况 2),则日志文件将具有
`-rw-rw-r-- your_user:your_user`
Run Code Online (Sandbox Code Playgroud)
权限。
如果它是由您的 apache 服务器创建的(情况 1),通常在www-data用户下启动,权限将如下所示:
-rw-r-r-- www-data:www-data
Run Code Online (Sandbox Code Playgroud)
所以,我的建议是更改 apache 新创建的文件的权限。
让我们umask 000向/etc/resolv.conf文件添加行。
echo "umask 000" | sudo tee -a /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
现在,
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
就是这样。请注意,由于可能存在安全风险,
该解决方案仅适用于开发环境。
| 归档时间: |
|
| 查看次数: |
15822 次 |
| 最近记录: |