
내 환경에서 다음 스크립트를 사용하여 다음을 수행합니다.
- Nginx 사이트 구성을 만듭니다.
- 해당 Let'sEncrypt SSL 인증서를 생성합니다.
sites-default
내 디렉터리와 사이트 구성 사이에 심볼릭 링크를 만듭니다.- 서버를 다시 시작하십시오.
내 코드:
#!/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.
이 코드를 개선하려는 방법과 이유는 다음과 같습니다.
긴 해시 마크 행이 있는 곳에 다음 명령을 삽입하고 싶습니다.
echo 'create database ${DOMAIN}; create user "${DOMAIN}"@"localhost" identified by "mypassword"; grant all privileges on ${DOMAIN}.* to ${DOMAIN};' | mysql -u root -p
이 명령을 추가하면 스크립트가 4단계 대신 5단계를 수행하도록 변경됩니다.
- Nginx 사이트 구성을 만듭니다.
- 해당 Let'sEncrypt SSL 인증서를 생성합니다.
sites-default
내 디렉터리와 사이트 구성 사이에 심볼릭 링크를 만듭니다.- localhost에서만 작동하고 동일한 이름의 데이터베이스를 갖는 모든 권한이 있고 인증된 데이터베이스 사용자를 추가합니다.
- 서버를 다시 시작하십시오.
내 질문:
보시다시피 ${DOMAIN}
저는 echo
.~ 해야 하다여기에도 동일한 매개변수를 전달합니다. 그렇지 않으면 데이터베이스 사용자 이름이나 관련 데이터베이스가 내 사이트 구성에 맞지 않고 내 WordPress 기반 사이트가 시작되지 않습니다.
Bash에서 이 작업이 논리적인가요? 아니면 다른 접근 방식을 취하시겠습니까?
이를 명확히 하기 위해 매개변수가 echo
.
답변1
이를 위해 다음을 수행할 필요는 없습니다 echo
.
mysql -u root -ppass <<EOF
create database ${DOMAIN};
create user "${DOMAIN}"@"localhost" identified by "mypassword";
grant all privileges on ${DOMAIN}.* to ${DOMAIN};
EOF
답변2
질문하신 내용은 다음과 같습니다.Bash 매개변수 대체. 이 echo
명령은 여기서는 효과가 없습니다. 사용하고 계시는 것 같네요아포스트로피바꾸다큰따옴표, 문자열에서 매개변수 대체를 억제합니다. 작은따옴표 대신 큰따옴표를 사용하고 문자열에 포함하려는 큰따옴표를 이스케이프하려면 백슬래시를 사용하세요. 예를 들면 다음과 같습니다.
echo "create database ${DOMAIN}; create user \"${DOMAIN}\"@\"localhost\" identified by \"mypassword\"; grant all privileges on ${DOMAIN}.* to ${DOMAIN};"