mirror of
https://github.com/monlor/MIXBOX-ARCHIVE.git
synced 2026-03-13 08:51:34 +00:00
moxbox init
This commit is contained in:
7
apps/httpfile/config/httpfile.uci
Normal file
7
apps/httpfile/config/httpfile.uci
Normal file
@@ -0,0 +1,7 @@
|
||||
service="HttpFile"
|
||||
appname="httpfile"
|
||||
needver="0.0.1"
|
||||
supports="linux_arm,linux_mips,linux_x86_64"
|
||||
newinfo="脚本逻辑错误"
|
||||
appinfo="搭建简单的web文件浏览页面"
|
||||
version="0.0.3"
|
||||
56
apps/httpfile/config/mixbox.conf
Normal file
56
apps/httpfile/config/mixbox.conf
Normal file
@@ -0,0 +1,56 @@
|
||||
#------------------【HttpFile】--------------------
|
||||
httpfile() {
|
||||
|
||||
eval `mbdb export httpfile`
|
||||
source /etc/mixbox/bin/base
|
||||
echo "********* $service ***********"
|
||||
echo "[${appinfo}]"
|
||||
echo "[如需使用ONMP请停止本插件]"
|
||||
[ -z "$(mbdb show entware)" ] && echo "请先安装Entware插件!" && return
|
||||
readsh "启动${appname}服务[1/0] " "enable" "1"
|
||||
if [ "$enable" == '1' ]; then
|
||||
echo "${appname}全部配置: "
|
||||
allinfo=$(mbdb show $appname.web)
|
||||
[ -z "$allinfo" ] && echo "未添加配置!" || echo "$allinfo"
|
||||
read -p "是否要更改${appname}配置?[1/0] " res
|
||||
if [ "$res" == '1' ]; then
|
||||
read -p "添加${appname}配置?[1/0] " res
|
||||
if [ "$res" == '1' ]; then
|
||||
while(true)
|
||||
do
|
||||
read -p "请输入${appname}配置名称: " name
|
||||
read -p "请输入${appname}运行端口号: " port
|
||||
read -p "请输入${appname}访问路径: " path
|
||||
if [ -z "$name" -o -z "${port}" -o -z "$path" ]; then
|
||||
echo "配置不能为空,未添加!"
|
||||
else
|
||||
mbdb set $appname.web.$name="${port},$path"
|
||||
fi
|
||||
echo "已添加配置[$name $path ${port}]"
|
||||
read -p "继续添加配置?[1/0] " res
|
||||
[ "$res" == '0' -o -z "$res" ] && break
|
||||
done
|
||||
fi
|
||||
read -p "删除${appname}配置?[1/0] " res
|
||||
if [ "$res" == '1' ]; then
|
||||
read -p "清空配置再添加?[1/0] " res
|
||||
[ "$res" == '1' ] && mbdb clear $appname.web
|
||||
echo "["$(mbdb keys $appname.web)"]"
|
||||
while(true)
|
||||
do
|
||||
read -p "请输入要删除的配置名: " res
|
||||
[ ! -z "$res" ] && mbdb del $appname.web.$res
|
||||
read -p "继续删除配置?[1/0] " res
|
||||
[ "$res" == '0' -o -z "$res" ] && break
|
||||
done
|
||||
fi
|
||||
fi
|
||||
readsh "请输入${appname}外网访问配置[1/0]" "openport" "1"
|
||||
|
||||
${mbroot}/apps/${appname}/scripts/${appname}.sh restart
|
||||
else
|
||||
${mbroot}/apps/${appname}/scripts/${appname}.sh stop
|
||||
fi
|
||||
|
||||
}
|
||||
#------------------【HttpFile】--------------------
|
||||
165
apps/httpfile/scripts/httpfile.sh
Normal file
165
apps/httpfile/scripts/httpfile.sh
Normal file
@@ -0,0 +1,165 @@
|
||||
#!/bin/sh
|
||||
source /etc/mixbox/bin/base
|
||||
eval `mbdb export httpfile`
|
||||
source /etc/mixbox/apps/entware/scripts/functions.sh
|
||||
|
||||
# port=
|
||||
BIN=/opt/sbin/nginx
|
||||
NGINXCONF=/opt/etc/nginx/nginx.conf
|
||||
CONF=/opt/etc/nginx/vhost/httpfile.conf
|
||||
ports=""
|
||||
|
||||
open_ports() {
|
||||
mbdb get $appname.main.ports | tr ',' '\n' | while read line; do
|
||||
[ -z "${line}" ] && continue
|
||||
open_port "${line}"
|
||||
done
|
||||
}
|
||||
|
||||
set_config() {
|
||||
|
||||
result=$(/opt/bin/opkg list-installed | grep -c "^nginx")
|
||||
[ "$result" == '0' ] && /opt/bin/opkg install nginx
|
||||
logsh "【$service】" "生成nginx配置信息..."
|
||||
#修改nginx配置文件
|
||||
[ ! -x "${mbroot}/apps/${appname}/bin" ] && logsh "【$service】" "nginx未安装!" && end
|
||||
cat > ${mbtmp}/nginx.conf <<-\EOF
|
||||
user root;
|
||||
pid /opt/var/run/nginx.pid;
|
||||
worker_processes auto;
|
||||
worker_rlimit_nofile 65535;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
|
||||
include mime.types;
|
||||
sendfile on;
|
||||
default_type application/octet-stream;
|
||||
keepalive_timeout 65;
|
||||
client_max_body_size 4G;
|
||||
include /opt/etc/nginx/vhost/*.conf;
|
||||
|
||||
}
|
||||
EOF
|
||||
umountsh $NGINXCONF
|
||||
mount --bind ${mbtmp}/nginx.conf $NGINXCONF
|
||||
|
||||
# 生成配置文件
|
||||
logsh "【$service】" "生成${appname}配置文件..."
|
||||
[ ! -d "/opt/etc/nginx/vhost" ] && mkdir -p /opt/etc/nginx/vhost
|
||||
[ -z "`mbdb keys $appname.web`" ] && logsh "【$service】" "未添加${appname}配置!" && end
|
||||
rm -rf ${mbtmp}/${appname}.conf
|
||||
mbdb keys $appname.web | while read line
|
||||
do
|
||||
port=$(mbdb get $appname.web.${line} | cutsh 1)
|
||||
path=$(mbdb get $appname.web.${line} | cutsh 2)
|
||||
cat >> ${mbtmp}/${appname}.conf <<-\EOF
|
||||
server {
|
||||
listen port;
|
||||
server_name httpfile;
|
||||
charset utf-8;
|
||||
location / {
|
||||
root directory;
|
||||
index index.php index.html index.htm;
|
||||
autoindex on;
|
||||
autoindex_exact_size off;
|
||||
autoindex_localtime on;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
sed -i "s/port/${port}/" ${mbtmp}/${appname}.conf
|
||||
sed -i "s#directory#$path#" ${mbtmp}/${appname}.conf
|
||||
logsh "【$service】" "加载${appname}配置:[端口号:${port}, 路径:$path]"
|
||||
ports="${port}s${port},"
|
||||
done
|
||||
mbdb set $appname.main.ports="$(mbdb values $appname.web | cutsh 1 | tr '\n' ',')"
|
||||
rm -rf ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
ln -s ${mbtmp}/${appname}.conf ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
}
|
||||
|
||||
start () {
|
||||
|
||||
result=$(ps | grep nginx | grep -v sysa | grep -v grep | wc -l)
|
||||
if [ "$result" != '0' ] && [ -f "${mbroot}/apps/${appname}/config/${appname}.conf" ];then
|
||||
logsh "【$service】" "${appname}已经在运行!"
|
||||
exit 1
|
||||
fi
|
||||
# result=$(ps | grep entware.sh | grep -v grep | wc -l)
|
||||
# if [ "$result" != '0' ];then
|
||||
# logsh "【$service】" "检测到【Entware】正在运行,现在启用${appname}可能会冲突"
|
||||
# exit 1
|
||||
# fi
|
||||
logsh "【$service】" "正在启动${appname}服务... "
|
||||
# 检查entware
|
||||
result1=$(mbdb show entware)
|
||||
result2=$(ls /opt | grep etc)
|
||||
if [ -z "$result1" ] || [ -z "$result2" ]; then
|
||||
logsh "【$service】" "检测到【Entware】服务未启动或未安装"
|
||||
end
|
||||
else
|
||||
result3=$(echo $PATH | grep opt)
|
||||
[ -z "$result3" ] && export PATH=/opt/bin/:/opt/sbin:$PATH
|
||||
fi
|
||||
|
||||
set_config
|
||||
open_ports
|
||||
write_firewall_start
|
||||
#添加entware识别
|
||||
auto_start_enable
|
||||
|
||||
[ ! -f "/opt/etc/init.d/S80nginx" ] && logsh "【$service】" "未找到启动脚本!" && exit
|
||||
/opt/etc/init.d/S80nginx stop &> /dev/null
|
||||
/opt/etc/init.d/S80nginx start > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
logsh "【$service】" "启动${appname}服务失败!"
|
||||
else
|
||||
logsh "【$service】" "启动${appname}服务完成!"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
stop () {
|
||||
|
||||
logsh "【$service】" "正在停止${appname}服务... "
|
||||
[ "$enable" == '0' ] && destroy
|
||||
close_port
|
||||
remove_firewall_start
|
||||
rm -rf ${mbtmp}/${appname}.conf ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
umountsh $NGINXCONF
|
||||
|
||||
}
|
||||
|
||||
destroy() {
|
||||
#清除entware识别
|
||||
auto_start_disable
|
||||
}
|
||||
|
||||
end() {
|
||||
|
||||
/opt/etc/init.d/S80nginx stop > /dev/null
|
||||
stop && exit 1
|
||||
|
||||
}
|
||||
|
||||
status() {
|
||||
|
||||
result=$(pssh | grep nginx | grep -v sysa | grep -v grep | wc -l)
|
||||
if [ "$result" != '0' ] && [ -f "${mbroot}/apps/${appname}/config/${appname}.conf" ]; then
|
||||
status="运行中|1"
|
||||
else
|
||||
status="未运行|0"
|
||||
fi
|
||||
mbdb set $appname.main.status="$status"
|
||||
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start) start ;;
|
||||
stop) stop ;;
|
||||
restart) stop; start ;;
|
||||
reload) close_port && open_ports ;;
|
||||
status) status ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user