setup.inc 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #!/bin/bash
  2. hestia_module_web_setup() {
  3. source $HESTIA/bin/module/func.inc
  4. local apache_installed=$(hestia_module_isinstalled apache && echo 1)
  5. local nginx_installed=$(hestia_module_isinstalled nginx && echo 1)
  6. if [ "$apache_installed" ] && [ ! "$nginx_installed" ] ; then
  7. echo "Setup Web module (Apache only)..."
  8. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SYSTEM' 'httpd'
  9. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_RGROUPS' $OSAL_USER_APACHE_DATA
  10. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_PORT' '80'
  11. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SSL_PORT' '443'
  12. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SSL' 'mod_ssl'
  13. osal_kv_delete $HESTIA/conf/hestia.conf 'PROXY_SYSTEM'
  14. osal_kv_delete $HESTIA/conf/hestia.conf 'PROXY_PORT'
  15. osal_kv_delete $HESTIA/conf/hestia.conf 'PROXY_SSL_PORT'
  16. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'installed' '1'
  17. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'enabled' '1'
  18. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'variant' 'apache2'
  19. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'version' '1'
  20. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'service_name' $OSAL_SERVICE_APACHE
  21. elif [ "$apache_installed" ] && [ "$nginx_installed" ] ; then
  22. echo "Setup Web module (Apache + Nginx)..."
  23. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SYSTEM' 'httpd'
  24. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_RGROUPS' $OSAL_USER_APACHE_DATA
  25. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_PORT' '8080'
  26. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SSL_PORT' '8443'
  27. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SSL' 'mod_ssl'
  28. osal_kv_write $HESTIA/conf/hestia.conf 'PROXY_SYSTEM' 'nginx'
  29. osal_kv_write $HESTIA/conf/hestia.conf 'PROXY_PORT' '80'
  30. osal_kv_write $HESTIA/conf/hestia.conf 'PROXY_SSL_PORT' '443'
  31. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'installed' '1'
  32. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'enabled' '1'
  33. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'variant' 'apache2+nginx'
  34. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'version' '1'
  35. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'service_name' "$OSAL_SERVICE_APACHE $OSAL_SERVICE_NGINX"
  36. elif [ ! "$apache_installed" ] && [ "$nginx_installed" ]; then
  37. echo "Setup Web module (Nginx only)..."
  38. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SYSTEM' 'nginx'
  39. osal_kv_delete $HESTIA/conf/hestia.conf 'WEB_RGROUPS'
  40. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_PORT' '80'
  41. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SSL_PORT' '443'
  42. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SSL' 'openssl'
  43. osal_kv_delete $HESTIA/conf/hestia.conf 'PROXY_SYSTEM'
  44. osal_kv_delete $HESTIA/conf/hestia.conf 'PROXY_PORT'
  45. osal_kv_delete $HESTIA/conf/hestia.conf 'PROXY_SSL_PORT'
  46. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'installed' '1'
  47. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'enabled' '1'
  48. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'variant' 'nginx'
  49. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'version' '1'
  50. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'service_name' $OSAL_SERVICE_NGINX
  51. else
  52. echo "Remove Web module setup..."
  53. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SYSTEM' ''
  54. osal_kv_delete $HESTIA/conf/hestia.conf 'WEB_RGROUPS'
  55. osal_kv_delete $HESTIA/conf/hestia.conf 'WEB_PORT' '80'
  56. osal_kv_delete $HESTIA/conf/hestia.conf 'WEB_SSL_PORT' '443'
  57. osal_kv_delete $HESTIA/conf/hestia.conf 'WEB_SSL' 'openssl'
  58. osal_kv_delete $HESTIA/conf/hestia.conf 'PROXY_SYSTEM'
  59. osal_kv_delete $HESTIA/conf/hestia.conf 'PROXY_PORT'
  60. osal_kv_delete $HESTIA/conf/hestia.conf 'PROXY_SSL_PORT'
  61. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'installed' '0'
  62. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'enabled' '0'
  63. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'variant' ''
  64. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'version' ''
  65. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'service_name' ''
  66. fi
  67. osal_kv_write $HESTIA_CONF_MODULES/web.conf 'description' 'Hestia Web module'
  68. if [ "$apache_installed" ] || [ "$nginx_installed" ] ; then
  69. $BIN/hestia module web setup-ips
  70. # FIXME: setup PHP support
  71. if [ "$apache_installed" ]; then
  72. local php_variant=$(hestia_module_variant_installed 'php')
  73. # Enable mod_ruid/mpm_itk or mpm_event
  74. if [ "$php_variant" = 'php-fpm' ]; then
  75. # Disable prefork and php, enable event
  76. osal_apache_module_disable php$fpm_v > /dev/null 2>&1
  77. osal_apache_module_disable mpm_prefork > /dev/null 2>&1
  78. osal_apache_module_enable mpm_event > /dev/null 2>&1
  79. cp -f $HESTIA_INSTALL_DIR/apache2/hestia-event.conf /etc/apache2/conf.d/
  80. else
  81. # FIXME: enable only if needed
  82. osal_apache_module_enable ruid2 > /dev/null 2>&1
  83. fi
  84. fi
  85. # Rebuild domains
  86. for user in $($HESTIA/bin/v-list-sys-users plain); do
  87. echo "Rebuilding web domains for user $user"
  88. $BIN/v-rebuild-web-domains $user 'no' > /dev/null 2>&1
  89. done
  90. osal_service_stop $OSAL_SERVICE_NGINX > /dev/null 2>&1
  91. osal_service_stop $OSAL_SERVICE_APACHE > /dev/null 2>&1
  92. if [ "$apache_installed" ]; then
  93. osal_service_enable $OSAL_SERVICE_APACHE
  94. osal_service_start $OSAL_SERVICE_APACHE
  95. fi
  96. if [ "$nginx_installed" ]; then
  97. osal_service_enable $OSAL_SERVICE_NGINX
  98. osal_service_start $OSAL_SERVICE_NGINX
  99. fi
  100. check_result $? "Nginx start failed"
  101. fi
  102. }