如何在Laravel 5中正确设置文件权限

为任何Web应用程序设置适当的文件权限是Web开发中的重要部分。 在本文中,你将学会如何给Linux Web服务器上的Laravel程序配置正确的文件权限。

首先,确定运行Web服务器的用户名,以下是一些默认情况。

Nginx       www-data
Debian上的Apache      www-data
Redhat或CentOS上的Apache       apache

要根据具体情况分析,可以使用命令查看对应进程的用户 ps aux | grep nginx

现在,假设Web服务器使用账户www-data运行。 现在递归更改所有文件和目录的用户与组。

$ sudo chown -R www-data:www-data /path/to/laravel

然后,执行以下命令。所有文件设置权限为0644,所有目录设置权限为0755

$ sudo find /path/to/laravel -type f -exec chmod 0644 {} \;
$ sudo find /path/to/laravel -type d -exec chmod 0755 {} \;

要让Laravel能够正常运行,需要给storagecache和其它的目录可读可写权限。执行以下命令:

$ cd /path/to/laravel
$ sudo chgrp -R www-data storage bootstrap/cache
$ sudo chmod -R ug+rwx storage bootstrap/cache

现在,Laravel 就可以以正确的权限安全运行了。

但由于所有文件都属于Web服务器的用户和组,因此在通过FTP/sFTP进行更改网站文件时可能会遇到问题。所以,要把FTP/sFTP的用户加到web服务器的用户组里边去。如下:

$ sudo usermod -a -G www-data ubuntu
Leave a Reply