osal_debian_based.sh 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. #!/bin/sh
  2. # Debian / Ubuntu
  3. #-------------------------------------------------------------------#
  4. # Variables #
  5. #-------------------------------------------------------------------#
  6. # Apache
  7. OSAL_SERVICE_APACHE=apache2
  8. OSAL_USER_APACHE_DATA=www-data
  9. OSAL_PKG_APACHE=apache2
  10. OSAL_PKG_APACHE_EXTRA=
  11. OSAL_PKG_APACHE_MOD_RUID2=libapache2-mod-ruid2
  12. OSAL_PATH_APACHE_CONF=/etc/apache2
  13. OSAL_PATH_APACHE_CONF_D=/etc/apache2/conf.d
  14. OSAL_PATH_APACHE_MODS_ENABLED=/etc/apache2/mods-enabled
  15. OSAL_PATH_APACHE_MODS_AVAILABLE=/etc/apache2/mods-available
  16. # Awstats
  17. OSAL_PKG_AWSTATS=awstats
  18. OSAL_PATH_AWSTATS_CONF=/etc/awstats
  19. # Bind
  20. OSAL_SERVICE_BIND=bind9
  21. OSAL_USER_BIND=bind
  22. OSAL_PKG_BIND=bind9
  23. OSAL_PATH_BIND_DATA=/var/cache/bind
  24. # ClamAV
  25. OSAL_SERVICE_CLAMAV=clamav-daemon
  26. OSAL_USER_CLAMAV=clamav
  27. OSAL_PKG_CLAMAV=clamav-daemon
  28. OSAL_PATH_CLAMAV_CONF=/etc/clamav/clamd.conf
  29. OSAL_PATH_CLAMAV_CONF_D=/etc/clamd.d
  30. # Cron
  31. OSAL_SERVICE_CRON=cron
  32. # Dovecot
  33. OSAL_SERVICE_DOVECOT=dovecot
  34. OSAL_PKG_DOVECOT='dovecot-imapd dovecot-pop3d'
  35. OSAL_PATH_DOVECOT_CONF=/etc/dovecot
  36. # Exim
  37. OSAL_SERVICE_EXIM=exim4
  38. OSAL_USER_EXIM=Debian-exim
  39. OSAL_PKG_EXIM='exim4 exim4-daemon-heavy'
  40. OSAL_FILENAME_EXIM_CONF="exim4.conf.template"
  41. OSAL_DIR_EXIM_CONF=/etc/exim4
  42. OSAL_PATH_EXIM_CONF="${OSAL_DIR_EXIM_CONF}/${OSAL_FILENAME_EXIM_CONF}"
  43. # MariaDB
  44. OSAL_PKG_MARIADB=mariadb
  45. OSAL_SERVICE_MARIADB=mariadb
  46. OSAL_DIR_MARIADB_CONF=/etc/mysql
  47. OSAL_DIR_MARIADB_CONF_D=/etc/mysql/mariadb.conf.d
  48. OSAL_FILENAME_MARIADB_CONF=my.cnf
  49. OSAL_PATH_MARIADB_CONF="$OSAL_DIR_MARIADB_CONF/$OSAL_FILENAME_MARIADB_CONF"
  50. OSAL_PATH_MARIADB_DATA=/var/lib/mysql
  51. # Nginx
  52. OSAL_SERVICE_NGINX=nginx
  53. OSAL_USER_NGINX=nginx
  54. OSAL_PKG_NGINX=nginx
  55. OSAL_PATH_NGINX_CONF=/etc/nginx
  56. OSAL_PATH_NGINX_CONF_D=/etc/nginx/conf.d
  57. # PHP
  58. PHP_DIR_POOL_D_BASE=/etc/php
  59. # phpMyAdmin
  60. OSAL_PKG_PHPMYADMIN=phpmyadmin
  61. # RoundCube
  62. OSAL_PKG_ROUNDCUBE=roundcube
  63. OSAL_PATH_ROUNDCUBE_INSTALL_MYSQL=/usr/share/dbconfig-common/data/roundcubemail/install/mysql
  64. # SpamAssassin
  65. OSAL_SERVICE_SPAMASSASSIN=spamassassin
  66. OSAL_PKG_SPAMASSASSIN=spamassassin
  67. OSAL_PATH_SPAMASSASSIN_CONF=/etc/spamassassin
  68. # vsftp
  69. OSAL_PATH_VSFTPD_CONF=/etc/vsftpd.conf
  70. # Misc. users
  71. OSAL_USER_NOBODY=nobody
  72. OSAL_USER_NOGROUP=nogroup
  73. # Misc. commands
  74. OSAL_CMD_PACKAGE_MANAGER=/usr/bin/apt-get
  75. # Misc. paths
  76. OSAL_PATH_LOGROTATE_CONF_D=/etc/logrotate.d
  77. OSAL_PATH_RUN=/var/run
  78. #-------------------------------------------------------------------#
  79. # Functions #
  80. #-------------------------------------------------------------------#
  81. # osal_package_getversion 'package'
  82. osal_package_getversion() {
  83. dpkg-query --showformat='${Version}\n' --show $1 | cut -d"~" -f1
  84. }
  85. # OS function wrappers
  86. # package_preinstall
  87. osal_package_preinstall() {
  88. $OSAL_CMD_PACKAGE_MANAGER -qq update
  89. }
  90. # package_install 'package' 'package' ...
  91. osal_package_install() {
  92. [ "$HESTIA_DEBUG" ] && >&2 echo $OSAL_CMD_PACKAGE_MANAGER -y -qq install -o Dpkg::Options::="--force-confold" "$@"
  93. $OSAL_CMD_PACKAGE_MANAGER -y -qq install -o Dpkg::Options::="--force-confold" "$@"
  94. }
  95. # package_remoev 'package' 'package' ...
  96. osal_package_remove() {
  97. [ "$HESTIA_DEBUG" ] && >&2 echo $OSAL_CMD_PACKAGE_MANAGER -y -qq purge "$@"
  98. $OSAL_CMD_PACKAGE_MANAGER -y -qq purge "$@"
  99. }
  100. # Software-specific
  101. # apache_module_isenabled 'module_name' = (1|null)
  102. osal_apache_module_isenabled() {
  103. /usr/sbin/a2query -q -m $1 && echo 1
  104. }
  105. # apache_module_enable 'module_name'
  106. osal_apache_module_enable() {
  107. /usr/sbin/a2enmod $1
  108. }
  109. # apache_module_disable 'module_name'
  110. osal_apache_module_disable() {
  111. /usr/sbin/a2dismod $1
  112. }
  113. # multiphp_php_package_prefix 7.3 = 'php7.3'
  114. osal_php_package_prefix() {
  115. echo "php${1}"
  116. }
  117. # multiphp_fpm_isinstalled 7.3 = (1|null)
  118. osal_php_fpm_isinstalled() {
  119. [ -f "/etc/init.d/php$1-fpm" ] && echo 1
  120. }
  121. # multiphp_etc_folder '7.3' = /etc/php/7.3
  122. multiphp_etc_folder() {
  123. echo /etc/php/php${1}
  124. }
  125. # Returns PHP-FPM directory for a given PHP version
  126. # multiphp_fpm_pool_d '7.3' = /etc/php/7.3/fpm/pool.d
  127. osal_php_fpm_pool_d() {
  128. echo $PHP_DIR_POOL_D_BASE/$1/fpm/pool.d
  129. }