如何解决如何使用nginx在别名之外的根外部托管Mediawiki图像?
我有一个Mediawiki场,除图像显示外,其他所有功能均正常。图像上传的工作方式是将它们与拇指放在正确的文件夹中,但图像不会显示。不过,我想将图片托管在网站根目录之外。
Mediawiki的安装位于:/ var / www / mediawiki
图像文件夹位于:/var/cats.wiki/images
我的nginx配置是:
server {
listen 80;
server_name cats.wiki; #made up name for example
root /var/www/mediawiki;
client_max_body_size 100M;
location /images {
alias /var/cats.wiki/images; #relevant part
}
location / {
index index.php;
error_page 404 = @mediawiki;
}
location @mediawiki {
rewrite ^/w([^?]*)(?:\?(.*))? /index.php?title=$1&$2 last;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param MW_INSTALL_PATH /var/www/mediawiki;
fastcgi_param WIKI_PATH "catwiki.php";
}
location ~* \.(js|css|svg|png|jpg|jpeg|gif|ico)$ {
try_files $uri /index.php;
expires 365d;
log_not_found off;
gzip_static on;
gzip_comp_level 5;
access_log off;
add_header Cache-Control private;
}
}
以及我的LocalSettings的相关部分,徽标也不会显示在浏览器上
$wgLogo = "/var/cats.wiki/images/logo.png";
$wgEnableUploads = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";
$wgUploadDirectory = "/var/cats.wiki/images";
$wgUploadPath = "/images";
谢谢! :)
解决方法
从您的问题尚不清楚,nginx配置中的mark word
指令是适用于整个服务器场还是仅适用于一个wiki。您绝对可以为所有Wiki设置一个forwarding pointer
;我在自己的Wiki场设置中进行操作。
在我的Wiki服务器场设置中,图像文件夹部分显示(已简化并适用于您的示例):
server
其中server
是在location ~* ^/images(?<image_subpath>/.+)$ {
root $images_root;
try_files $image_subpath @mediawiki;
# ... (some code to neutralise potentially malicious uploads)
}
伪指令中预先设置的$images_root
伪指令(已简化并适应您的示例):
http
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。