Eu uso o seguinte script para executar as seguintes ações no meu ambiente:
- Como criar um conf conf do site Nginx
- Criando um certificado SSL Let'sEncrypt correspondente.
- Como criar um link simbólico entre meu
sites-default
dir e meu site conf
- Reiniciando o servidor.
Meu código:
#!/bin/sh
for domain; do
> "/etc/nginx/sites-available/${domain}.conf" cat <<EOF
server {
root /var/www/html/${DOMAIN};
server_name ${DOMAIN} www.${DOMAIN};
location ~ /\.ht {
deny all;
}
location / {
index index.php index.html index.htm fastcgi_index;
try_files $uri $uri =404 $uri/ /index.php?$args;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js|ttf|woff|pdf)$ {
expires 365d;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
sudo ln -s /etc/nginx/sites-available/${domain} /etc/nginx/sites-enabled/
#########################################################################
certbot --nginx -d ${DOMAIN} -d www.${DOMAIN}
done
systemctl restart nginx.service # Create Webapp Substrate.
Como e por que quero melhorar este código:
Onde a longa fila de hashmarks, eu quero inserir o seguinte comando:
echo 'create database ${DOMAIN}; create user "${DOMAIN}"@"localhost" identified by "mypassword"; grant all privileges on ${DOMAIN}.* to ${DOMAIN};' | mysql -u root -p
Adicionar este comando mudará o script para fazer 5 passos em vez de 4:
- Cria um conf conf do site Nginx.
- Cria um certificado SSL Let'sEncrypt correspondente.
- Como criar um link simbólico entre meu
sites-default
dir e meu site conf
- Adicionando um usuário de banco de dados totalmente privilegiado e autenticado adequado apenas para localhost, com um banco de dados com o mesmo nome.
- Reiniciando o servidor.
Minha pergunta:
Como você pode ver, usei meu parâmetro ${DOMAIN}
dentro do echo
. Eu fiz isso porque eu deve passar o mesmo argumento lá também, caso contrário, o nome de usuário do banco de dados e seu banco de dados associado não caberão no meu site e meu site baseado no Wordpress não inicializará.
Esta operação é lógica no Bash ou você tomaria outra abordagem?
Para esclarecer, peço para entender se passar argumentos baseados em parâmetros é válido quando o parâmetro está dentro de um echo
.