nginx+php-fpm 上的 Laravel 返回空白页

nginx+php-fpm 上的 Laravel 返回空白页

我在使用 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 777Linux 网络服务器上的权限,参见这个答案:我的网站文件/文件夹在 Linux 网络服务器上应该具有什么权限?

答案2

尝试将“try_files”参数更改为以下内容:

try_files $uri $uri/ /index.php?$args;

答案3

我的问题是 app/storage 的权限错误。因此,如果您遇到和我一样的错误(空白页),请尝试 chmod 0777 整个 app/storage 文件夹。

sudo chmod -R 0777 app/storage

相关内容