Preview site site-new Function for ZSH
# ZSH Site New FUN# Utilizando ZSH para crear una nueva configuración de Nginx con un solo comando
site-newTener instalado ZSH y Nginx
Instalar ZSH Instalar ZSH
Instalar Oh My Zsh Instalar Oh My Zsh
Contar con servidor Nginx instalado Instalar Nginx
En tu archivo .zshrc agrega el siguiente código, justo al final del archivo
function create_new_site() { local site_name="1ドル" local php_version="2ドル" local path_site="3ドル" local domain="4ドル" local subdominio="5ドル" # Solicitaremos las variables necesarias para crear el nuevo sitio if [ ! -n "${(p)site_name}" ]; then echo "\nDefine la variable site_name para crear un nuevo sitio..\nejemplo: site_name=nombre_sitio" # Solicitar el nombre del sitio al usuario echo "Ingrese el nombre del sitio:" read site_name fi if [ ! -n "${(p)path_site}" ]; then echo "\nDefine la variable path_site para crear un nuevo sitio..\nejemplo: path_site=/var/www/html/" # Solicitar el nombre del sitio al usuario echo "Ingrese el path_site del sitio:" read path_site fi if [ ! -n "${(p)php_version}" ]; then echo "\nDefine la variable php_version, si no se define se usara la version de php por defecto.\nejemplo: php_version=7.4\n debe ser una version de php instalada en el servidor" # Solicitar el nombre del sitio al usuario echo "Ingrese la version de php:" read php_version fi if [ ! -n "${(p)domain}" ]; then echo "\nDefine la variable domain y no incluyas el subdominio, ni www.\nejemplo: domain=domain.cl" # Solicitar el nombre del sitio al usuario echo "Ingrese el dominio del sitio:" read domain fi if [ ! -n "${(p)subdominio}" ]; then echo "\nDefine la variable subdominio y no incluyas el dominio principal ${(p)domain} ni www.\nejemplo: subdominio=app" # Solicitar el nombre del sitio al usuario echo "Ingrese el subdominio del sitio:" read subdominio fi if [ -n "${(p)site_name}" ]; then # Directorio de archivos disponibles sites_available="/etc/nginx/sites-available" # Crear archivo de configuración echo "server { listen 80; listen [::]:80; # Carpeta pública root $path_site/$site_name; index index.html index.htm index.php; # Archivo de log error_log /var/log/nginx/$domain.log error; # Dominio server_name $subdominio.$domain www.$subdominio.$domain; location / { try_files \$uri \$uri/ /index.php?\$query_string; } location ~ \.php$ { # Versión de PHP fastcgi_pass unix:/run/php/php$php_version-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; try_files \$uri =404; include fastcgi_params; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }" > "$sites_available/$subdominio.$domain" # Habilitar el sitio sudo ln -s "$sites_available/$subdominio.$domain" /etc/nginx/sites-enabled # Recargar Nginx sudo systemctl reload nginx # Consultar por cerbot echo "¿Desea instalar un certificado SSL con Let's Encrypt, usando cerbot? (s/n)" read cerbot if [ "$cerbot" = "s" ]; then sudo certbot --nginx -d $subdominio.$domain -d www.$subdominio.$domain fi # Mensaje de éxito echo "\nSe ha creado un nuevo sitio con nombre: $site_name.$domain\n" fi } remove_site() { local site_name="1ドル" if [ ! -n "${(p)site_name}" ]; then echo "Ingrese el nombre del sitio\n ejemplo: site_name=sub.dominio.cl" read site_name fi if [ -n "${(p)site_name}" ]; then if [ -f /etc/nginx/sites-available/${(p)site_name} ]; then echo "Estas removiendo el sitio con nombre $site_name" && sudo rm /etc/nginx/sites-available/${(p)site_name} && sudo rm /etc/nginx/sites-enabled/${(p)site_name} # Actualizar la configuración de Nginx sudo systemctl reload nginx else echo "El sitio con nombre $site_name no existe." fi fi } alias ngnix-restart="sudo systemctl restart nginx.service" alias site-new='create_new_site "$site_name" "$php_version" "$path_site" "$domain" "$subdominio"' alias site-remove='remove_site "$site_name"'