我有一个奇怪的问题与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版
任何关于这一点的想法都是赞赏的。
谢谢你,谢谢
1条答案
按热度按时间hivapdat1#
从Symfony Docs找到答案。
由Laravel forge创建的原始Nginx配置有以下位置块:
字符串
正确的位置块配置应如下所示:
型
希望这对别人有帮助!