#!/bin/sh /etc/rc.common # Copyright (C) 2018-2022 Lienol START=99 CONFIG="kodexplorer" TEMP_PATH="/var/etc/$CONFIG" [ -f /etc/nginx/conf.d/luci.locations ] && { NGINX_CONFIG="/etc/nginx/conf.d/$CONFIG.conf" NGINX_TEMPLATE="nginx.server.conf.template" } || { NGINX_CONFIG="$TEMP_PATH/nginx.conf" NGINX_TEMPLATE="nginx.conf.template" } PHP_CONFIG="$TEMP_PATH/php.ini" PHP_FPM_CONFIG="$TEMP_PATH/php-fpm.conf" PHP_FPM_SOCK="$TEMP_PATH/php-fpm.sock" config_t_get() { local index=0 [ -n "$4" ] && index=$4 local ret=$(uci get $CONFIG.@$1[$index].$2 2>/dev/null) echo ${ret:=$3} } gen_nginx_config() { ipv6=$(config_t_get global ipv6 0) port=$(config_t_get global port) [ "$(config_t_get global https 0)" == "1" ] && { port="$port ssl" ssl_certificate="ssl_certificate $(config_t_get global certificate);" ssl_certificate_key="ssl_certificate_key $(config_t_get global key);" } sed -e "s#|PID|#$TEMP_PATH/nginx.pid#g" \ -e "s#|PORT|#$port#g" \ -e "s#|ssl_certificate|#$ssl_certificate#g" \ -e "s#|ssl_certificate_key|#$ssl_certificate_key#g" \ -e "s#|project_directory|#$project_directory#g" \ -e "s#|SOCK|#$PHP_FPM_SOCK#g" \ -e "s#|upload_max_filesize|#$upload_max_filesize#g" \ -e "s#|temp_path|#$TEMP_PATH/temp#g" \ /etc/$CONFIG/$NGINX_TEMPLATE > $1 [ "$ipv6" = "0" ] && sed -i '/listen \[::\]:/d' $1 } gen_php_config() { sed -e "s#|project_directory|#$project_directory#g" \ -e "s#|open_basedir|#$open_basedir#g" \ -e "s#|memory_limit|#$memory_limit#g" \ -e "s#|upload_max_filesize|#$upload_max_filesize#g" \ /etc/$CONFIG/php.ini.template > $PHP_CONFIG sed -e "s#|PID|#$TEMP_PATH/php-fpm.pid#g" \ -e "s#|ERROR_LOG|#$TEMP_PATH/php-fpm.log#g" \ -e "s#|SOCK|#$PHP_FPM_SOCK#g" \ /etc/$CONFIG/php-fpm.conf.template > $PHP_FPM_CONFIG } start() { ENABLED=$(config_t_get global enable 0) [ "$ENABLED" = "0" ] && return 0 mkdir -p $TEMP_PATH $TEMP_PATH/temp /var/log/nginx /var/lib/nginx memory_limit=$(config_t_get global memory_limit 64M) upload_max_filesize=$(config_t_get global upload_max_filesize 64M) project_directory=$(config_t_get global project_directory) open_basedir=$(config_t_get global open_basedir "/") open_basedir=$(echo $open_basedir | sed "s/ /:/g") gen_php_config /usr/bin/php8-fpm -c $PHP_CONFIG -R -y $PHP_FPM_CONFIG gen_nginx_config $NGINX_CONFIG [ -f /etc/nginx/conf.d/luci.locations ] && /etc/init.d/nginx reload || /usr/sbin/nginx -c $NGINX_CONFIG >/dev/null 2>&1 & } stop() { [ -f /etc/nginx/conf.d/luci.locations ] && (rm -f $NGINX_CONFIG; /etc/init.d/nginx reload) || /usr/sbin/nginx -c $NGINX_CONFIG -s stop >/dev/null 2>&1 [ -f "$TEMP_PATH/php-fpm.pid" ] && kill -2 $(cat $TEMP_PATH/php-fpm.pid) >/dev/null 2>&1 rm -rf $TEMP_PATH $NGINX_CONFIG } restart() { stop start }