install.inc 2.8 KB

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