https://t.me/RX1948
Server : Apache
System : Linux s1230 5.15.0-139-generic #149~20.04.1 SMP Tue Jul 14 11:21:49 UTC 2026 x86_64
User : p141464 ( 418825)
PHP Version : 7.4.33.12
Disable Function : NONE
Directory :  /usr/local/php/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/local/php/scripts/php-fpm
#!/bin/bash

PACCOUNT=${SVCNAME//fpm_/}

if [[ ! ${PACCOUNT} =~ ^p[0-9]+$ ]]; then
    echo "missing parameters"
    exit 1
fi

opcache_path="/home/www/${PACCOUNT}/usr/local/php/extensions/opcache.so"
if [ -f "${opcache_path}" ]; then
    sed -i "s|^zend_extension.*opcache.*$|zend_extension = \${PHP_EXTENSIONS_DIR}/opcache.so|" "/etc/php/fpm/${PACCOUNT}/php.ini"
else
    sed -i "/^zend_extension.*opcache.*$/d" "/etc/php/fpm/${PACCOUNT}/php.ini"
fi

mkdir -p "/home/www/${PACCOUNT}/etc/php-fpm/"
cp "/etc/php/fpm/${PACCOUNT}/"{php.ini,php_version,opcache_blacklisted_files} "/home/www/${PACCOUNT}/etc/php-fpm/"

if [[ ! -e "/home/www/${PACCOUNT}/etc/php-fpm/READ_BEFORE_CHANGING_INI_FILE.txt" ]]; then
    cat > "/home/www/${PACCOUNT}/etc/php-fpm/READ_BEFORE_CHANGING_INI_FILE.txt" <<EOF
# Please edit /etc/php/php.ini not /etc/php-fpm/php.ini
# Individual configurations can only be applied via /etc/php/php.ini and will be automatically merged into the /etc/php-fpm/php.ini
EOF
fi

# prepend defaults.ini if available
if [ -f "/home/www/${PACCOUNT}/usr/local/php/usr/etc/defaults.ini" ]; then
    tmp_ini="$(mktemp /tmp/php.XXXXXXXXXX.ini)"
    cat "/home/www/${PACCOUNT}/usr/local/php/usr/etc/defaults.ini" "/home/www/${PACCOUNT}/etc/php-fpm/php.ini" > "${tmp_ini}" && \
    mv "${tmp_ini}" "/home/www/${PACCOUNT}/etc/php-fpm/php.ini"
fi

echo "extension_dir = /usr/local/php/extensions" >> "/home/www/${PACCOUNT}/etc/php-fpm/php.ini"

chmod 644 "/home/www/${PACCOUNT}/etc/php-fpm/php.ini"
chown -R 1000:1000 "/home/www/${PACCOUNT}/etc/php-fpm/"
setfacl -bnR "/home/www/${PACCOUNT}/etc/php-fpm/"

echo "opcache.blacklist_filename = /etc/php-fpm/opcache_blacklisted_files" >> "/home/www/${PACCOUNT}/etc/php-fpm/php.ini"

# set `session.save_path` to `/tmp` if not set previously
sed -i "s|^session.save_path[ =]*$|session.save_path = /tmp|g" "/home/www/${PACCOUNT}/etc/php-fpm/php.ini"

max_children=$(grep "pm.max_children = " "/etc/php/fpm/${PACCOUNT}/fpm.conf" | awk 'NR==1{print $3}')
uuid=$(uuidgen)

if [[ -f "/etc/php/fpm/${PACCOUNT}/fpm-project-conf.inc" ]]; then
    custom_project_fpm=$(cat "/etc/php/fpm/${PACCOUNT}/fpm-project-conf.inc" | sed 's/^/    /')
fi

if [[ -f "/etc/php/fpm/${PACCOUNT}/fpm-global-conf.inc" ]]; then
    custom_global_fpm=$(cat "/etc/php/fpm/${PACCOUNT}/fpm-global-conf.inc" | sed 's/^/    /')
fi

cat > "/home/www/${PACCOUNT}/etc/php-fpm/fpm.conf" <<EOF
pid = /tmp/.fpm_${PACCOUNT}.pid
[global]
    error_log = /tmp/fpm-process.log
    log_level = notice
    emergency_restart_threshold = 5
    emergency_restart_interval = 1m
    process_control_timeout = 10
    daemonize = yes
${custom_global_fpm}

[${PACCOUNT}]
    prefix = none
    listen = /tmp/.fpm_${uuid}.sock
    listen.mode = 0666

    pm = ondemand
    pm.max_children = \${FPM_MAX_CHILDREN}
    pm.max_requests = 1024
    pm.status_path = /mon_status
    ping.path = /mon_ping

    request_terminate_timeout = 0
    request_slowlog_timeout = 0
    catch_workers_output = no

    env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/php/usr/bin
    env[OPENSSL_CONF] = /etc/ssl/openssl.cnf
    env[MAGICK_C0DER_MODULE_PATH] = \${MAGICK_C0DER_MODULE_PATH}
    env[LO_PATH] = \${LO_PATH}
    env[GCONV_PATH] = \${GCONV_PATH}
${custom_project_fpm}
EOF

pkill -9 -u "${PACCOUNT}" -f "php-fpm: "

rm -f "/home/www/${PACCOUNT}/tmp/.fpm_"*.sock

ln -fs "/home/www/${PACCOUNT}/tmp/.fpm_${PACCOUNT}.pid" "/var/run/fpm_${PACCOUNT}.pid"
ln -fs "/home/www/${PACCOUNT}/tmp/.fpm_${uuid}.sock" "/var/run/fpm_${PACCOUNT}.sock"
ln -fs "/home/www/${PACCOUNT}/tmp/.fpm_${uuid}.sock" "/var/run/fpm_${PACCOUNT}_control.sock"

FPMLOG="/home/www/${PACCOUNT}/tmp/fpm-process.log"

if [ -L "${FPMLOG}" ]; then
    rm -f "${FPMLOG}"
elif [ -f "${FPMLOG}" ]; then
    log_lines=$(grep -c "^" "${FPMLOG}")
    if [[ ${log_lines:-0} -gt 1200 ]]; then
        rm -f "${FPMLOG}.new"
        tail -n 1000 "${FPMLOG}" > "${FPMLOG}.new"
        mv "${FPMLOG}.new" "${FPMLOG}"
    fi
fi

touch "${FPMLOG}"
chown -h "${PACCOUNT}:users" "${FPMLOG}"

export FPM_MAX_CHILDREN=${max_children:=4}

exec /usr/bin/chroot --userspec "${PACCOUNT}:users" "/home/www/${PACCOUNT}" \
    /usr/local/php/sbin/php-fpm -y /etc/php-fpm/fpm.conf \
    -c /etc/php-fpm/php.ini

https://t.me/RX1948 - 2025