mirror of
https://github.com/monlor/MIXBOX-ARCHIVE.git
synced 2026-03-10 23:41:27 +00:00
moxbox init
This commit is contained in:
8
apps/kodexplorer/config/kodexplorer.uci
Normal file
8
apps/kodexplorer/config/kodexplorer.uci
Normal file
@@ -0,0 +1,8 @@
|
||||
service="KodExplorer"
|
||||
appname="kodexplorer"
|
||||
needver="0.0.1"
|
||||
supports="linux_arm,linux_mips,linux_x86_64"
|
||||
appinfo="可道云,在线文档管理器,需要entware环境"
|
||||
newinfo="修复unzip命令缺失"
|
||||
version="0.0.3"
|
||||
version="0.0.4"
|
||||
26
apps/kodexplorer/config/mixbox.conf
Normal file
26
apps/kodexplorer/config/mixbox.conf
Normal file
@@ -0,0 +1,26 @@
|
||||
#------------------【KodExplorer】--------------------
|
||||
kodexplorer() {
|
||||
|
||||
eval `mbdb export kodexplorer`
|
||||
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
|
||||
read -p "修改${appname}端口号(`mbdb get ${appname}.main.port || echo 81`)?[1/0] " res
|
||||
if [ "$res" == '1' ]; then
|
||||
read -p "请输入${appname}端口号(默认81):" res
|
||||
[ ! -z $res ] && mbdb set $appname.main.port="$res" || mbdb set $appname.main.port=81
|
||||
fi
|
||||
readsh "请输入${appname}管理目录" "path" "$mbdisk"
|
||||
readsh "请输入${appname}外网访问配置[1/0]" "openport" "1"
|
||||
|
||||
${mbroot}/apps/${appname}/scripts/${appname}.sh restart
|
||||
else
|
||||
${mbroot}/apps/${appname}/scripts/${appname}.sh stop
|
||||
fi
|
||||
|
||||
}
|
||||
#------------------【KodExplorer】--------------------
|
||||
1
apps/kodexplorer/config/version.txt
Normal file
1
apps/kodexplorer/config/version.txt
Normal file
@@ -0,0 +1 @@
|
||||
1.4.1
|
||||
229
apps/kodexplorer/scripts/kodexplorer.sh
Normal file
229
apps/kodexplorer/scripts/kodexplorer.sh
Normal file
@@ -0,0 +1,229 @@
|
||||
#!/bin/sh
|
||||
source /etc/mixbox/bin/base
|
||||
eval `mbdb export kodexplorer`
|
||||
source /etc/mixbox/apps/entware/scripts/functions.sh
|
||||
|
||||
# port=81
|
||||
PHPBIN=/opt/bin/spawn-fcgi
|
||||
NGINXBIN=/opt/sbin/nginx
|
||||
NGINXCONF=/opt/etc/nginx/nginx.conf
|
||||
PHPCONF=/opt/etc/php.ini
|
||||
WWW=/opt/share/nginx/html/kodexplorer
|
||||
CONF="/opt/etc/nginx/vhost/kodexplorer.conf"
|
||||
path=$(mbdb get ${appname}.main.path)
|
||||
port=$(mbdb get ${appname}.main.port) || port=81
|
||||
lanip=$(uci get network.lan.ipaddr)
|
||||
opkg_list="php7-cgi php7-mod-curl php7-mod-gd php7-mod-iconv php7-mod-json php7-mod-mbstring php7-mod-opcache php7-mod-session php7-mod-zip nginx spawn-fcgi zoneinfo-core zoneinfo-asia libxml2 unzip"
|
||||
|
||||
|
||||
config_php() {
|
||||
logsh "【$service】" "修改php配置信息..."
|
||||
result=$(/opt/bin/opkg list-installed | grep -c "^php7-cgi")
|
||||
[ "$result" == '0' ] && logsh "【$service】" "php未安装!" && end
|
||||
cp $PHPCONF ${mbtmp}/php.ini
|
||||
sed -i "/doc_root/d" ${mbtmp}/php.ini
|
||||
sed -i "s#.*open_basedir.*#open_basedir = \"$WWW\"#" ${mbtmp}/php.ini
|
||||
sed -i 's/memory_limit = 8M/memory_limit = 20M/' ${mbtmp}/php.ini
|
||||
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 2000M/' ${mbtmp}/php.ini
|
||||
umountsh $PHPCONF
|
||||
mount --bind ${mbtmp}/php.ini $PHPCONF
|
||||
# echo "<?php phpinfo(); ?>" > $WWW/info.php
|
||||
# rm -rf $WWW/index.html
|
||||
}
|
||||
|
||||
config_nginx() {
|
||||
logsh "【$service】" "生成nginx配置信息..."
|
||||
#修改nginx配置文件
|
||||
[ ! -x "$NGINXBIN" ] && 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
|
||||
|
||||
#生成配置文件
|
||||
[ ! -d "/opt/etc/nginx/vhost" ] && mkdir -p /opt/etc/nginx/vhost
|
||||
cat > ${mbtmp}/${appname}.conf <<-\EOF
|
||||
server {
|
||||
listen 81;
|
||||
server_name kodexplorer;
|
||||
|
||||
location / {
|
||||
root /opt/share/nginx/html/kodexplorer;
|
||||
index index.php index.html index.htm;
|
||||
}
|
||||
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html {
|
||||
root html;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
root /opt/share/nginx/html/kodexplorer;
|
||||
fastcgi_pass 127.0.0.1:9009;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
sed -i "s/81/${port}/" ${mbtmp}/${appname}.conf
|
||||
rm -rf /opt/etc/nginx/vhost/${appname}.conf
|
||||
ln -s ${mbtmp}/${appname}.conf /opt/etc/nginx/vhost/${appname}.conf
|
||||
}
|
||||
|
||||
detect_webfiles() {
|
||||
if [ ! -d $WWW/app/kod/ ]; then
|
||||
logsh "【$service】" "未检测到${appname}文件,正在下载"
|
||||
[ ! -d $WWW ] && mkdir $WWW
|
||||
wgetsh $WWW/kodexplorer.zip $mburl/appsbin/kodexplorer.zip
|
||||
[ $? -ne 0 ] && logsh "【$service】" "${appname}文件下载失败" && stop
|
||||
unzip $WWW/kodexplorer.zip -d $WWW
|
||||
rm -rf $WWW/kodexplorer.zip
|
||||
fi
|
||||
}
|
||||
|
||||
detect_opkg() {
|
||||
for i in $opkg_list
|
||||
do
|
||||
result=$(/opt/bin/opkg list-installed | grep -c "^$i")
|
||||
[ "$result" == '0' ] && /opt/bin/opkg install $i
|
||||
done
|
||||
}
|
||||
|
||||
mount_admin_root() {
|
||||
if [ -n "$path" ]; then
|
||||
logsh "【$service】" "挂载${appname}管理目录"
|
||||
if [ -d $WWW/data/User/admin/home ]; then
|
||||
[ ! -d "$path" ] && mkdir -p $path
|
||||
umountsh $WWW/data/User/admin/home
|
||||
mount --bind "$path" $WWW/data/User/admin/home
|
||||
else
|
||||
logsh "【$service】" "检测到${appname}服务未配置,无法挂载管理目录"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
start () {
|
||||
|
||||
result=$(ps | grep -E 'nginx|php-cgi' | grep -v sysa | grep -v grep | wc -l)
|
||||
if [ "$result" != '0' -a -f /opt/etc/nginx/vhost/${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
|
||||
|
||||
detect_opkg
|
||||
|
||||
config_nginx
|
||||
|
||||
config_php
|
||||
|
||||
detect_webfiles
|
||||
|
||||
mount_admin_root
|
||||
|
||||
#添加entware识别
|
||||
auto_start_enable
|
||||
|
||||
open_port
|
||||
write_firewall_start
|
||||
/opt/etc/init.d/S80nginx stop &> /dev/null
|
||||
|
||||
/opt/etc/init.d/S80nginx start > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
logsh "【$service】" "启动nginx服务失败!"
|
||||
fi
|
||||
daemon $PHPBIN -a 127.0.0.1 -p 9009 -C 2 -f /opt/bin/php-cgi > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
logsh "【$service】" "启动php服务失败!"
|
||||
fi
|
||||
logsh "【$service】" "${appname}服务启动完成"
|
||||
logsh "【$service】" "请在浏览器中访问[http://$lanip:${port}]配置"
|
||||
|
||||
}
|
||||
|
||||
stop () {
|
||||
|
||||
logsh "【$service】" "正在停止${appname}服务... "
|
||||
[ "$enable" == '0' ] && destroy
|
||||
result=$(mbdb get mixbox.httpfile.enable)
|
||||
killall php-cgi &> /dev/null
|
||||
# kill -9 $(ps | grep 'nginx' | grep -v sysa | grep -v grep | awk '{print$1}') > /dev/null 2>&1
|
||||
close_port
|
||||
remove_firewall_start
|
||||
#清除关于entware配置
|
||||
logsh "【$service】" "关闭或卸载不会删除opkg的软件包和${appname}的web文件!"
|
||||
umountsh $PHPCONF && rm -rf ${mbtmp}/php.ini
|
||||
umountsh $NGINXCONF && rm -rf ${mbtmp}/nginx.conf
|
||||
rm -rf ${mbtmp}/${appname}.conf /opt/etc/nginx/vhost/${appname}.conf
|
||||
umountsh $WWW/data/User/admin/home
|
||||
|
||||
}
|
||||
|
||||
end() {
|
||||
|
||||
/opt/etc/init.d/S80nginx stop > /dev/null
|
||||
stop && exit 1
|
||||
|
||||
}
|
||||
|
||||
destroy() {
|
||||
#清除entware识别
|
||||
auto_start_disable
|
||||
}
|
||||
|
||||
|
||||
status() {
|
||||
|
||||
result=$(pssh | grep -E 'nginx|php-cgi' | grep -v sysa | grep -v grep | wc -l)
|
||||
if [ "$result" -ge '5' ] && [ -f "/opt/etc/nginx/vhost/${appname}.conf" ]; then
|
||||
status="运行端口号: ${port}, 管理目录: $path|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_port ;;
|
||||
status) status ;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user