| Server IP : 146.190.157.162 / Your IP : 216.73.217.6 Web Server : Apache System : Linux ubuntu-s-2vcpu-4gb-amd-sfo3-01-KIT-DIGITAL 6.5.0-44-generic #44-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:10:09 UTC 2024 x86_64 User : businessweek ( 639) PHP Version : 8.2.10-2ubuntu2.2 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_signal,pcntl_signal_dispatch,pcntl_getpriority,pcntl_setpriority,dl,putenv,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/wordpress-manager-v2/scripts/ |
Upload File : |
#!/bin/bash
# Verificar que se haya proporcionado un argumento (nombre del usuario/carpeta)
if [[ -z "$1" ]]; then
echo "Uso: $0 <nombre_de_usuario>"
exit 1
fi
# Nombre del usuario y carpeta
nombre="$1"
dir="/var/www/html/$nombre"
conf_file="/etc/apache2/sites-available/$nombre.conf"
ssl_conf_file="/etc/apache2/sites-available/$nombre-le-ssl.conf"
# Verificar si la carpeta existe
if [[ ! -d "$dir" ]]; then
echo "La carpeta '$dir' no existe."
exit 1
fi
# Verificar si el usuario ya existe
if id "$nombre" &>/dev/null; then
echo "El usuario '$nombre' ya existe."
if [[ ! -f "$dir/.bashrc" ]]; then
echo "Copiando archivos de /etc/skel a $dir"
sudo cp -r /etc/skel/. "$dir"
sudo chown -R "$nombre:$nombre" "$dir"
fi
else
echo "Creando usuario y grupo: $nombre"
sudo useradd -r -d "$dir" -s /usr/sbin/nologin "$nombre"
echo "Copiando archivos de /etc/skel a $dir"
sudo cp -r /etc/skel/. "$dir"
sudo chown -R "$nombre:$nombre" "$dir"
fi
echo "Llamando a permissionsDisable.sh para el usuario $nombre"
/bin/bash /var/www/html/wordpress-manager-v2/scripts/permissionsDisable.sh "$nombre"
# Crear (o actualizar) el pool de PHP-FPM para este sitio
echo "Creando pool de PHP-FPM para $nombre"
pool_file="/etc/php/8.2/fpm/pool.d/$nombre.conf"
sudo tee "$pool_file" > /dev/null << EOF
[$nombre]
user = $nombre
group = $nombre
listen = /run/php/php8.2-fpm-$nombre.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = ondemand
pm.max_children = 3
pm.process_idle_timeout = 30s
pm.max_requests = 500
php_admin_value[open_basedir] = $dir:/tmp
EOF
echo "Recargando PHP-FPM..."
sudo systemctl reload php8.2-fpm
# Función para agregar configuraciones a un archivo de Apache
agregar_configuraciones() {
local archivo="$1"
if [[ -f "$archivo" ]]; then
echo "Verificando configuraciones en $archivo"
error_log_line="ErrorLog /var/log/apache2/$nombre-error.log"
custom_log_line="CustomLog /var/log/apache2/$nombre-access.log combined"
# Reemplazar o agregar líneas de logs
if grep -q "ErrorLog" "$archivo"; then
echo "Reemplazando línea de ErrorLog"
sudo sed -i "s|ErrorLog .*|$error_log_line|" "$archivo"
else
echo "Agregando línea: $error_log_line"
sudo sed -i "/<\/VirtualHost>/i \\\t$error_log_line" "$archivo"
fi
if grep -q "CustomLog" "$archivo"; then
echo "Reemplazando línea de CustomLog"
sudo sed -i "s|CustomLog .*|$custom_log_line|" "$archivo"
else
echo "Agregando línea: $custom_log_line"
sudo sed -i "/<\/VirtualHost>/i \\\t$custom_log_line" "$archivo"
fi
# Verificar si ServerName contiene devuocloud.com y modificar VirtualHost
if grep -q "ServerName.*devuocloud.com" "$archivo"; then
echo "Modificando <VirtualHost *:80> a <VirtualHost *:443>"
# sudo sed -i "s|<VirtualHost \*:80>|<VirtualHost *:443>|" "$archivo"
if ! grep -q "SSLCertificateFile" "$archivo"; then
echo "Agregando líneas de SSL"
sudo sed -i "/<\/Directory>/a \\\n SSLCertificateFile /etc/apache2/certs/devuocloud.com.crt\n SSLCertificateKeyFile /etc/apache2/certs/devuocloud.com.key" "$archivo"
fi
fi
else
echo "El archivo $archivo no existe. Omitiendo."
fi
}
# Aplicar configuraciones al archivo de HTTP (si existe)
agregar_configuraciones "$conf_file"
# Aplicar configuraciones al archivo de HTTPS (si existe)
agregar_configuraciones "$ssl_conf_file"
echo "Proceso completado para el usuario '$nombre' y la carpeta '$dir'."