install.inc 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/bash
  2. hestia_module_nginx_install() {
  3. source $HESTIA/bin/module/func.inc
  4. if hestia_module_isinstalled 'nginx' && [ ! "$param_force" ]; then
  5. echo "Nginx module is already installed. See 'hestia module info nginx'."
  6. return 0
  7. fi
  8. echo "Installing Nginx module..."
  9. osal_service_stop $OSAL_SERVICE_NGINX > /dev/null 2>&1
  10. hestia_config_backup 'nginx-install' $OSAL_PATH_NGINX_CONF
  11. # Setup repos
  12. if [ "$OS_BASE" = 'debian' ]; then
  13. cat > /etc/apt/sources.list.d/nginx.list <<EOL
  14. # This file was added by Hestia Control Panel.
  15. deb [arch=amd64] https://nginx.org/packages/mainline/$VERSION/ $OS_CODENAME nginx
  16. EOL
  17. apt-key adv --fetch-keys 'https://nginx.org/keys/nginx_signing.key' > /dev/null 2>&1
  18. elif [ "$OS_BASE" = 'ubuntu' ]; then
  19. cat > /etc/apt/sources.list.d/nginx.list <<EOL
  20. # This file was added by Hestia Control Panel.
  21. deb [arch=amd64] https://nginx.org/packages/mainline/$VERSION/ $OS_CODENAME nginx
  22. EOL
  23. if [ "$OS_VERSION" = '16.04' ]; then
  24. apt-key adv --fetch-keys 'http://nginx.org/keys/nginx_signing.key' > /dev/null 2>&1
  25. else
  26. apt-key adv --fetch-keys 'https://nginx.org/keys/nginx_signing.key' > /dev/null 2>&1
  27. fi
  28. elif [ "$OS_BASE" = 'rhel' ]; then
  29. cat > "/etc/yum.repos.d/nginx.repo" <<EOL
  30. # This file was added by Hestia Control Panel.
  31. [nginx-stable]
  32. name=nginx stable repo
  33. baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
  34. gpgcheck=1
  35. enabled=1
  36. gpgkey=https://nginx.org/keys/nginx_signing.key
  37. module_hotfixes=true
  38. EOL
  39. fi
  40. osal_package_preinstall
  41. osal_package_install $OSAL_PKG_NGINX
  42. hestia_config_backup 'nginx-install' $OSAL_PATH_NGINX_CONF $OSAL_PATH_NGINX_CONF_D
  43. hestia_safe_rm $OSAL_PATH_NGINX_CONF_D/*.conf
  44. cp -f $HESTIA_INSTALL_DIR/nginx/nginx.conf $OSAL_PATH_NGINX_CONF/
  45. cp -f $HESTIA_INSTALL_DIR/nginx/status.conf $OSAL_PATH_NGINX_CONF_D/
  46. #FIXME: move the following to *admin install
  47. #cp -f $HESTIA_INSTALL_DIR/nginx/phpmyadmin.inc $OSAL_PATH_NGINX_CONF_D/
  48. #cp -f $HESTIA_INSTALL_DIR/nginx/phppgadmin.inc $OSAL_PATH_NGINX_CONF_D/
  49. cp -f $HESTIA_INSTALL_DIR/logrotate/nginx $OSAL_PATH_LOGROTATE_CONF_D/
  50. mkdir -p $OSAL_PATH_NGINX_CONF_D/domains
  51. mkdir -p $OSAL_PATH_NGINX_CONF/modules-enabled
  52. mkdir -p /var/log/nginx/domains
  53. # Update dns servers in nginx.conf
  54. dns_resolver=$(cat /etc/resolv.conf | grep -i '^nameserver' | cut -d ' ' -f2 | tr '\r\n' ' ' | xargs)
  55. for ip in $dns_resolver; do
  56. if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
  57. resolver="$ip $resolver"
  58. fi
  59. done
  60. if [ ! -z "$resolver" ]; then
  61. sed -i "s/1.0.0.1 1.1.1.1/$resolver/g" $OSAL_PATH_NGINX_CONF/nginx.conf
  62. fi
  63. osal_kv_write $HESTIA_CONF_MODULES/nginx.conf 'service_name' $OSAL_SERVICE_NGINX
  64. }