背景:switch上最新的安装软件 DBI支持从http安装,使用群晖搭建一个简单的http服务器来发布给DBI
环境:switch 14.0.2 + DBI + 群晖
解法:
方式一(建议),群晖docke+ngnix(群晖本身的nginx不好配置)
方案二,群晖直接启动python simple.http
方案一:docker方式
1.在群晖中打开docker控制台,下载ngnix镜像
2.配置端口和文件夹映射
3.启动容器,修改配置文件
容器启动后会自动生成配置文件,修改配置文件,指定游戏安装目录:
完整配置文件:
server {
listen 80 default_server;
listen 443 ssl;
root /config/www;
index index.html index.htm index.php;
server_name _;
charset utf-8;
ssl_certificate /config/keys/cert.crt;
ssl_certificate_key /config/keys/cert.key;
client_max_body_size 0;
location / {
root html;
index index.html index.htm;
}
location /install/ {
allow all;
autoindex on; #打开目录浏览功能
autoindex_format html; #以html风格将目录展示在浏览器中
autoindex_exact_size off; #默认为on,显示出文件的确切大小,单位是bytes
#显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on;
}
location ~ ^(.+\.php)(.*)$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
}
4.保存配置文件,重新启动容器,看看效果
4.在switch上,修改DBI配置文件(/switch/dbi/dbi/conf),打开后发现homeserver
http路径修改为
http://IP地址:8000/install/
4.1 打开DBI选择Home Server
4.2 选择任意NSP或者XCI文件
注意:如果你是SX系统,只想拷贝XCI文件到SD卡,可以按+ 键选择Copy,然后浏览到SD卡/SXOS/SCI 按+选择粘贴
4.2 按A或者多选安装,建议安装到SD卡:
安装能显示进度或者百分比
安装完成按B返回
方案二:python直接运行方式
1.安装python3,商店直装,略
2.安装setuptool
wget --no-check-certificate https://files.pythonhosted.org/packages/4a/25/ec29a23ef38b9456f9965c57a9e1221e6c246d87abbf2a31158799bca201/setuptools-62.3.2.tar.gz
tar -zxvf setuptools-62.3.2.tar.gz
cd setuptools-62.3.2
python3 setup.py build
python3 setup.py install
3.安装pip
wget --no-check-certificate https://files.pythonhosted.org/packages/4b/b6/0fa7aa968a9fa4ef63a51b3ff0644e59f49dcd7235b3fd6cceb23f202e08/pip-22.1.2.tar.gz
tar -zxvf pip-22.1.2.tar.gz
cd pip-22.1.2
python3 setup.py build
python3 setup.py install
4.启动网页服务
python3 -c "from http.server import test, SimpleHTTPRequestHandler as RH; RH.extensions_map={k:v+';charset=UTF-8' for k,v in RH.extensions_map.items()}; test(RH,port=9999)"
简单版,中文会乱码
nohup python -m SimpleHTTPServer 8000 &
5.创建任务计划,开机自启动
killall python3
cd /volume3/VM_3.1T/baidusync/switch
#cd /volume4/RDM_12T/02.Games/NS
nohup python3 -c "from http.server import test, SimpleHTTPRequestHandler as RH; RH.extensions_map={k:v+';charset=UTF-8' for k,v in RH.extensions_map.items()}; test(RH,port=8000)" &