integrate.inc 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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 (FPM and CLI)
  62. if hestia_module_isinstalled 'php'; then
  63. echo "Integrating PHP..."
  64. source $HESTIA/bin/module/php/func.inc
  65. for php_version in $PHP_SUPPORTED_VERSIONS; do
  66. local php_withoutdot=${php_version//.}
  67. php_version_present=$(osal_kv_read $HESTIA_CONF_MODULES/php.conf "php${php_withoutdot}_present" 0)
  68. if [ "$php_version_present" == "1" ]; then
  69. echo " Enabling PHP $php_version"
  70. local php_prefix=$(osal_php_package_prefix $php_version)
  71. osal_service_enable $php_prefix-fpm
  72. osal_service_restart $php_prefix-fpm
  73. fi
  74. done
  75. if hestia_module_isinstalled 'apache'; then
  76. # Enable mod_ruid/mpm_itk or mpm_event
  77. # Disable prefork and php, enable event
  78. osal_apache_module_disable php$fpm_v > /dev/null 2>&1
  79. osal_apache_module_disable mpm_prefork > /dev/null 2>&1
  80. osal_apache_module_enable mpm_event > /dev/null 2>&1
  81. cp -f $HESTIA_INSTALL_DIR/$WEB_SYSTEM/hestia-event.conf $OSAL_PATH_APACHE_CONF_D/
  82. fi
  83. # Update default CLI version
  84. if [ "$OS_BASE" = 'debian' ]; then
  85. update-alternatives --set php /usr/bin/php$PHP_DEFAULT_VERSION > /dev/null 2>&1
  86. elif [ "$OS_BASE" == 'rhel' ]; then
  87. local php_withoutdot=${PHP_DEFAULT_VERSION//.}
  88. ln -sf /usr/bin/php$php_withoutdot /usr/bin/php
  89. fi
  90. fi
  91. # *** Rebuild IPs and domains
  92. if [ "$apache_installed" ] || [ "$nginx_installed" ] ; then
  93. # Install default success page
  94. mkdir -p /var/www/html
  95. mkdir -p /var/www/document_errors
  96. if [ ! -f /var/www/html/index.html ]; then
  97. cp -rf $HESTIA_INSTALL_DIR/templates/web/unassigned/index.html /var/www/html/
  98. cp -rf $HESTIA_INSTALL_DIR/templates/web/skel/document_errors/* /var/www/document_errors/
  99. fi
  100. hestia package web-server setup-ips
  101. # Rebuild domains
  102. echo "Rebuilding web domains..."
  103. for user in $($HESTIA/bin/v-list-sys-users plain); do
  104. $BIN/v-rebuild-web-domains $user 'no' > /dev/null 2>&1
  105. done
  106. fi
  107. # phpMyAdmin
  108. if hestia_module_isinstalled 'phpmyadmin'; then
  109. echo "Integrating phpMyAdmin..."
  110. # FIXME: use Nginx-web config when using Nginx proxy (ignore apache in that case)
  111. if [ "$WEB_SYSTEM" = 'nginx' ]; then
  112. # Setup Nginx config
  113. cp -f $HESTIA_INSTALL_DIR/nginx/phpmyadmin.inc $OSAL_PATH_NGINX_CONF_D/
  114. sed -i "s|%pma_alias%|$DB_PMA_ALIAS|g" $OSAL_PATH_NGINX_CONF_D/phpmyadmin.inc
  115. # Remove apache support
  116. hestia_safe_rm $OSAL_PATH_APACHE_CONF_D/phpmyadmin.conf
  117. elif [ "$WEB_SYSTEM" = 'apache2' ] || [ "$WEB_SYSTEM" = 'httpd' ]; then
  118. # Setup Apache config
  119. cp -f $HESTIA_INSTALL_DIR/pma/apache.conf /etc/phpmyadmin/
  120. sed -i "s|%pma_alias%|$DB_PMA_ALIAS|g" /etc/phpmyadmin/apache.conf
  121. ln -sf /etc/phpmyadmin/apache.conf $OSAL_PATH_APACHE_CONF_D/phpmyadmin.conf
  122. # Remove Nginx support
  123. hestia_safe_rm $OSAL_PATH_NGINX_CONF_D/phpmyadmin.inc
  124. fi
  125. fi
  126. # Start web server and proxy
  127. if [ "$apache_installed" ]; then
  128. osal_service_enable $OSAL_SERVICE_APACHE
  129. osal_service_start $OSAL_SERVICE_APACHE
  130. fi
  131. if [ "$nginx_installed" ]; then
  132. osal_service_enable $OSAL_SERVICE_NGINX
  133. osal_service_start $OSAL_SERVICE_NGINX
  134. fi
  135. }