Akeneo 7 CE上传媒体时出现Nginx 403错误

h6my8fg2  于 12个月前  发布在  Nginx
关注(0)|答案(1)|浏览(141)

我有一个奇怪的问题与Akeneo CE 7.0.41和上传媒体到服务器(产品图片,头像,PDF的.等)
当上传任何媒体文件时,我从Nginx得到403禁止错误。POST请求被发送到/media路由,在Akeneo文件系统中意味着root/public/media。
这个错误的原因可能与/media没有任何索引文件如index.php或index.html有关。它只有一个名为cache的文件夹。
如果我手动创建index.php文件到media文件夹,而不是403禁止我得到500内部服务器错误(这感觉其实很明显).
我还尝试使用Akeneo REST API将图像上传到一个产品,效果很好。
这是我的Nginx conf(变量由Laravel Forge处理,在服务器上真的没问题):

# FORGE CONFIG (DO NOT REMOVE!)
include forge-conf/{{ SITE }}/before/*;

server {
    listen {{ PORT }};
    listen {{ PORT_V6 }};
    server_name {{ DOMAINS }};
    server_tokens off;
    root {{ PATH }};

    # FORGE SSL (DO NOT REMOVE!)
    # ssl_certificate;
    # ssl_certificate_key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers <hidden>;
    ssl_prefer_server_ciphers off;
    ssl_dhparam /etc/nginx/dhparams.pem;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

    # FORGE CONFIG (DO NOT REMOVE!)
    include forge-conf/{{ SITE }}/server/*;

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

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    location = /media {access_log off; log_not_found off;}

    access_log off;
    error_log  /var/log/nginx/{{ SITE }}-error.log error;

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass {{ PROXY_PASS }};
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

# FORGE CONFIG (DO NOT REMOVE!)
include forge-conf/{{ SITE }}/after/*;

字符串
PHP 8.1版
任何关于这一点的想法都是赞赏的。
谢谢你,谢谢

hivapdat

hivapdat1#

从Symfony Docs找到答案。
由Laravel forge创建的原始Nginx配置有以下位置块:

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

字符串
正确的位置块配置应如下所示:

location / {
    # try to serve file directly, fallback to index.php
    try_files $uri /index.php$is_args$args;
}


希望这对别人有帮助!

相关问题