install.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #!/usr/bin/env bash
  2. #清理不需要的文件
  3. clean_files() {
  4. if [ -f .user.ini ]; then
  5. chattr -i .user.ini
  6. fi
  7. rm -rf .htaccess 404.html index.html .user.ini
  8. }
  9. #检查系统
  10. check_sys() {
  11. # shellcheck disable=SC2002
  12. if [[ -f /etc/redhat-release ]]; then
  13. release="centos"
  14. elif cat /etc/issue | grep -q -E -i "debian"; then
  15. release="debian"
  16. elif cat /etc/issue | grep -q -E -i "ubuntu"; then
  17. release="ubuntu"
  18. elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
  19. release="centos"
  20. elif cat /proc/version | grep -q -E -i "debian"; then
  21. release="debian"
  22. elif cat /proc/version | grep -q -E -i "ubuntu"; then
  23. release="ubuntu"
  24. elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
  25. release="centos"
  26. fi
  27. echo "========= Checking for Software dependency | 检查依赖软件是否安装/运行 ========="
  28. if which redis-cli >/dev/null; then
  29. echo -e "\e[37;42m Redis Installed! | Redis 已安装!\e[0m"
  30. redis-cli ping
  31. else
  32. echo -e "\e[37;1;41m Redis did not installed! | redis 未安装!\e[0m"
  33. fi
  34. if which php >/dev/null; then
  35. echo -e "\e[37;42m PHP Installed! | PHP 已安装!\e[0m"
  36. php -v
  37. else
  38. echo -e "\e[37;1;41m PHP did not installed! | PHP 未安装!\e[0m"
  39. fi
  40. if which nginx >/dev/null || which httpd >/dev/null; then
  41. echo -e "\e[37;42m Nginx/Apache Installed! | Nginx 或 Apache 已安装!\e[0m"
  42. if which nginx >/dev/null; then
  43. nginx -v
  44. else
  45. httpd -v
  46. fi
  47. else
  48. echo -e "\e[37;1;41m Nginx/Apache did not installed! | Nginx 或 Apache 未安装!\e[0m"
  49. fi
  50. }
  51. #检查composer是否安装
  52. check_composer() {
  53. if [ ! -f "/usr/bin/composer" ]; then
  54. if [[ "${release}" == "centos" ]]; then
  55. yum install -y composer
  56. else
  57. apt-get install -y composer
  58. fi
  59. else
  60. if [[ $(composer --version | cut -d" " -f3) < 2.2.0 ]]; then
  61. composer self-update
  62. fi
  63. fi
  64. }
  65. # 设置权限
  66. set_permissions() {
  67. if [ ! -d "/home/www" ]; then
  68. mkdir -p /home/www
  69. chown www:www /home/www
  70. fi
  71. chown -R www:www ./
  72. chmod -R 755 ./
  73. chmod -R 777 storage/
  74. }
  75. set_crontab() {
  76. cmd="php $(dirname "$path")/artisan schedule:run >> /dev/null 2>&1"
  77. cronjob="* * * * * $cmd"
  78. (
  79. crontab -u www -l | grep -v -F "$cmd"
  80. echo "$cronjob"
  81. ) | crontab -u www -
  82. cmd="bash $(dirname "$path")/queue.sh"
  83. cronjob="*/10 * * * * $cmd"
  84. (
  85. crontab -l | grep -v -F "$cmd"
  86. echo "$cronjob"
  87. ) | crontab -
  88. }
  89. clean_files
  90. check_sys
  91. check_composer
  92. composer install
  93. php artisan panel:install
  94. set_permissions
  95. set_crontab