我在使用 nginx + php-fpm 服务的 Laravel 时遇到了这个问题,它只是返回一个空白页。nginx、php 和 laravel 都没有记录任何错误。
当使用 CLI 运行 index.php 时,它将返回欢迎页面。
laravel 堆栈未受影响,所有错误报告/显示/日志记录均已打开。
以下是我的 nginx vhost:
server {
listen 801;
server_name _;
root /path/to/laravel/public;
index index.html index.html index.php;
charset utf-8;
gzip on;
gzip_http_version 1.1;
gzip_disable "MSIE [1-6].";
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_comp_level 9;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_read_timeout 180;
# serve static files directly
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
}
location / {
index index.html index.htm index.php; #try static .html file first
##try_files $uri $uri/ /index.php; <<Wrong!! this will break bundles like OneAuth for example
try_files $uri $uri/ /index.php?q=$uri&$args;
}
# catch all
error_page 404 /index.php;
#set client_max_body_size
client_max_body_size 25m;
#set client_body_buffer_size
client_body_buffer_size 128k;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
我的问题是 app/storage 的权限错误。因此,如果您遇到和我一样的错误(空白页),请尝试 chmod 0777 整个 app/storage 文件夹。
sudo chmod -R 0777 app/storage
答案1
OP 表示他的工作解决方案是sudo chmod -R 0777 app/storage
。
虽然它解决了问题,这永远不是解决方案。正确的方法是将组设置为www-data,并赋予其写权限。
chown -R www-data app/storage
chmod -R 0770 app/storage
有关详细说明chmod 777和Linux 网络服务器上的权限,参见这个答案:我的网站文件/文件夹在 Linux 网络服务器上应该具有什么权限?
答案2
尝试将“try_files”参数更改为以下内容:
try_files $uri $uri/ /index.php?$args;
答案3
我的问题是 app/storage 的权限错误。因此,如果您遇到和我一样的错误(空白页),请尝试 chmod 0777 整个 app/storage 文件夹。
sudo chmod -R 0777 app/storage