integrate.inc 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. #!/bin/bash
  2. hestia_package_web-server_integrate() {
  3. source $HESTIA/bin/module/func.inc
  4. osal_service_stop $OSAL_SERVICE_NGINX > /dev/null 2>&1
  5. osal_service_stop $OSAL_SERVICE_APACHE > /dev/null 2>&1
  6. local apache_installed=$(hestia_module_isinstalled apache && echo 1)
  7. local nginx_installed=$(hestia_module_isinstalled nginx && echo 1)
  8. if [ "$apache_installed" ] && [ ! "$nginx_installed" ] ; then
  9. echo "Setup Web module (Apache only)..."
  10. WEB_SYSTEM=$OSAL_PKG_APACHE
  11. WEB_RGROUPS=$OSAL_USER_APACHE_DATA
  12. WEB_PORT='80'
  13. WEB_SSL_PORT='443'
  14. WEB_SSL='mod_ssl'
  15. PROXY_SYSTEM=''
  16. PROXY_PORT=''
  17. PROXY_SSL_PORT=''
  18. osal_kv_write $HESTIA_CONF_MODULES/apache.conf 'service_name' $OSAL_SERVICE_APACHE
  19. elif [ "$apache_installed" ] && [ "$nginx_installed" ] ; then
  20. echo "Setup Web module (Apache + Nginx)..."
  21. WEB_SYSTEM=$OSAL_PKG_APACHE
  22. WEB_RGROUPS=$OSAL_USER_APACHE_DATA
  23. WEB_PORT='8080'
  24. WEB_SSL_PORT='8443'
  25. WEB_SSL='mod_ssl'
  26. PROXY_SYSTEM='nginx'
  27. PROXY_PORT='80'
  28. PROXY_SSL_PORT='443'
  29. osal_kv_write $HESTIA_CONF_MODULES/apache.conf 'service_name' $OSAL_SERVICE_APACHE
  30. osal_kv_write $HESTIA_CONF_MODULES/nginx.conf 'service_name' $OSAL_SERVICE_NGINX
  31. elif [ ! "$apache_installed" ] && [ "$nginx_installed" ]; then
  32. echo "Setup Web module (Nginx only)..."
  33. WEB_SYSTEM='nginx'
  34. WEB_RGROUPS=''
  35. WEB_PORT='80'
  36. WEB_SSL_PORT='443'
  37. WEB_SSL='openssl'
  38. PROXY_SYSTEM=''
  39. PROXY_PORT=''
  40. PROXY_SSL_PORT=''
  41. osal_kv_write $HESTIA_CONF_MODULES/nginx.conf 'service_name' $OSAL_SERVICE_NGINX
  42. else
  43. echo "Setup web module (no web server)..."
  44. WEB_SYSTEM=''
  45. WEB_RGROUPS=''
  46. WEB_PORT='80'
  47. WEB_SSL_PORT='443'
  48. WEB_SSL='openssl'
  49. PROXY_SYSTEM=''
  50. PROXY_PORT=''
  51. PROXY_SSL_PORT=''
  52. fi
  53. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SYSTEM' $WEB_SYSTEM
  54. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_RGROUPS' $WEB_RGROUPS
  55. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_PORT' $WEB_PORT
  56. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SSL_PORT' $WEB_SSL_PORT
  57. osal_kv_write $HESTIA/conf/hestia.conf 'WEB_SSL' $WEB_SSL
  58. osal_kv_write $HESTIA/conf/hestia.conf 'PROXY_SYSTEM' $PROXY_SYSTEM
  59. osal_kv_write $HESTIA/conf/hestia.conf 'PROXY_PORT' $PROXY_PORT
  60. osal_kv_write $HESTIA/conf/hestia.conf 'PROXY_SSL_PORT' $PROXY_SSL_PORT
  61. # *** PHP (CLI)
  62. if hestia_module_isinstalled 'php'; then
  63. # Update default CLI version
  64. if [ "$OS_BASE" = 'debian' ]; then
  65. update-alternatives --set php /usr/bin/php$PHP_DEFAULT_VERSION > /dev/null 2>&1
  66. elif [ "$OS_BASE" == 'rhel' ]; then
  67. local php_withoutdot=${PHP_DEFAULT_VERSION//.}
  68. ln -sf /usr/bin/php$php_withoutdot /usr/bin/php
  69. fi
  70. fi
  71. # *** PHP (FPM)
  72. if hestia_module_isinstalled 'php-fpm'; then
  73. echo "Integrating PHP..."
  74. source $HESTIA/bin/module/php/func.inc
  75. for php_version in $PHP_SUPPORTED_VERSIONS; do
  76. local php_withoutdot=${php_version//.}
  77. php_version_present=$(osal_kv_read $HESTIA_CONF_MODULES/php-fpm.conf "php${php_withoutdot}_present" 0)
  78. if [ "$php_version_present" == "1" ]; then
  79. echo " Enabling PHP (FPM) $php_version"
  80. local php_prefix=$(osal_php_package_prefix $php_version)
  81. osal_service_enable $php_prefix-fpm
  82. osal_service_restart $php_prefix-fpm
  83. fi
  84. done
  85. if hestia_module_isinstalled 'apache'; then
  86. # Enable mod_ruid/mpm_itk or mpm_event
  87. # Disable prefork and php, enable event
  88. osal_apache_module_disable php$fpm_v > /dev/null 2>&1
  89. osal_apache_module_disable mpm_prefork > /dev/null 2>&1
  90. osal_apache_module_enable mpm_event > /dev/null 2>&1
  91. cp -f $HESTIA_INSTALL_DIR/$WEB_SYSTEM/hestia-event.conf $OSAL_PATH_APACHE_CONF_D/
  92. fi
  93. fi
  94. # *** Rebuild IPs and domains
  95. if [ "$apache_installed" ] || [ "$nginx_installed" ] ; then
  96. # Install default success page
  97. mkdir -p /var/www/html
  98. mkdir -p /var/www/document_errors
  99. if [ ! -f /var/www/html/index.html ]; then
  100. cp -rf $HESTIA_INSTALL_DIR/templates/web/unassigned/index.html /var/www/html/
  101. cp -rf $HESTIA_INSTALL_DIR/templates/web/skel/document_errors/* /var/www/document_errors/
  102. fi
  103. hestia package web-server setup-ips > /dev/null 2>&1
  104. # Rebuild domains
  105. echo "Rebuilding web domains..."
  106. for user in $($HESTIA/bin/v-list-sys-users plain); do
  107. $BIN/v-rebuild-web-domains $user 'no' > /dev/null 2>&1
  108. done
  109. fi
  110. # phpMyAdmin
  111. if hestia_module_isinstalled 'phpmyadmin'; then
  112. echo "Integrating phpMyAdmin..."
  113. # FIXME: use Nginx-web config when using Nginx proxy (ignore apache in that case)
  114. if [ "$WEB_SYSTEM" = 'nginx' ]; then
  115. # Setup Nginx config
  116. cp -f $HESTIA_INSTALL_DIR/nginx/phpmyadmin.inc $OSAL_PATH_NGINX_CONF_D/
  117. sed -i "s|%pma_alias%|$DB_PMA_ALIAS|g" $OSAL_PATH_NGINX_CONF_D/phpmyadmin.inc
  118. # Remove apache support
  119. hestia_safe_rm $OSAL_PATH_APACHE_CONF_D/phpmyadmin.conf
  120. elif [ "$WEB_SYSTEM" = 'apache2' ] || [ "$WEB_SYSTEM" = 'httpd' ]; then
  121. # Setup Apache config
  122. cp -f $HESTIA_INSTALL_DIR/pma/apache.conf /etc/phpmyadmin/
  123. sed -i "s|%pma_alias%|$DB_PMA_ALIAS|g" /etc/phpmyadmin/apache.conf
  124. ln -sf /etc/phpmyadmin/apache.conf $OSAL_PATH_APACHE_CONF_D/phpmyadmin.conf
  125. # Remove Nginx support
  126. hestia_safe_rm $OSAL_PATH_NGINX_CONF_D/phpmyadmin.inc
  127. fi
  128. fi
  129. # Start web server and proxy
  130. if [ "$apache_installed" ]; then
  131. osal_service_enable $OSAL_SERVICE_APACHE
  132. osal_service_start $OSAL_SERVICE_APACHE
  133. fi
  134. if [ "$nginx_installed" ]; then
  135. osal_service_enable $OSAL_SERVICE_NGINX
  136. osal_service_start $OSAL_SERVICE_NGINX
  137. fi
  138. }