Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

daesdev/zsh-alias-site-new

Repository files navigation

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-new

Necesitas

Tener 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"'

About

Function for ZSH to create a new site with a single command.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /