create_v3_wp_template.sh 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #!/bin/bash
  2. #### Create V3 WP template site
  3. #### v3 自动基于临时站创建对应的模板站
  4. #### Author: chenpeiqing
  5. #### Date: 2025-03-13
  6. #### Usage: sh create_v3_wp_template.sh [临时站code] [模板站code]
  7. #### 示例: sh create_v3_wp_template.sh 2408210vakv9 2408210vakv9tp
  8. TEMP_CODE=$1
  9. TP_CODE=$2
  10. TEMPLATE_DOMAIN='v3.sohoeb2b.com'
  11. RDS_HOST='127.0.0.1'
  12. RDS_ADMIN='root'
  13. RDS_PWD='Initial0_123'
  14. OLD_DOMAIN_NAME=$TEMP_CODE.$TEMPLATE_DOMAIN
  15. DOMAIN_NAME=$TP_CODE.$TEMPLATE_DOMAIN
  16. #创建站点目录
  17. mkdir /usr/local/wwwtemplate/$TP_CODE
  18. #打包模板站包
  19. cd /usr/local/wwwroot/$TEMP_CODE
  20. echo '打包模板站开始'
  21. start_time=$(date +'%s')
  22. tar -czf $TEMP_CODE.tar.gz *
  23. sudo mv $TEMP_CODE.tar.gz /usr/local/wwwtemplate/$TP_CODE
  24. end_time=$(date +'%s')
  25. echo "打包模板站结束,共计花费:"$((end_time - start_time))"s"
  26. echo '导出数据库开始'
  27. #下载临时站数据库
  28. mysqldump --user=$RDS_ADMIN --password=$RDS_PWD --host=localhost --port=3306 --no-create-db --default-character-set=utf8 $TEMP_CODE > /opt/adweb3/temp_package/$TEMP_CODE.sql
  29. echo "导出数据库结束,共计花费:"$((end_time - start_time))"s"
  30. echo '解压模板站开始'
  31. cd /usr/local/wwwtemplate/$TP_CODE
  32. tar -xzf $TEMP_CODE.tar.gz
  33. echo "解压模板站结束,共计花费:"$((end_time - start_time))"s"
  34. #更新数据库连接配置
  35. echo "修改站点【"$TP_CODE"】wp-config.php配置"
  36. start_time=$(date +'%s')
  37. #sed -i "s:root:adweb:g" /usr/local/wwwtemplate/$TP_CODE/wp-config.php
  38. #sed -i "s:Initial0_123:2024_RqBQxctjakHCJVq8kmmYHQKZQGU4YMUH:g" /usr/local/wwwtemplate/$TP_CODE/wp-config.php
  39. sed -i "s:$TEMP_CODE:$TP_CODE:g" /usr/local/wwwtemplate/$TP_CODE/wp-config.php
  40. sed -i "s:FILE_NAME:$TP_CODE:g" /usr/local/wwwtemplate/$TP_CODE/domain.txt
  41. sed -i "s:'$TEMP_CODE':'$TP_CODE':g" /usr/local/wwwtemplate/$TP_CODE/wp-config.php
  42. end_time=$(date +'%s')
  43. echo "修改站点【"$TP_CODE"】wp-config.php配置修改完成,共计花费:"$((end_time - start_time))"s"
  44. #创建数据库,赋权
  45. echo '创建数据库开始:'
  46. start_time=$(date +'%s')
  47. mysql -h$RDS_HOST -u$RDS_ADMIN -p$RDS_PWD<< EOF
  48. DROP DATABASE IF EXISTS $TP_CODE;
  49. CREATE DATABASE $TP_CODE CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  50. GRANT ALL ON $TP_CODE.* TO 'adweb'@'localhost';
  51. FLUSH PRIVILEGES;
  52. exit
  53. EOF
  54. end_time=$(date +'%s')
  55. echo "创建数据库花费:"$((end_time - start_time))"s"
  56. #导入数据库
  57. echo '导入数据库开始:'
  58. start_time=$(date +'%s')
  59. mysql -u$RDS_ADMIN -p$RDS_PWD $TP_CODE < /opt/adweb3/temp_package/$TEMP_CODE.sql
  60. end_time=$(date +'%s')
  61. echo "【"$TP_CODE"】网站导入数据库完成,共计花费:"$((end_time - start_time))"s"
  62. #nginx
  63. echo '创建并更新新站点的nginx配置开始:'
  64. start_time=$(date +'%s')
  65. cp /opt/adweb3/nginx_template/wp-template.conf /usr/local/openresty/nginx/vhost/template/$TP_CODE.conf
  66. sed -i "s:SITE_CODE:$TP_CODE:g" /usr/local/openresty/nginx/vhost/template/$TP_CODE.conf
  67. echo "开始重启nginx配置"
  68. /usr/local/openresty/nginx/sbin/nginx -s reload
  69. echo "nginx配置重启完成"echo "开始重启nginx配置"
  70. #更新新站点WP数据库中的域名并清空缓存
  71. echo '更新新站点WP数据库中的域名并清空缓存开始:'
  72. start_time=$(date +'%s')
  73. cd /usr/local/wwwtemplate/$TP_CODE
  74. cp /opt/adweb3/config/wp-cli.phar /usr/local/wwwtemplate/$TP_CODE
  75. php ./wp-cli.phar search-replace "$OLD_DOMAIN_NAME" "$DOMAIN_NAME" --allow-root
  76. php ./wp-cli.phar search-replace "http://$DOMAIN_NAME" "https://$DOMAIN_NAME" --allow-root
  77. php ./wp-cli.phar cache flush --allow-root
  78. rm -rf wp-cli.phar
  79. end_time=$(date +'%s')
  80. echo "更新新站点WP数据库中的域名并清空缓存花费:"$((end_time - start_time))"s"
  81. echo "清空老站点缓存开始:"
  82. start_time=$(date +'%s')
  83. cp /opt/adweb3/config/wp-cli.phar /usr/local/wwwroot/$TEMP_CODE
  84. cd /usr/local/wwwroot/$TEMP_CODE
  85. php ./wp-cli.phar cache flush --allow-root
  86. rm -rf wp-cli.phar
  87. end_time=$(date +'%s')
  88. echo "清空模板站点缓存花费:"$((end_time - start_time))"s"
  89. end_time=$(date +'%s')
  90. echo "本次拉取临时站点共计花费: "$((end_time - first_time))"s"
  91. #更新目录权限组
  92. cd /usr/local/wwwtemplate
  93. chown -R www-data:www-data $TP_CODE