|  | @@ -9,16 +9,18 @@
 | 
	
		
			
				|  |  |  #################################################################
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  comprobarError() {
 | 
	
		
			
				|  |  | -	# comprobarError exitNum codeNum extraInfo
 | 
	
		
			
				|  |  | -	#	1xx: Servidor Web
 | 
	
		
			
				|  |  | -	#	2xx: Base de Datos
 | 
	
		
			
				|  |  | -	#	3xx: PHP
 | 
	
		
			
				|  |  | -	#	4xx: SSL/TLS
 | 
	
		
			
				|  |  | -	#	5xx: MediaWiki
 | 
	
		
			
				|  |  | -	#	6xx: Moodle
 | 
	
		
			
				|  |  | -	#	7xx: Actualizaciones automáticas
 | 
	
		
			
				|  |  | -	#	8xx: Dependencias
 | 
	
		
			
				|  |  | -	#	9xx: Servicios & Firewall
 | 
	
		
			
				|  |  | +# Permite comprobar si se ha producido un error y de serlo devuelve un código de error
 | 
	
		
			
				|  |  | +# comprobarError exitNum codeNum extraInfo
 | 
	
		
			
				|  |  | +#	1xx: Servidor Web
 | 
	
		
			
				|  |  | +#	2xx: Base de Datos
 | 
	
		
			
				|  |  | +#	3xx: PHP
 | 
	
		
			
				|  |  | +#	4xx: SSL/TLS
 | 
	
		
			
				|  |  | +#	5xx: MediaWiki
 | 
	
		
			
				|  |  | +#	6xx: Moodle
 | 
	
		
			
				|  |  | +#	7xx: Backup automático
 | 
	
		
			
				|  |  | +#	8xx: Dependencias
 | 
	
		
			
				|  |  | +#	9xx: Servicios & Firewall
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  |  	type="ERROR"
 | 
	
		
			
				|  |  |  	exitNum=$1
 | 
	
		
			
				|  |  |  	shift
 | 
	
	
		
			
				|  | @@ -276,6 +278,7 @@ comprobarError() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  OSInfo() {
 | 
	
		
			
				|  |  | +# Detecta el OS en el que se está ejecutando el programa, así como su versión
 | 
	
		
			
				|  |  |  	echo -en "Detectando SO..." >> $logFile
 | 
	
		
			
				|  |  |  	OS=$(uname -s)
 | 
	
		
			
				|  |  |  	if [ $OS = "Linux" ]; then
 | 
	
	
		
			
				|  | @@ -336,10 +339,13 @@ OSInfo() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  comprobarRoot() {
 | 
	
		
			
				|  |  | +# Comprueba si se está ejecutando con privilegios de root
 | 
	
		
			
				|  |  |  	comprobarError $(id -u) 800
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  comprobarDependencias() {
 | 
	
		
			
				|  |  | +# Comprueba si están instalados todos los programas necesarios.
 | 
	
		
			
				|  |  | +# En la mayoría de los casos, trata de instalarlos.
 | 
	
		
			
				|  |  |  	# Comprobamos whiptail
 | 
	
		
			
				|  |  |  	which whiptail > /dev/null 2>&1
 | 
	
		
			
				|  |  |  	comprobarError $? 801
 | 
	
	
		
			
				|  | @@ -465,6 +471,7 @@ comprobarDependencias() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  inicializarVariables() {
 | 
	
		
			
				|  |  | +# Inicializa las variables que necesitan de un estado previo
 | 
	
		
			
				|  |  |  	debianOS=false
 | 
	
		
			
				|  |  |  	rhelOS=false
 | 
	
		
			
				|  |  |  	apacheOn=false
 | 
	
	
		
			
				|  | @@ -477,7 +484,7 @@ inicializarVariables() {
 | 
	
		
			
				|  |  |  	mediaWikiOn=false
 | 
	
		
			
				|  |  |  	moodleOn=false
 | 
	
		
			
				|  |  |  	infoPHPOn=false
 | 
	
		
			
				|  |  | -	actualizacionesOn=false
 | 
	
		
			
				|  |  | +	backupOn=false
 | 
	
		
			
				|  |  |  	hostname=""
 | 
	
		
			
				|  |  |  	logFile="./."$(basename $0)".log"
 | 
	
		
			
				|  |  |  	maxUpload="100M"
 | 
	
	
		
			
				|  | @@ -496,6 +503,7 @@ inicializarVariables() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  instalacionExpress() {
 | 
	
		
			
				|  |  | +# Permite una instalación rápida, haciendo el menor número de preguntas
 | 
	
		
			
				|  |  |  	apacheOn=true
 | 
	
		
			
				|  |  |  	mariaDBOn=true
 | 
	
		
			
				|  |  |  	phpOn=true
 | 
	
	
		
			
				|  | @@ -503,7 +511,7 @@ instalacionExpress() {
 | 
	
		
			
				|  |  |  	letsEncryptOn=true
 | 
	
		
			
				|  |  |  	mediaWikiOn=true
 | 
	
		
			
				|  |  |  	moodleOn=true
 | 
	
		
			
				|  |  | -	actualizacionesOn=true
 | 
	
		
			
				|  |  | +	backupOn=true
 | 
	
		
			
				|  |  |  	# Preguntas mínimas
 | 
	
		
			
				|  |  |  	establecerFQDN
 | 
	
		
			
				|  |  |  	leerSQLPasswd
 | 
	
	
		
			
				|  | @@ -512,6 +520,7 @@ instalacionExpress() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  mostrarBienvenida() {
 | 
	
		
			
				|  |  | +# Pantalla de bienvenida y muestra SO y estado de los discos
 | 
	
		
			
				|  |  |  	ANCHO=$(tput cols)
 | 
	
		
			
				|  |  |  	ALTO=$(tput lines)
 | 
	
		
			
				|  |  |  	if [ $debianOS = false ] && [ $rhelOS = false ]; then
 | 
	
	
		
			
				|  | @@ -523,7 +532,8 @@ mostrarBienvenida() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  mostrarExpress() {
 | 
	
		
			
				|  |  | -	express=$(whiptail --title "INSTALACION EXPRESS" --radiolist "<ESPACIO>: seleccionar   <TAB>: cambiar   <FLECHAS>: moverse\n\nLa instalación express instala Apache2, MariaDB, PHP-7, Let's Encrypt, MediaWiki, Moodle y actualizaciones automáticas.\nSeleccione el tipo de instalación que desee:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) 2 \
 | 
	
		
			
				|  |  | +# Pantalla de elección entre instalación express o avanzada
 | 
	
		
			
				|  |  | +	express=$(whiptail --title "INSTALACION EXPRESS" --radiolist "<ESPACIO>: seleccionar   <TAB>: cambiar   <FLECHAS>: moverse\n\nLa instalación express instala Apache2, MariaDB, PHP-7, Let's Encrypt, MediaWiki, Moodle y backups automático.\nSeleccione el tipo de instalación que desee:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) 2 \
 | 
	
		
			
				|  |  |  	"Express" "Instalación rápida" ON \
 | 
	
		
			
				|  |  |  	"Avanzada" "Permite escoger todas las opciones disponibles" OFF \
 | 
	
		
			
				|  |  |  	--ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
 | 
	
	
		
			
				|  | @@ -544,6 +554,7 @@ mostrarExpress() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  mostrarAvanzada() {
 | 
	
		
			
				|  |  | +# Pantalla que permite instalar un servidor LAMP o LEMP
 | 
	
		
			
				|  |  |  	webServer=$(whiptail --title "INSTALACION AVANZADA" --radiolist "<ESPACIO>: seleccionar   <TAB>: cambiar   <FLECHAS>: moverse\n\nEscoge el tipo de Servidor Web que quieres instalar:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) 2 \
 | 
	
		
			
				|  |  |  	"LAMP" "GNU/Linux + Apache + MySQL/MariaDB + PHP-7" ON \
 | 
	
		
			
				|  |  |  	"LEMP" "GNU/Linux + Nginx + MySQL/MariaDB + PHP-7" OFF \
 | 
	
	
		
			
				|  | @@ -568,16 +579,18 @@ mostrarAvanzada() {
 | 
	
		
			
				|  |  |  	phpOn=true
 | 
	
		
			
				|  |  |  	establecerMaxUpload
 | 
	
		
			
				|  |  |  	mostrarComponentes
 | 
	
		
			
				|  |  | +	mostrarConfirmacion
 | 
	
		
			
				|  |  |  	unset webServer
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  mostrarComponentes() {
 | 
	
		
			
				|  |  | +# Pantalla de elección de componentes (SSL/TLS, MediaWiki, Moodle, InfoPHP y Backup)
 | 
	
		
			
				|  |  |  	componentes=$(whiptail --title "INSTALACION AVANZADA" --checklist "<ESPACIO>: seleccionar   <TAB>: cambiar   <FLECHAS>: moverse\n\nEscoge los componentes que quieres instalar:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) 5 \
 | 
	
		
			
				|  |  |  	"SSL/TLS" "Instalar certificados para activar HTTPS" ON \
 | 
	
		
			
				|  |  |  	"MediaWiki" "Instalar wiki con MediaWiki" ON \
 | 
	
		
			
				|  |  |  	"Moodle" "Instalar campus virtual con Moodle" ON \
 | 
	
		
			
				|  |  |  	"InfoPHP" "Instalar info.php (sólo para pruebas)" OFF \
 | 
	
		
			
				|  |  | -	"Actualizaciones" "Programar actualizaciones automáticas" ON \
 | 
	
		
			
				|  |  | +	"Backup" "Programar backups automáticos" ON \
 | 
	
		
			
				|  |  |  	--ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
 | 
	
		
			
				|  |  |  	comprobarError $? 1
 | 
	
		
			
				|  |  |  	# Mejora: autodetección de componentes ya instalados
 | 
	
	
		
			
				|  | @@ -598,8 +611,8 @@ mostrarComponentes() {
 | 
	
		
			
				|  |  |  			\"InfoPHP\")
 | 
	
		
			
				|  |  |  				infoPHPOn=true
 | 
	
		
			
				|  |  |  				;;
 | 
	
		
			
				|  |  | -			\"Actualizaciones\")
 | 
	
		
			
				|  |  | -				actualizacionesOn=true
 | 
	
		
			
				|  |  | +			\"Backup\")
 | 
	
		
			
				|  |  | +				BackupOn=true
 | 
	
		
			
				|  |  |  				;;
 | 
	
		
			
				|  |  |  			*)
 | 
	
		
			
				|  |  |  				comprobarError 1 3
 | 
	
	
		
			
				|  | @@ -610,6 +623,7 @@ mostrarComponentes() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  mostrarSSL() {
 | 
	
		
			
				|  |  | +# Pantalla que permite seleccionar el tipo de certificados
 | 
	
		
			
				|  |  |  	ssl=$(whiptail --title "INSTALACION SSL/TLS" --radiolist "<ESPACIO>: seleccionar   <TAB>: cambiar   <FLECHAS>: moverse\n\nEscoge el tipo de Certificado SSL/TLS que quieres instalar:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) 2 \
 | 
	
		
			
				|  |  |  	"LetsEncrypt" "Compatible con todos los navegadores" ON \
 | 
	
		
			
				|  |  |  	"Auto-Firmado" "Certificados auto-firmados (sólo para pruebas)" OFF \
 | 
	
	
		
			
				|  | @@ -633,6 +647,7 @@ mostrarSSL() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  mostrarMediaWiki(){
 | 
	
		
			
				|  |  | +# Pantalla que pregunta sobre las opciones necesarias para configurar MediaWiki
 | 
	
		
			
				|  |  |  	# Introducir nombre wiki
 | 
	
		
			
				|  |  |  	while [ -z "$nombreMediaWiki" ]; do
 | 
	
		
			
				|  |  |  		nombreMediaWiki=$(whiptail --title "CONFIGURACION MEDIAWIKI" --inputbox "Introduzca el nombre de la Wiki:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
 | 
	
	
		
			
				|  | @@ -677,6 +692,7 @@ mostrarMediaWiki(){
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  mostrarMoodle() {
 | 
	
		
			
				|  |  | +# Pantalla que pregunta sobre las opciones necesarias para configurar Moodle
 | 
	
		
			
				|  |  |  	# Introducir Nombre Moodle
 | 
	
		
			
				|  |  |  	while [ -z "$nombreMoodle" ]; do
 | 
	
		
			
				|  |  |  		nombreMoodle=$(whiptail --title "CONFIGURACION MOODLE" --inputbox "Introduzca el NOMBRE COMPLETO del campus virtual.\nPor ejemplo: 'Campus Virtual Ejemplo'." $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
 | 
	
	
		
			
				|  | @@ -725,7 +741,14 @@ mostrarMoodle() {
 | 
	
		
			
				|  |  |  	unset control error passwdMoodle2 dominio cont serverName aliasMoodle
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +mostrarConfirmacion() {
 | 
	
		
			
				|  |  | +# Pantalla que presenta una confirmación antes de realizar la instalación
 | 
	
		
			
				|  |  | +	whiptail --title "INSTALACION" --yesno "ESTA TODO LISTO PARA LA INSTALACION.\n¿DESEA CONTINUAR?" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --yes-button "Instalar" --no-button "Salir"
 | 
	
		
			
				|  |  | +	comprobarError $? 1
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  establecerFQDN() {
 | 
	
		
			
				|  |  | +# Configura el FQDN (dominio principal del servidor)
 | 
	
		
			
				|  |  |  	while [ -z "$hostname" ]; do
 | 
	
		
			
				|  |  |  		hostname=$(whiptail --title "FQDN" --inputbox "El nombre de dominio principal (FQDN) de este servidor es:\n"$(hostname)"\n\nQuieres cambiarlo por otro?" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --ok-button "Cambiar" --cancel-button "No Cambiar" 3>&1 1>&2 2>&3)
 | 
	
		
			
				|  |  |  		if [ $? -eq 0 ] && [ ! -z "$hostname" ]; then
 | 
	
	
		
			
				|  | @@ -738,6 +761,7 @@ establecerFQDN() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  instalarApache() {
 | 
	
		
			
				|  |  | +# Instala Apache2
 | 
	
		
			
				|  |  |  	if [ $debianOS = true ];then
 | 
	
		
			
				|  |  |  		webServerName="apache2"
 | 
	
		
			
				|  |  |  		result=$(apt-get -q -y install apache2 2>&1)
 | 
	
	
		
			
				|  | @@ -753,6 +777,7 @@ instalarApache() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  configurarApache() {
 | 
	
		
			
				|  |  | +# Configura Apache2
 | 
	
		
			
				|  |  |  	if [ $debianOS = true ];then
 | 
	
		
			
				|  |  |  		apacheConfFile="./etc/apache2/apache2.conf"
 | 
	
		
			
				|  |  |  		if [ ! -f $apacheConfFile ];then
 | 
	
	
		
			
				|  | @@ -801,6 +826,7 @@ configurarApache() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  instalarNginx() {
 | 
	
		
			
				|  |  | +# Instala Nginx
 | 
	
		
			
				|  |  |  	webServerName="nginx"
 | 
	
		
			
				|  |  |  	if [ $debianOS = true ];then
 | 
	
		
			
				|  |  |  		result=$(apt-get -q -y install nginx 2>&1)
 | 
	
	
		
			
				|  | @@ -818,8 +844,8 @@ instalarNginx() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  configurarNginx() {
 | 
	
		
			
				|  |  | -	# Configuramos Nginx
 | 
	
		
			
				|  |  | -	rm -Rf /etc/$webServerName/* 2>/dev/null
 | 
	
		
			
				|  |  | +# Configura Nginx
 | 
	
		
			
				|  |  | +	rm -Rf /etc/$webServerName/!(sites-available|sites-enabled) 2>/dev/null
 | 
	
		
			
				|  |  |  	comprobarError $? 107
 | 
	
		
			
				|  |  |  	nginxConfFile="./etc/$webServerName"
 | 
	
		
			
				|  |  |  	if [ -d "$nginxConfFile" ];then
 | 
	
	
		
			
				|  | @@ -850,8 +876,8 @@ configurarNginx() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  instalarVirtualHost() {
 | 
	
		
			
				|  |  | -	# Configuramos un Virtual Host para Apache o Nginx
 | 
	
		
			
				|  |  | -	# Uso: instalarVirtualHost $root $virtualHost $dominio $alias
 | 
	
		
			
				|  |  | +# Configuramos un Virtual Host para Apache o Nginx
 | 
	
		
			
				|  |  | +# Uso: instalarVirtualHost $root $virtualHost $dominio $alias
 | 
	
		
			
				|  |  |  	if [ $# -ge 3 ];then
 | 
	
		
			
				|  |  |  		rootVirtualHost=$(realpath $1)
 | 
	
		
			
				|  |  |  		shift
 | 
	
	
		
			
				|  | @@ -904,6 +930,7 @@ instalarVirtualHost() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  mostrarDatabase() {
 | 
	
		
			
				|  |  | +# Pantalla que permite escoger entre instalar MariaDB o MySQL
 | 
	
		
			
				|  |  |  	if [ $debianOS = true ]; then
 | 
	
		
			
				|  |  |  		database=$(whiptail --title "BASE DE DATOS" --radiolist "<ESPACIO>: seleccionar   <TAB>: cambiar   <FLECHAS>: moverse\n\nEscoge la base de datos que quieres usar:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) 2 \
 | 
	
		
			
				|  |  |  		"MariaDB" "Instalar la base de datos MariaDB (fork de MySQL)" ON \
 | 
	
	
		
			
				|  | @@ -934,6 +961,7 @@ mostrarDatabase() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  leerSQLPasswd() {
 | 
	
		
			
				|  |  | +# Pantalla para leer la contraseña para el usuario root de SQL
 | 
	
		
			
				|  |  |  	control=false
 | 
	
		
			
				|  |  |  	error=""
 | 
	
		
			
				|  |  |  	# Leemos la contreseña (stdin) y confirmamos
 | 
	
	
		
			
				|  | @@ -957,7 +985,7 @@ leerSQLPasswd() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  establecerSQLPasswd() {
 | 
	
		
			
				|  |  | -	# Establecemos SQL root passwd y securizamos BD (mysql_secure_installation)
 | 
	
		
			
				|  |  | +# Establecemos SQL root passwd y securizamos BD (mysql_secure_installation)
 | 
	
		
			
				|  |  |  	# Comprobamos si ya tiene una contraseña asignada
 | 
	
		
			
				|  |  |  	mysql -e "FLUSH PRIVILEGES" >> $logFile 2>&1
 | 
	
		
			
				|  |  |  	if [ $? -eq 0 ];then
 | 
	
	
		
			
				|  | @@ -991,6 +1019,7 @@ establecerSQLPasswd() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  instalarMySQL() {
 | 
	
		
			
				|  |  | +# Instala MySQL (sólo para Debian)
 | 
	
		
			
				|  |  |  	sqlServerName="mysql"
 | 
	
		
			
				|  |  |  	if [ $debianOS = true ];then
 | 
	
		
			
				|  |  |  		result=$(apt-get -q -y install mysql-server mysql-client 2>&1)
 | 
	
	
		
			
				|  | @@ -1007,6 +1036,7 @@ instalarMySQL() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  instalarMariaDB() {
 | 
	
		
			
				|  |  | +# Instala MariaDB
 | 
	
		
			
				|  |  |  	sqlServerName="mariadb"
 | 
	
		
			
				|  |  |  	if [ $debianOS = true ];then
 | 
	
		
			
				|  |  |  		result=$(apt-get -q -y install mariadb-server mariadb-client 2>&1)
 | 
	
	
		
			
				|  | @@ -1021,6 +1051,7 @@ instalarMariaDB() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  configurarSQL() {
 | 
	
		
			
				|  |  | +# Configura BarracudaFS en mysql (necesario para Moodle)
 | 
	
		
			
				|  |  |  	# Configura MariaDB o MySQL
 | 
	
		
			
				|  |  |  	if [ $mariaDBOn = true ] && [ $debianOS = true ];then
 | 
	
		
			
				|  |  |  		sqlConfFile="/etc/mysql/my.cnf"
 | 
	
	
		
			
				|  | @@ -1056,7 +1087,7 @@ configurarSQL() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  instalarPHP() {
 | 
	
		
			
				|  |  | -	# Instalamos PHP-7 de forma diferente si es junto a Apache o con Nginx
 | 
	
		
			
				|  |  | +# Instalamos PHP-7 y los módulos PHP que necesitan MediaWiki y Moodle
 | 
	
		
			
				|  |  |  	if [ $debianOS = true ];then
 | 
	
		
			
				|  |  |  		if [ $apacheOn = true ]; then
 | 
	
		
			
				|  |  |  			result=$(apt-get -q -y install php libapache2-mod-php php-mysql php-intl php-mbstring php-xml php-apcu php-gd php-curl php-zip php-soap php-xmlrpc 2>&1)
 | 
	
	
		
			
				|  | @@ -1112,7 +1143,7 @@ instalarPHP() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  configurarPHP() {
 | 
	
		
			
				|  |  | -	# Configura PHP para segurizarlo y establecer máximo de subida.
 | 
	
		
			
				|  |  | +# Configura PHP para segurizarlo y establecer máximo de subida.
 | 
	
		
			
				|  |  |  	if [ $debianOS = true ];then
 | 
	
		
			
				|  |  |  		phpConfFile="./etc/php/php.ini.debian"
 | 
	
		
			
				|  |  |  		phpDest="/etc/php/7.2/cli/php.ini"
 | 
	
	
		
			
				|  | @@ -1153,6 +1184,7 @@ configurarPHP() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  establecerMaxUpload() {
 | 
	
		
			
				|  |  | +# Pantalla para establecer el máximo de subida al servidor (vía PHP)
 | 
	
		
			
				|  |  |  	control=false
 | 
	
		
			
				|  |  |  	error=""
 | 
	
		
			
				|  |  |  	while [ $control = false ];do
 | 
	
	
		
			
				|  | @@ -1169,7 +1201,7 @@ establecerMaxUpload() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  instalarPHPInfo() {
 | 
	
		
			
				|  |  | -	# Instalar fichero php
 | 
	
		
			
				|  |  | +# Instalar fichero info.php y su VirtualHost
 | 
	
		
			
				|  |  |  	if [ ! -f /etc/$webServerName/sites-enabled/phpinfo.conf ];then
 | 
	
		
			
				|  |  |  		infoFile="./var/www/info.php"
 | 
	
		
			
				|  |  |  		if [ ! -f $infoFile ];then
 | 
	
	
		
			
				|  | @@ -1203,7 +1235,7 @@ instalarPHPInfo() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  habilitarServicio() {
 | 
	
		
			
				|  |  | -	# Arrancamos y habilitamos el servicio (con SystemD, Upstart o SystemV)
 | 
	
		
			
				|  |  | +# Arrancamos y habilitamos el servicio (con SystemD, Upstart o SystemV)
 | 
	
		
			
				|  |  |  	# Intentamos con systemctl (SystemD)
 | 
	
		
			
				|  |  |  	#echo -en "Habilitando Servicio '$1'" | tee -a $logFile
 | 
	
		
			
				|  |  |  	if [ $# -le 0 ];then
 | 
	
	
		
			
				|  | @@ -1251,7 +1283,7 @@ habilitarServicio() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  deshabilitarServicio() {
 | 
	
		
			
				|  |  | -	# Paramos y deshabilitamos el servicio (con SystemD, Upstart o SystemV)
 | 
	
		
			
				|  |  | +# Paramos y deshabilitamos el servicio (con SystemD, Upstart o SystemV)
 | 
	
		
			
				|  |  |  	# Intentamos con systemctl (SystemD)
 | 
	
		
			
				|  |  |  	#echo -en "Deshabilitando Servicio '$1'" | tee -a $logFile
 | 
	
		
			
				|  |  |  	if [ $# -le 0 ];then
 | 
	
	
		
			
				|  | @@ -1299,7 +1331,7 @@ deshabilitarServicio() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  recargarServicio() {
 | 
	
		
			
				|  |  | -	# Recargamos el servicio (con SystemD, Upstart o SystemV)
 | 
	
		
			
				|  |  | +# Recargamos el servicio (con SystemD, Upstart o SystemV)
 | 
	
		
			
				|  |  |  	# Intentamos con systemctl (SystemD)
 | 
	
		
			
				|  |  |  	#echo -en "Recargando Servicio '$1'" | tee -a $logFile
 | 
	
		
			
				|  |  |  	if [ $# -le 0 ];then
 | 
	
	
		
			
				|  | @@ -1329,7 +1361,7 @@ recargarServicio() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  configurarCortafuegos() {
 | 
	
		
			
				|  |  | -	# Configuramos cortafuegos (añadir reglas y encender)
 | 
	
		
			
				|  |  | +# Configuramos cortafuegos (añadir reglas y encender)
 | 
	
		
			
				|  |  |  	# Comprobamos si estamos usando SSH
 | 
	
		
			
				|  |  |  	esSSH $PPID
 | 
	
		
			
				|  |  |  	if [ $debianOS = true ];then
 | 
	
	
		
			
				|  | @@ -1365,6 +1397,7 @@ configurarCortafuegos() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  esSSH() {
 | 
	
		
			
				|  |  | +# Comprobamos si nuestro terminal usa SSH
 | 
	
		
			
				|  |  |  	p=${1:-$PPID}
 | 
	
		
			
				|  |  |  	#read pid name x ppid y < <( cat /proc/$p/stat )
 | 
	
		
			
				|  |  |  	read pid name ppid < <( ps -o pid= -o comm= -o ppid= -p $p)
 | 
	
	
		
			
				|  | @@ -1374,7 +1407,7 @@ esSSH() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  descargarMediaWiki() {
 | 
	
		
			
				|  |  | -	# Descargar la versión 1.31.0 de MediaWiki
 | 
	
		
			
				|  |  | +# Descargar la versión 1.31.0 de MediaWiki
 | 
	
		
			
				|  |  |  	if [ ! -d ./var ];then
 | 
	
		
			
				|  |  |  		comprobarError 1 5 "./var"
 | 
	
		
			
				|  |  |  	fi
 | 
	
	
		
			
				|  | @@ -1383,7 +1416,7 @@ descargarMediaWiki() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  configurarMediaWiki() {
 | 
	
		
			
				|  |  | -	# Configuramos MediaWiki
 | 
	
		
			
				|  |  | +# Configuramos MediaWiki
 | 
	
		
			
				|  |  |  	if [ ! -f /var/www/$dominioMediaWiki/LocalSettings.php ];then
 | 
	
		
			
				|  |  |  		# Copiamos archivos
 | 
	
		
			
				|  |  |  		cp -fR ./var/mediawiki-1.31.0/ /var/www/$dominioMediaWiki
 | 
	
	
		
			
				|  | @@ -1431,7 +1464,7 @@ configurarMediaWiki() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  descargarMoodle() {
 | 
	
		
			
				|  |  | -	# Descargar la versión 1.31.0 de MediaWiki
 | 
	
		
			
				|  |  | +# Descargar la versión 1.31.0 de MediaWiki
 | 
	
		
			
				|  |  |  	if [ ! -d ./var ];then
 | 
	
		
			
				|  |  |  		comprobarError 1 5 "./var"
 | 
	
		
			
				|  |  |  	fi
 | 
	
	
		
			
				|  | @@ -1443,7 +1476,7 @@ descargarMoodle() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  configurarMoodle() {
 | 
	
		
			
				|  |  | -	# Configurar Moodle
 | 
	
		
			
				|  |  | +# Configurar Moodle
 | 
	
		
			
				|  |  |  	if [ ! -f /var/www/$dominioMoodle/config.php ];then
 | 
	
		
			
				|  |  |  		# Copiamos archivos
 | 
	
		
			
				|  |  |  		cp -Rf ./var/moodle/ /var/www/$dominioMoodle
 | 
	
	
		
			
				|  | @@ -1510,7 +1543,7 @@ configurarMoodle() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  crearDBMoodle() {
 | 
	
		
			
				|  |  | -	# Creamos una base de datos para Moodle
 | 
	
		
			
				|  |  | +# Crear base de datos para Moodle
 | 
	
		
			
				|  |  |  	dbDir="./etc/db"
 | 
	
		
			
				|  |  |  	if [ ! -d $dbDir ];then
 | 
	
		
			
				|  |  |  		mkdir $dbDir 2>/dev/null
 | 
	
	
		
			
				|  | @@ -1528,7 +1561,7 @@ crearDBMoodle() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  configurarSELinux() {
 | 
	
		
			
				|  |  | -	# Configura SELinux (Sólo para RHEL)
 | 
	
		
			
				|  |  | +# Configurar SELinux (Sólo para RHEL)
 | 
	
		
			
				|  |  |  	which semanage >/dev/null 2>&1
 | 
	
		
			
				|  |  |  	if [ $? -ne 0 ];then
 | 
	
		
			
				|  |  |  		result=$(yum -y install policycoreutils-python 2>&1)
 | 
	
	
		
			
				|  | @@ -1665,9 +1698,9 @@ mostrarExpress
 | 
	
		
			
				|  |  |  	echo -en "Configurando Cortafuegos..." | tee -a $logFile
 | 
	
		
			
				|  |  |  	configurarCortafuegos
 | 
	
		
			
				|  |  |  	echo -en " OK.\n" | tee -a $logFile
 | 
	
		
			
				|  |  | -# Configurar actualizaciones
 | 
	
		
			
				|  |  | -	if [ $actualizacionesOn = true ]; then
 | 
	
		
			
				|  |  | -		echo -en "Configurando Actualizaciones Automáticas..." | tee -a $logFile
 | 
	
		
			
				|  |  | +# Configurar Backup
 | 
	
		
			
				|  |  | +	if [ $backupOn = true ]; then
 | 
	
		
			
				|  |  | +		echo -en "Configurando Backup Automático..." | tee -a $logFile
 | 
	
		
			
				|  |  |  		sleep 2
 | 
	
		
			
				|  |  |  		echo -en " OK.\n" | tee -a $logFile
 | 
	
		
			
				|  |  |  	fi
 |