HEX
Server: CentOS WebPanel: Protected by Mod Security
System: Linux sites.annaiservers.com 3.10.0-1160.118.1.el7.x86_64 #1 SMP Wed Apr 24 16:01:50 UTC 2024 x86_64
User: freeval (1012)
PHP: 8.1.10
Disabled: NONE
Upload Files
File: //scripts/cwpsrv_rebuild_user_conf
#!/bin/sh
#
##################################
# CentOS Web Panel SCRIPT's
###################################


# Check for include folders
if [ ! -e "/usr/local/cwpsrv/conf.d/users/" ]; then
    mkdir -p /usr/local/cwpsrv/conf.d/users/
fi

if [ ! -e "/usr/local/cwp/php71/etc/php-fpm.d/users/" ]; then
    mkdir -p /usr/local/cwp/php71/etc/php-fpm.d/users/
fi

# Remove all old to prevent left over user causing server issues
rm -f /usr/local/cwpsrv/conf.d/users/*.conf /usr/local/cwp/php71/etc/php-fpm.d/users/*.conf

# Per user configuration
#MYSQLPWD=`grep password= /root/.my.cnf|awk -F= {'print $2'}|sed -e 's/["'\'']//g'|sed 's/ //g'`
mysql --defaults-extra-file=/root/.my.cnf root_cwp -B -N -s -e "SELECT username FROM user" | while read -r username
do
    # Check if user exist on the linux system
    CHECKPASSWD=`grep "^${username}:" /etc/passwd`

    if [[ ! -z "$CHECKPASSWD" ]];then

        # Check user folder
        if [ ! -e "/usr/local/cwpsrv/var/services/users/$username" ]; then
            ln -s /usr/local/cwpsrv/var/services/users /usr/local/cwpsrv/var/services/users/$username
        fi

        # Create cwpsrv configuration
	   cat > /usr/local/cwpsrv/conf.d/users/$username.conf <<EOF
location /$username {
    root /usr/local/cwpsrv/var/services/users;
    index  index.html index.htm index.php;
    include /usr/local/cwpsrv/conf/mime.types;
    location ~ \.php\$ {
        try_files \$uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)\$;
        fastcgi_read_timeout 600;
        fastcgi_pass    unix:/usr/local/cwp/php71/var/sockets/$username.sock;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME   \$fastcgi_script_name;
        fastcgi_param   PHP_ADMIN_VALUE "open_basedir =/home/$username:/home/jail/$username/./home/$username:/tmp:/var/softtmp:/usr/local/cwpsrv/var/services/users:/usr/local/cwpsrv/var/services/user_files/modules:/usr/local/cwpsrv/var/services/twig:";
        include                 fastcgi_params;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)\$ {
        access_log    off;
        log_not_found    off;
        expires 1M;
    }
}
EOF

# Fix issue with suspended accounts
if [ ! -e "/usr/local/cwp/users/suspended/$username" ];then
    # Create cwp-phpfpm configuration
        cat > /usr/local/cwp/php71/etc/php-fpm.d/users/$username.conf <<EOF
[$username]
listen = /usr/local/cwp/php71/var/sockets/$username.sock
;listen.owner = "$username"
listen.group = "$username"
listen.mode = 0660
user = "$username"
group = "$username"
request_slowlog_timeout = 5s
slowlog = /usr/local/cwp/php71/var/log/php-fpm-slowlog-$username.log
listen.allowed_clients = 127.0.0.1
pm = ondemand
pm.max_children = 25
pm.process_idle_timeout = 15s
;listen.backlog = -1
request_terminate_timeout = 0s
rlimit_files = 131072
rlimit_core = unlimited
catch_workers_output = yes
env[HOSTNAME] = \$HOSTNAME
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
EOF
else
    if [ -e "/usr/local/cwp/php71/etc/php-fpm.d/users/$username.suspended" ];then
        if [ -e "/usr/local/cwp/php71/etc/php-fpm.d/users/$username.conf" ];then
            rm -f /usr/local/cwp/php71/etc/php-fpm.d/users/$username.conf
        fi
    else
        if [ -e "/usr/local/cwp/php71/etc/php-fpm.d/users/$username.conf" ];then
            mv /usr/local/cwp/php71/etc/php-fpm.d/users/$username.conf /usr/local/cwp/php71/etc/php-fpm.d/users/$username.suspended
        fi
    fi
fi

        # Fix conflict usernames
        if [ "$username" = "global" ];then
            setnewUsername="${username}cwp"
            sed -i "s/\[$username\]/[$setnewUsername]/g" /usr/local/cwp/php71/etc/php-fpm.d/users/$username.conf
        fi
    fi

done

# Reload CWP services
service cwpsrv reload
service cwp-phpfpm reload