install.inc 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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 1
  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. if [ "$OS_BASE" = 'debian' ]; then
  12. # Add Nginx repo
  13. echo "deb [arch=amd64] http://nginx.org/packages/mainline/$VERSION/ $codename nginx" > $apt/nginx.list
  14. wget --quiet http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key
  15. APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add /tmp/nginx_signing.key > /dev/null 2>&1
  16. elif [ "$OS_BASE" = 'rhel' ]; then
  17. cat > "/etc/yum.repos.d/nginx.repo" <<EOL
  18. # This file is auto generated. Do not edit this file. Changes will be overwriten
  19. # Run 'hestia module nginx info' or visit http://hestiacp.com for more info.
  20. [nginx-stable]
  21. name=nginx stable repo
  22. baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
  23. gpgcheck=1
  24. enabled=1
  25. gpgkey=https://nginx.org/keys/nginx_signing.key
  26. module_hotfixes=true
  27. EOL
  28. fi
  29. osal_package_preinstall
  30. osal_package_install $OSAL_PKG_NGINX
  31. hestia_safe_rm $OSAL_PATH_NGINX_CONF_D/*.conf
  32. cp -f $HESTIA_INSTALL_DIR/nginx/nginx.conf $OSAL_PATH_NGINX_CONF/
  33. cp -f $HESTIA_INSTALL_DIR/nginx/status.conf $OSAL_PATH_NGINX_CONF_D/
  34. #FIXME: move the following to *admin install
  35. #cp -f $HESTIA_INSTALL_DIR/nginx/phpmyadmin.inc $OSAL_PATH_NGINX_CONF_D/
  36. #cp -f $HESTIA_INSTALL_DIR/nginx/phppgadmin.inc $OSAL_PATH_NGINX_CONF_D/
  37. cp -f $HESTIA_INSTALL_DIR/logrotate/nginx $OSAL_PATH_LOGROTATE_CONF_D/
  38. mkdir -p $OSAL_PATH_NGINX_CONF_D/domains
  39. mkdir -p $OSAL_PATH_NGINX_CONF/modules-enabled
  40. mkdir -p /var/log/nginx/domains
  41. # Update dns servers in nginx.conf
  42. dns_resolver=$(cat /etc/resolv.conf | grep -i '^nameserver' | cut -d ' ' -f2 | tr '\r\n' ' ' | xargs)
  43. for ip in $dns_resolver; do
  44. if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
  45. resolver="$ip $resolver"
  46. fi
  47. done
  48. if [ ! -z "$resolver" ]; then
  49. sed -i "s/1.0.0.1 1.1.1.1/$resolver/g" $OSAL_PATH_NGINX_CONF/nginx.conf
  50. fi
  51. osal_kv_write $HESTIA_CONF_MODULES/nginx.conf 'installed' '1'
  52. osal_kv_write $HESTIA_CONF_MODULES/nginx.conf 'description' 'Hestia Nginx module'
  53. osal_kv_write $HESTIA_CONF_MODULES/nginx.conf 'enabled' '1'
  54. osal_kv_write $HESTIA_CONF_MODULES/nginx.conf 'variant' 'nginx'
  55. osal_kv_write $HESTIA_CONF_MODULES/nginx.conf 'version' '1'
  56. osal_kv_write $HESTIA_CONF_MODULES/nginx.conf 'service_name' $OSAL_PKG_NGINX
  57. # Setup web module (depending on Nginx and/or Apache config)
  58. $BIN/hestia module web setup
  59. }