install.sh 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. fi
  60. }
  61. # 设置权限
  62. set_permissions(){
  63. if [ ! -d "/home/www" ]; then
  64. mkdir -p /home/www
  65. chown www:www /home/www
  66. fi
  67. chown -R www:www ./
  68. chmod -R 755 ./
  69. chmod -R 777 storage/
  70. }
  71. set_crontab(){
  72. cmd="php $(dirname "$path")/artisan schedule:run >> /dev/null 2>&1"
  73. cronjob="* * * * * $cmd"
  74. ( crontab -u www -l | grep -v -F "$cmd" ; echo "$cronjob" ) | crontab -u www -
  75. cmd="bash $(dirname "$path")/queue.sh"
  76. cronjob="*/10 * * * * $cmd"
  77. ( crontab -l | grep -v -F "$cmd" ; echo "$cronjob" ) | crontab -
  78. }
  79. clean_files
  80. check_sys
  81. check_composer
  82. composer install
  83. php artisan panel:install
  84. set_permissions
  85. set_crontab