mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
172 lines
4.3 KiB
Bash
Executable File
172 lines
4.3 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2018-2020 Lienol <lawlienol@gmail.com>
|
|
|
|
START=99
|
|
|
|
CONFIG="kodexplorer"
|
|
|
|
TEMP_PATH="/var/etc/kodexplorer"
|
|
NGINX_CONFIG="$TEMP_PATH/nginx.conf"
|
|
PHP_FPM_CONFIG="$TEMP_PATH/php-fpm.conf"
|
|
PHP_CONFIG="/etc/php.ini"
|
|
PHP_BACKUP_CONFIG="/etc/php.ini.backup"
|
|
|
|
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() {
|
|
port=$(config_t_get global port)
|
|
project_directory=$(config_t_get global project_directory)
|
|
cat <<-EOF > $1
|
|
user root root;
|
|
worker_processes 1;
|
|
pid /var/run/nginx_kodexplorer.pid;
|
|
events {
|
|
worker_connections 1024;
|
|
}
|
|
http {
|
|
include /etc/nginx/mime.types;
|
|
sendfile on;
|
|
keepalive_timeout 65;
|
|
server {
|
|
listen $port;
|
|
listen [::]:$port;
|
|
server_name localhost;
|
|
location / {
|
|
root $project_directory;
|
|
index index.html index.htm index.php;
|
|
}
|
|
error_page 500 502 503 504 /50x.html;
|
|
location = /50x.html {
|
|
root html;
|
|
}
|
|
location ~ \.php(.*)$ {
|
|
root $project_directory;
|
|
try_files \$uri = 404; # PHP 文件不存在返回404
|
|
fastcgi_pass unix:/var/run/php8-fpm.sock; # 通过 Unix 套接字执行 PHP
|
|
fastcgi_index index.php;
|
|
fastcgi_split_path_info ^(.+\.php)(.*)$;
|
|
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; # 修复 Nginx fastcgi 漏洞
|
|
fastcgi_param PATH_INFO \$fastcgi_path_info;
|
|
include /etc/nginx/fastcgi_params;
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
}
|
|
|
|
gen_php_config() {
|
|
storage_device_path=$(config_t_get global storage_device_path)
|
|
memory_limit=$(config_t_get global memory_limit)
|
|
post_max_size=$(config_t_get global post_max_size)
|
|
upload_max_filesize=$(config_t_get global upload_max_filesize)
|
|
cp $PHP_CONFIG $PHP_BACKUP_CONFIG
|
|
cat <<-EOF >$PHP_CONFIG
|
|
[PHP]
|
|
zend.ze1_compatibility_mode = Off
|
|
engine = On
|
|
precision = 12
|
|
y2k_compliance = On
|
|
output_buffering = Off
|
|
zlib.output_compression = Off
|
|
implicit_flush = Off
|
|
unserialize_callback_func =
|
|
serialize_precision = 100
|
|
|
|
open_basedir = $storage_device_path:/tmp/:/proc/:/usr/bin/
|
|
disable_functions =
|
|
disable_classes =
|
|
expose_php = On
|
|
max_execution_time = 30
|
|
max_input_time = 60
|
|
memory_limit = $memory_limit
|
|
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
|
|
|
|
display_errors = On
|
|
display_startup_errors = Off
|
|
log_errors = Off
|
|
log_errors_max_len = 1024
|
|
ignore_repeated_errors = Off
|
|
ignore_repeated_source = Off
|
|
report_memleaks = On
|
|
track_errors = Off
|
|
|
|
variables_order = "EGPCS"
|
|
request_order = "GP"
|
|
register_globals = Off
|
|
register_long_arrays = Off
|
|
register_argc_argv = On
|
|
auto_globals_jit = On
|
|
post_max_size = $post_max_size
|
|
magic_quotes_runtime = Off
|
|
magic_quotes_sybase = Off
|
|
auto_prepend_file =
|
|
auto_append_file =
|
|
default_mimetype = "text/html"
|
|
|
|
;doc_root = "/www"
|
|
user_dir =
|
|
extension_dir = "/usr/lib/php"
|
|
enable_dl = On
|
|
cgi.fix_pathinfo=1
|
|
|
|
file_uploads = On
|
|
upload_tmp_dir = "/tmp"
|
|
upload_max_filesize = $upload_max_filesize
|
|
max_file_uploads = 20
|
|
|
|
allow_url_fopen = On
|
|
allow_url_include = Off
|
|
default_socket_timeout = 60
|
|
EOF
|
|
|
|
cat <<-EOF >$PHP_FPM_CONFIG
|
|
[global]
|
|
pid = /var/run/kodexplorer_php8-fpm.pid
|
|
error_log = /var/log/kodexplorer_php8-fpm.log
|
|
[www]
|
|
user = root
|
|
listen = /var/run/php8-fpm.sock
|
|
listen.mode = 0666
|
|
listen.allowed_clients = 127.0.0.1
|
|
pm = dynamic
|
|
pm.max_children = 5
|
|
pm.start_servers = 2
|
|
pm.min_spare_servers = 1
|
|
pm.max_spare_servers = 3
|
|
chdir = /
|
|
EOF
|
|
}
|
|
|
|
start() {
|
|
ENABLED=$(config_t_get global enable 0)
|
|
[ "$ENABLED" = "0" ] && return 0
|
|
mkdir -p $TEMP_PATH /var/log/nginx /var/lib/nginx
|
|
gen_php_config
|
|
/usr/bin/php-fpm -R -y $PHP_FPM_CONFIG -g "/var/run/php8-fpm.pid"
|
|
gen_nginx_config $NGINX_CONFIG
|
|
/usr/sbin/nginx -c $NGINX_CONFIG >/dev/null 2>&1 &
|
|
}
|
|
|
|
stop() {
|
|
/usr/sbin/nginx -c $NGINX_CONFIG -s stop >/dev/null 2>&1 &
|
|
killall -9 php-fpm >/dev/null 2>&1 &
|
|
rm -f /var/run/kodexplorer_php8-fpm.pid
|
|
rm -f /var/log/kodexplorer_php8-fpm.log
|
|
rm -f /var/run/php8-fpm.sock
|
|
[ -f "$PHP_BACKUP_CONFIG" -a -f "$PHP_CONFIG" ] && {
|
|
rm -f $PHP_CONFIG
|
|
cp $PHP_BACKUP_CONFIG $PHP_CONFIG
|
|
rm -f $PHP_BACKUP_CONFIG
|
|
}
|
|
}
|
|
|
|
restart() {
|
|
stop
|
|
start
|
|
}
|