使用nginx找不到文件存储laravel 404

问题描述 投票:0回答:1

我使用docker和nginx来部署我的laravel web,然后我存储中的文件无法显示404未找到,我已经存储:文件夹laravel中的链接任何人都可以帮助我吗?

我的nginx配置

server {
    listen 443 ssl;
    server_name pmb.arogapopin.ac.id;
    root /var/www/pmb.arogapopin.ac.id/public;

    ssl_certificate /var/www/ssl-certificate/arogapopin.ac.id.pem;
    ssl_certificate_key /var/www/ssl-certificate/arogapopin.ac.id.key;

    error_log  /var/log/nginx/error.log;

    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~* \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /var/www/html/pmb.arogapopin.ac.id/public/$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:8201;
    }

    location ~ /\.ht {
                deny all;
        }
}

server {
    if ($host = pmb.arogapopin.ac.id) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    server_name pmb.arogapopin.ac.id;
    listen 80;
    return 404;
}

我在文件夹 laravel chmod -R 775 和用户组 chown -R www:data www:data 文件夹中创建权限。和 php artisan storage:link ,然后 env 我设置为公共,但上传图像后,图像无法显示 404 未找到,可以帮我修复它吗?

laravel docker nginx-config
1个回答
0
投票

带有 alias 指令的 location /storage 块使 Nginx 能够从 Laravel 存储目录提供文件,确保访问不直接位于 Web 服务器文档根目录中的上传文件。

server {
    listen 443 ssl;
    server_name pmb.arogapopin.ac.id;
    root /var/www/pmb.arogapopin.ac.id/public;

    ssl_certificate /var/www/ssl-certificate/arogapopin.ac.id.pem;
    ssl_certificate_key /var/www/ssl-certificate/arogapopin.ac.id.key;

    error_log  /var/log/nginx/error.log;

    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location /storage {
        alias /var/www/pmb.arogapopin.ac.id/storage/app/public;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~* \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /var/www/pmb.arogapopin.ac.id/public/$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:8201;
    }

    location ~ /\.ht {
        deny all;
    }
}

server {
    if ($host = pmb.arogapopin.ac.id) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    server_name pmb.arogapopin.ac.id;
    listen 80;
    return 404;
}
© www.soinside.com 2019 - 2024. All rights reserved.