install.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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; then
  41. echo -e "\e[37;42m Nginx Installed! | Nginx 已安装!\e[0m"
  42. nginx -v
  43. else
  44. echo -e "\e[37;1;41m Nginx did not installed! | Nginx 未安装!\e[0m"
  45. fi
  46. }
  47. #检查composer是否安装
  48. check_composer(){
  49. if [ ! -f "/usr/bin/composer" ]; then
  50. if [[ "${release}" == "centos" ]]; then
  51. yum install -y composer
  52. else
  53. apt-get install -y composer
  54. fi
  55. fi
  56. }
  57. # 设置权限
  58. set_permissions(){
  59. if [ ! -d "/home/www" ]; then
  60. mkdir -p /home/www
  61. chown www:www /home/www
  62. fi
  63. chown -R www:www ./
  64. chmod -R 755 ./
  65. chmod -R 777 storage/
  66. }
  67. set_crontab(){
  68. cmd="php $(dirname "$path")/artisan schedule:run >> /dev/null 2>&1"
  69. cronjob="* * * * * $cmd"
  70. ( crontab -u www -l | grep -v -F "$cmd" ; echo "$cronjob" ) | crontab -u www -
  71. cmd="bash $(dirname "$path")/queue.sh"
  72. cronjob="*/10 * * * * $cmd"
  73. ( crontab -l | grep -v -F "$cmd" ; echo "$cronjob" ) | crontab -
  74. }
  75. clean_files
  76. check_sys
  77. check_composer
  78. composer install
  79. php artisan panel:install
  80. set_permissions
  81. set_crontab