|
@@ -0,0 +1,210 @@
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+SITE_CODE=$1
|
|
|
+DOMAIN_NAME=$2
|
|
|
+DATABASE_NAME=$3
|
|
|
+
|
|
|
+TEMP_DOMAIN='v3-site.adwebcloud.com'
|
|
|
+
|
|
|
+RDS_HOST='127.0.0.1'
|
|
|
+RDS_ADMIN='root'
|
|
|
+RDS_PWD='Admin@123.com'
|
|
|
+
|
|
|
+TEMP_USER_NAME='ubuntu'
|
|
|
+TEMP_IP='35.87.155.71'
|
|
|
+TEMP_PEM='/opt/adweb3/pem/adweb3.pem'
|
|
|
+
|
|
|
+first_time=$(date +'%s')
|
|
|
+
|
|
|
+
|
|
|
+echo "SITE_CODE":$SITE_CODE
|
|
|
+echo "DOMAIN_NAME":$DOMAIN_NAME
|
|
|
+echo "DATABASE_NAME":$DATABASE_NAME
|
|
|
+
|
|
|
+
|
|
|
+ssh -i $TEMP_PEM -p 22 -o IdentitiesOnly=yes $TEMP_USER_NAME@$TEMP_IP << EOF
|
|
|
+ sudo -i
|
|
|
+ sh /opt/adweb3/shell/bak-wpsite.sh $SITE_CODE
|
|
|
+ exit
|
|
|
+EOF
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+mysql -h $RDS_HOST -u$RDS_ADMIN -p$RDS_PWD<< EOF
|
|
|
+ DROP DATABASE IF EXISTS $DATABASE_NAME;
|
|
|
+ CREATE DATABASE $DATABASE_NAME CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
+ DROP USER IF EXISTS $SITE_CODE;
|
|
|
+ CREATE USER '$SITE_CODE'@'%' IDENTIFIED BY 'Admin@123.com';
|
|
|
+ GRANT ALL ON $DATABASE_NAME.* TO '$SITE_CODE'@'%';
|
|
|
+ flush privileges;
|
|
|
+ exit
|
|
|
+EOF
|
|
|
+
|
|
|
+
|
|
|
+if [ ! -d "/usr/local/wwwroot/$DOMAIN_NAME" ]; then
|
|
|
+ mkdir -p /usr/local/wwwroot/$DOMAIN_NAME
|
|
|
+fi
|
|
|
+
|
|
|
+
|
|
|
+wget -P /usr/local/wwwroot/$DOMAIN_NAME/ http://download-template-v3.adwebcloud.com/$SITE_CODE.sql
|
|
|
+
|
|
|
+mysql -h $RDS_HOST -u$SITE_CODE -p'Admin@123.com' $DATABASE_NAME</usr/local/wwwroot/$DOMAIN_NAME/$SITE_CODE.sql
|
|
|
+
|
|
|
+
|
|
|
+wget -P /usr/local/wwwroot/$DOMAIN_NAME/ http://download-template-v3.adwebcloud.com/$SITE_CODE.tar.gz
|
|
|
+tar -zxf /usr/local/wwwroot/$DOMAIN_NAME/$SITE_CODE.tar.gz -C /usr/local/wwwroot/$DOMAIN_NAME/
|
|
|
+
|
|
|
+mv /usr/local/wwwroot/$DOMAIN_NAME/$SITE_CODE/* /usr/local/wwwroot/$DOMAIN_NAME/
|
|
|
+rm -rf /usr/local/wwwroot/$DOMAIN_NAME/$SITE_CODE
|
|
|
+
|
|
|
+
|
|
|
+chown -R www-data:www-data /usr/local/wwwroot/$DOMAIN_NAME
|
|
|
+
|
|
|
+
|
|
|
+sed -i "s:'$SITE_CODE.$TEMP_DOMAIN':'$DOMAIN_NAME':g" /usr/local/wwwroot/$DOMAIN_NAME/wp-config.php
|
|
|
+
|
|
|
+
|
|
|
+sed -i "s:'$SITE_CODE':'$DATABASE_NAME':g" /usr/local/wwwroot/$DOMAIN_NAME/wp-config.php
|
|
|
+
|
|
|
+
|
|
|
+sed -i "s:'adweb':'$SITE_CODE':g" /usr/local/wwwroot/$DOMAIN_NAME/wp-config.php
|
|
|
+
|
|
|
+
|
|
|
+sed -i "s:'2024_RqBQxctjakHCJVq8kmmYHQKZQGU4YMUH':'Admin@123.com':g" /usr/local/wwwroot/$DOMAIN_NAME/wp-config.php
|
|
|
+
|
|
|
+
|
|
|
+sed -i "s:'127.0.0.1':'$RDS_HOST':g" /usr/local/wwwroot/$DOMAIN_NAME/wp-config.php
|
|
|
+sed -i "s:'localhost':'$RDS_HOST':g" /usr/local/wwwroot/$DOMAIN_NAME/wp-config.php
|
|
|
+
|
|
|
+
|
|
|
+cd /usr/local/wwwroot/$DOMAIN_NAME/
|
|
|
+rm -rf $SITE_CODE.sql.tar.gz $SITE_CODE.tar.gz $SITE_CODE.sql
|
|
|
+
|
|
|
+
|
|
|
+cp /opt/adweb3/config/wp-cli.phar /usr/local/wwwroot/$DOMAIN_NAME
|
|
|
+cd /usr/local/wwwroot/$DOMAIN_NAME
|
|
|
+
|
|
|
+result=$(nslookup $DOMAIN_NAME | grep -Po 'Address: \K[\d.]+')
|
|
|
+result_www=$(nslookup www.$DOMAIN_NAME | grep -Po 'Address: \K[\d.]+')
|
|
|
+
|
|
|
+
|
|
|
+if [ ! -z "$result" ] && [ ! -z "$result_www" ]; then
|
|
|
+
|
|
|
+ php ./wp-cli.phar search-replace "$SITE_CODE.$TEMP_DOMAIN" "www.$DOMAIN_NAME" --allow-root
|
|
|
+ echo "result:"$result
|
|
|
+ echo "result_www:"$result_www
|
|
|
+elif [ ! -z "$result" ] && [ -z "$result_www" ]; then
|
|
|
+
|
|
|
+ php ./wp-cli.phar search-replace "$SITE_CODE.$TEMP_DOMAIN" "$DOMAIN_NAME" --allow-root
|
|
|
+ echo "result":$result
|
|
|
+elif [ -z "$result" ] && [ ! -z "$result_www" ]; then
|
|
|
+
|
|
|
+ php ./wp-cli.phar search-replace "$SITE_CODE.$TEMP_DOMAIN" "www.$DOMAIN_NAME" --allow-root
|
|
|
+ echo "result:"$result
|
|
|
+ echo "result_www:"$result_www
|
|
|
+else
|
|
|
+ echo "Parsing failed"
|
|
|
+fi
|
|
|
+
|
|
|
+
|
|
|
+php ./wp-cli.phar cache flush --allow-root
|
|
|
+rm -rf /usr/local/wwwroot/$DOMAIN_NAME/wp-cli.phar
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+cp /opt/adweb3/nginx_template/wp-site.conf /usr/local/openresty/nginx/vhost/$DOMAIN_NAME.conf
|
|
|
+sed -i "s:DOMAIN_NAME:$DOMAIN_NAME:g" /usr/local/openresty/nginx/vhost/$DOMAIN_NAME.conf
|
|
|
+echo "开始重启nginx配置"
|
|
|
+/usr/local/openresty/nginx/sbin/nginx -s reload
|
|
|
+echo "nginx配置重启完成"echo "开始重启nginx配置"
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+echo "生成$DOMAIN_NAME的ssl证书开始:"
|
|
|
+start_time=$(date +'%s')
|
|
|
+
|
|
|
+
|
|
|
+result=$(nslookup $DOMAIN_NAME | grep -Po 'Address: \K[\d.]+')
|
|
|
+result_www=$(nslookup www.$DOMAIN_NAME | grep -Po 'Address: \K[\d.]+')
|
|
|
+
|
|
|
+
|
|
|
+if [ ! -z "$result" ] && [ ! -z "$result_www" ]; then
|
|
|
+
|
|
|
+
|
|
|
+ /root/.acme.sh/acme.sh --issue -d $DOMAIN_NAME -d "www.$DOMAIN_NAME" --webroot /usr/local/wwwroot/$DOMAIN_NAME
|
|
|
+ echo "result:"$result
|
|
|
+ echo "result_www:"$result_www
|
|
|
+elif [ ! -z "$result" ] && [ -z "$result_www" ]; then
|
|
|
+ /root/.acme.sh/acme.sh --issue -d $DOMAIN_NAME --webroot /usr/local/wwwroot/$DOMAIN_NAME
|
|
|
+ echo "result":$result
|
|
|
+elif [ -z "$result" ] && [ ! -z "$result_www" ]; then
|
|
|
+ /root/.acme.sh/acme.sh --issue -d "www.$DOMAIN_NAME" --webroot /usr/local/wwwroot/$DOMAIN_NAME
|
|
|
+ echo "result:"$result
|
|
|
+ echo "result_www:"$result_www
|
|
|
+else
|
|
|
+ echo "Parsing failed"
|
|
|
+fi
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+sleep 30
|
|
|
+
|
|
|
+if [ -d "/root/.acme.sh/$DOMAIN_NAME" ]; then
|
|
|
+fullchain=$(cat /root/.acme.sh/$DOMAIN_NAME/fullchain.cer)
|
|
|
+awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "fullchain" n ".pem"}' < /root/.acme.sh/$DOMAIN_NAME/fullchain.cer
|
|
|
+Certificate_body=$(cat fullchain.pem)
|
|
|
+echo '[start cert.pem]'
|
|
|
+echo $Certificate_body
|
|
|
+echo '[end cert.pem]'
|
|
|
+
|
|
|
+Certificate_chain=$(cat fullchain1.pem)
|
|
|
+Certificate_chain1=$(cat fullchain2.pem)
|
|
|
+echo '[start chain.pem]'
|
|
|
+echo ${Certificate_chain}" "${Certificate_chain1}
|
|
|
+echo '[end chain.pem]'
|
|
|
+
|
|
|
+Certificate_private_key=$(cat /root/.acme.sh/$DOMAIN_NAME/*key)
|
|
|
+echo '[start privkey.pem]'
|
|
|
+echo $Certificate_private_key
|
|
|
+echo '[end privkey.pem]'
|
|
|
+
|
|
|
+rm -rf *.pem
|
|
|
+elif [ -d "/root/.acme.sh/${DOMAIN_NAME}_ecc" ]; then
|
|
|
+fullchain=$(cat /root/.acme.sh/${DOMAIN_NAME}_ecc/fullchain.cer)
|
|
|
+awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "fullchain" n ".pem"}' < /root/.acme.sh/${DOMAIN_NAME}_ecc/fullchain.cer
|
|
|
+Certificate_body=$(cat fullchain.pem)
|
|
|
+echo '[start cert.pem]'
|
|
|
+echo $Certificate_body
|
|
|
+echo '[end cert.pem]'
|
|
|
+
|
|
|
+Certificate_chain=$(cat fullchain1.pem)
|
|
|
+Certificate_chain1=$(cat fullchain2.pem)
|
|
|
+echo '[start chain.pem]'
|
|
|
+echo ${Certificate_chain}" "${Certificate_chain1}
|
|
|
+echo '[end chain.pem]'
|
|
|
+
|
|
|
+Certificate_private_key=$(cat /root/.acme.sh/${DOMAIN_NAME}_ecc/*key)
|
|
|
+echo '[start privkey.pem]'
|
|
|
+echo $Certificate_private_key
|
|
|
+echo '[end privkey.pem]'
|
|
|
+rm -rf *.pem
|
|
|
+else
|
|
|
+echo "SSL Certificate not found"
|
|
|
+fi
|
|
|
+
|
|
|
+end_time=$(date +'%s')
|
|
|
+echo "生成$DOMAIN_NAME的ssl证书开始花费:"$((end_time - start_time))"s"
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+sed -i "s:####::g" /usr/local/openresty/nginx/vhost/$DOMAIN_NAME.conf
|
|
|
+echo "开始重启nginx配置"
|
|
|
+/usr/local/openresty/nginx/sbin/nginx -s reload
|
|
|
+echo "nginx配置重启完成"echo "开始重启nginx配置"
|
|
|
+
|
|
|
+
|
|
|
+echo "[Creation completed]"
|