install.inc 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/bash
  2. hestia_module_apache_install() {
  3. source $HESTIA/bin/module/func.inc
  4. module_installed=$(hestia_module_isinstalled apache)
  5. if [ "$module_installed" ] && [ ! "$param_force" ]; then
  6. echo "Apache module is already installed. See 'hestia module info apache'."
  7. exit 1
  8. fi
  9. echo "Installing Apache module..."
  10. osal_service_stop $OSAL_SERVICE_APACHE > /dev/null 2>&1
  11. hestia_config_backup 'apache-install' $OSAL_PATH_APACHE_CONF $OSAL_PATH_APACHE_CONF_D
  12. osal_package_preinstall
  13. osal_package_install $OSAL_PKG_APACHE $OSAL_PKG_APACHE_EXTRA $OSAL_PKG_APACHE_MOD_RUID2
  14. mkdir -p $OSAL_PATH_APACHE_CONF_D
  15. mkdir -p $OSAL_PATH_APACHE_CONF_D/domains
  16. # Enable/disable required modules
  17. osal_apache_module_enable rewrite > /dev/null 2>&1
  18. osal_apache_module_enable suexec > /dev/null 2>&1
  19. osal_apache_module_enable ssl > /dev/null 2>&1
  20. osal_apache_module_enable actions > /dev/null 2>&1
  21. osal_apache_module_disable status > /dev/null 2>&1
  22. cp -f $HESTIA_INSTALL_DIR/$OSAL_PKG_APACHE/${OSAL_PKG_APACHE}.conf $OSAL_PATH_APACHE_CONF/
  23. cp -f $HESTIA_INSTALL_DIR/logrotate/${OSAL_PKG_APACHE} $OSAL_PATH_LOGROTATE_CONF_D/
  24. if [ "$OS_BASE" = 'debian' ]; then
  25. echo "# Powered by Hestia" > $OSAL_PATH_APACHE_CONF/sites-available/default
  26. echo "# Powered by Hestia" > $OSAL_PATH_APACHE_CONF/sites-available/default-ssl
  27. echo "# Powered by Hestia" > $OSAL_PATH_APACHE_CONF/ports.conf
  28. echo -e "/home\npublic_html/cgi-bin" > /etc/apache2/suexec/www-data
  29. # Copy configuration files
  30. # FIXME: why don't we just overwrite status.conf?
  31. a2dismod status > /dev/null 2>&1
  32. mv -f $HESTIA_INSTALL_DIR/$OSAL_PKG_APACHE/status.conf $OSAL_PATH_APACHE_CONF/mods-available/hestia-status.conf
  33. mv -f /etc/apache2/mods-available/status.load $OSAL_PATH_APACHE_CONF/mods-available/hestia-status.load
  34. a2enmod hestia-status > /dev/null 2>&1
  35. # Prevent remote access to server-status page
  36. sed -i '/Allow from all/d' $OSAL_PATH_APACHE_CONF/mods-available/hestia-status.conf
  37. elif [ "$OS_BASE" = 'rhel' ]; then
  38. echo "# Powered by Hestia" > $OSAL_PATH_APACHE_CONF_D/welcome.conf
  39. echo "# Powered by Hestia" > $OSAL_PATH_APACHE_CONF_D/userdir.conf
  40. # Copy configuration files
  41. cp -f $HESTIA_INSTALL_DIR/$OSAL_PKG_APACHE/status.conf $OSAL_PATH_APACHE_CONF_D/hestia-status.conf
  42. osal_apache_module_enable status > /dev/null 2>&1
  43. fi
  44. touch /var/log/$OSAL_PKG_APACHE/access.log /var/log/$OSAL_PKG_APACHE/error.log
  45. mkdir -p /var/log/$OSAL_PKG_APACHE/domains
  46. chmod a+x /var/log/$OSAL_PKG_APACHE
  47. chmod 640 /var/log/$OSAL_PKG_APACHE/access.log /var/log/$OSAL_PKG_APACHE/error.log
  48. chmod 751 /var/log/$OSAL_PKG_APACHE/domains
  49. # Mitigation for some Debian-only scripts
  50. ln -s /etc/httpd/conf.modules.d /etc/httpd/mods-enabled
  51. osal_kv_write $HESTIA_CONF_MODULES/apache.conf 'installed' '1'
  52. osal_kv_write $HESTIA_CONF_MODULES/apache.conf 'description' 'Hestia Apache module'
  53. osal_kv_write $HESTIA_CONF_MODULES/apache.conf 'enabled' '1'
  54. osal_kv_write $HESTIA_CONF_MODULES/apache.conf 'variant' 'apache'
  55. osal_kv_write $HESTIA_CONF_MODULES/apache.conf 'version' '1'
  56. osal_kv_write $HESTIA_CONF_MODULES/apache.conf 'service_name' $OSAL_PKG_APACHE
  57. # Setup web module (depending on Nginx and/or Apache config)
  58. $BIN/hestia module web setup
  59. }