create_wp_template.sh 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/bin/bash
  2. #### Create WP Site
  3. #### v3 自动从临时服务器拉取模板站shell脚本,并自动化部署
  4. #### Author: chenpeiqing
  5. #### Date: 2024-11-18
  6. #### Usage: sh create_wp_tempate.sh [2408210vakv9]
  7. #### 示例: sh create-wpsite.sh 2408210vakv9 wp063
  8. #模板 site code
  9. SITE_CODE=$1
  10. RDS_HOST='127.0.0.1'
  11. RDS_ADMIN='root'
  12. RDS_PWD='Initial0_123'
  13. #从临时服务器下载项目文件
  14. echo '从临时服务器下载项目文件'
  15. scp -i /home/ubuntu/ningxia.pem -P 9922 ec2-user@52.83.132.56:/home/ec2-user/template_temp/$SITE_CODE.tar.gz /home/ubuntu/template_temp
  16. echo "从临时服务器下载项目文件花费:"$((end_time - start_time))"s"
  17. echo '从临时服务器下载项目文件结束'
  18. #移动项目文件到目标目录
  19. mv /home/ubuntu/template_temp/$SITE_CODE.tar.gz /usr/local/wwwtemplate/
  20. echo "移动项目文件到目标目录花费:"$((end_time - start_time))"s"
  21. echo "解压模板站"
  22. cd /usr/local/wwwtemplate/
  23. tar -xzf $SITE_CODE.tar.gz
  24. #解压后删除压缩文件
  25. rm -f $SITE_CODE.tar.gz
  26. echo "解压模板站花费:"$((end_time - start_time))"s"
  27. #从临时服务器下载数据库
  28. echo '从临时服务器下载数据库'
  29. scp -i /home/ubuntu/ningxia.pem -P 9922 ec2-user@52.83.132.56:/home/ec2-user/template_temp/$SITE_CODE.sql /home/ubuntu/template_temp
  30. echo "从临时服务器下载数据库花费:"$((end_time - start_time))"s"
  31. echo '从临时服务器下载数据库结束'
  32. #创建数据库,赋权
  33. echo 'create_database_start'
  34. start_time=$(date +'%s')
  35. mysql -h$RDS_HOST -u$RDS_ADMIN -p$RDS_PWD<< EOF
  36. DROP DATABASE IF EXISTS $SITE_CODE;
  37. CREATE DATABASE $SITE_CODE CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  38. GRANT ALL ON $SITE_CODE.* TO 'adweb'@'localhost';
  39. FLUSH PRIVILEGES;
  40. exit
  41. EOF
  42. end_time=$(date +'%s')
  43. echo "创建数据库花费:"$((end_time - start_time))"s"
  44. echo 'create_database_end'
  45. #导入数据库
  46. start_time=$(date +'%s')
  47. mysql -u$RDS_ADMIN -p$RDS_PWD $SITE_CODE < /home/ubuntu/template_temp/$SITE_CODE.sql
  48. end_time=$(date +'%s')
  49. echo "【"$SITE_CODE"】网站导入数据库完成,共计花费:"$((end_time - start_time))"s"
  50. #更新数据库连接配置
  51. echo 'update_wp-config_start'
  52. start_time=$(date +'%s')
  53. sed -i "s:FILE_NAME:$SITE_CODE:g" /usr/local/wwwtemplate/$SITE_CODE/domain.txt
  54. sed -i "s:'RqBQxctjakHCJVq8kmmYHQKZQGU4YMUH':'2024_RqBQxctjakHCJVq8kmmYHQKZQGU4YMUH':g" /usr/local/wwwtemplate/$SITE_CODE/wp-config.php
  55. end_time=$(date +'%s')
  56. echo "更新WP配置文件花费:"$((end_time - start_time))"s"
  57. echo 'update_wp-config_end'
  58. # 替换老域名到数据库 wp-cli
  59. echo 'UPDATE_WP_DOMAIN_START'
  60. start_time=$(date +'%s')
  61. cd /usr/local/wwwtemplate/$SITE_CODE
  62. cp /opt/adweb3/config/wp-cli.phar ./
  63. php ./wp-cli.phar search-replace "https://$SITE_CODE.adwebcloud.com" "https://$SITE_CODE.adweb3.topxuetang.com" --allow-root
  64. rm -rf wp-cli.phar
  65. end_time=$(date +'%s')
  66. echo "更新WP域名花费:"$((end_time - start_time))"s"
  67. echo 'UPDATE_WP_DOMAIN_END'
  68. # 创建nginx配置文件,并reload nginx
  69. #nginx
  70. echo 'UPDATE_NGINX_START'
  71. start_time=$(date +'%s')
  72. cp /opt/adweb3/nginx_template/wp-template.conf /usr/local/openresty/nginx/vhost/template/$SITE_CODE.conf
  73. sed -i "s:SITE_CODE:$SITE_CODE:g" /usr/local/openresty/nginx/vhost/template/$SITE_CODE.conf
  74. echo "开始重启nginx配置"
  75. /usr/local/openresty/nginx/sbin/nginx -s reload
  76. echo "nginx配置重启完成"echo "开始重启nginx配置"
  77. # 修改项目所有者为www-data
  78. chown -R www-data:www-data /usr/local/wwwtemplate/$SITE_CODE/