baota.sh 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. #!/bin/bash
  2. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
  3. export PATH
  4. php_version='74'
  5. mysql_version='5.7'
  6. redis_version='6.2'
  7. action_type='install'
  8. root_path=$(cat /var/bt_setupPath.conf)
  9. setup_path=$root_path/server
  10. #宝塔是否已安装
  11. if [ -z "$root_path" ]; then
  12. echo "请先安装宝塔"
  13. exit 1
  14. fi
  15. #nginx是否已安装
  16. if [ ! -f "${setup_path}/nginx/sbin/nginx" ]; then
  17. echo "请先安装nginx并配置网站"
  18. exit 1
  19. fi
  20. #安装php
  21. php_install=1
  22. for phpVer in 71 72 73 74; do
  23. if [ -d "${setup_path}/php/${phpVer}/bin" ]; then
  24. php_version=${phpVer}
  25. php_install=0
  26. fi
  27. done
  28. if [ $php_install == 1 ]; then
  29. . ${setup_path}/panel/install/install_soft.sh 1 $action_type php $php_version
  30. fi
  31. case "${php_version}" in
  32. '71')
  33. extFile="${setup_path}/php/71/lib/php/extensions/no-debug-non-zts-20160303"
  34. ;;
  35. '72')
  36. extFile="${setup_path}/php/72/lib/php/extensions/no-debug-non-zts-20170718"
  37. ;;
  38. '73')
  39. extFile="${setup_path}/php/73/lib/php/extensions/no-debug-non-zts-20180731"
  40. ;;
  41. '74')
  42. extFile="${setup_path}/php/74/lib/php/extensions/no-debug-non-zts-20190902"
  43. ;;
  44. esac
  45. #安装mysql
  46. if [ ! -d "${setup_path}/mysql" ]; then
  47. . ${setup_path}/panel/install/install_soft.sh 1 $action_type mysql $mysql_version
  48. fi
  49. #安装redis
  50. if [ ! -d "${setup_path}/redis" ]; then
  51. . ${setup_path}/panel/install/install_soft.sh 0 $action_type redis $redis_version
  52. fi
  53. #安装php-redis 插件
  54. if [ ! -e "${extFile}/redis.so" ]; then
  55. . ${setup_path}/panel/install/install_soft.sh 1 $action_type redis $php_version
  56. fi
  57. #安装php-swoole 插件
  58. if [ ! -e "${extFile}/swoole.so" ]; then
  59. . ${setup_path}/panel/install/install_soft.sh 1 $action_type swoole4 $php_version
  60. fi
  61. #pcntl_signal pcntl_signal_dispatch pcntl_fork pcntl_wait pcntl_alarm 禁用函数删除
  62. sed -i 's/,proc_open//' ${setup_path}/php/$php_version/etc/php.ini
  63. #安装php-fileinfo 插件
  64. if [ ! -e "${extFile}/fileinfo.so" ]; then
  65. . ${setup_path}/panel/install/install_soft.sh 1 $action_type fileinfo $php_version
  66. fi
  67. #修改nginx配置
  68. project_path=$(cd `dirname $0`; pwd)
  69. project_name="${project_path##*/}"
  70. if [ -e "${setup_path}/panel/vhost/nginx/${project_name}.conf" ]; then
  71. echo -e "
  72. server
  73. {
  74. listen 80;
  75. server_name ${project_name};
  76. index index.php index.html index.htm default.php default.htm default.html;
  77. root /www/wwwroot/${project_name}/public;
  78. #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
  79. #error_page 404/404.html;
  80. #SSL-END
  81. #ERROR-PAGE-START 错误页配置,可以注释、删除或修改
  82. #error_page 404 /404.html;
  83. #error_page 502 /502.html;
  84. #ERROR-PAGE-END
  85. #PHP-INFO-START PHP引用配置,可以注释或修改
  86. #清理缓存规则
  87. location ~ /purge(/.*) {
  88. proxy_cache_purge cache_one \$host\$1\$is_args\$args;
  89. }
  90. #引用反向代理规则,注释后配置的反向代理将无效
  91. location /notice {
  92. proxy_pass http://127.0.0.1:20002/;
  93. proxy_http_version 1.1;
  94. proxy_set_header Upgrade \$http_upgrade;
  95. proxy_set_header Connection "upgrade";
  96. proxy_set_header X-real-ip \$remote_addr;
  97. proxy_set_header X-Forwarded-For \$remote_addr;
  98. }
  99. #提示:v4.3.0 以前版本,可不用配置一下代码
  100. location /msg {
  101. proxy_pass http://127.0.0.1:20003/;
  102. proxy_http_version 1.1;
  103. proxy_set_header Upgrade \$http_upgrade;
  104. proxy_set_header Connection "upgrade";
  105. proxy_set_header X-real-ip \$remote_addr;
  106. proxy_set_header X-Forwarded-For \$remote_addr;
  107. }
  108. include enable-php-00.conf;
  109. #PHP-INFO-END
  110. #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
  111. include ${setup_path}/panel/vhost/rewrite/${project_name}.conf;
  112. #REWRITE-END
  113. #禁止访问的文件或目录
  114. location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
  115. {
  116. return 404;
  117. }
  118. #一键申请SSL证书验证目录相关设置
  119. location ~ \.well-known{
  120. allow all;
  121. }
  122. access_log /www/wwwlogs/${project_name}.log;
  123. error_log /www/wwwlogs/${project_name}.error.log;
  124. }
  125. " > ${setup_path}/panel/vhost/nginx/${project_name}.conf
  126. fi
  127. echo ''
  128. # 操作说明,进入程序根目录运行 /bin/bash baota.sh