|
@@ -159,6 +159,12 @@ comprobarError() {
|
|
|
type="WARNING"
|
|
|
error="\n$type $codeNum:\tYa existe una copia configurada de Moodle en el dominio: '$extraInfo'."
|
|
|
;;
|
|
|
+ 604)
|
|
|
+ error="\n$type $codeNum:\tImposible configurar SELinux.\n"
|
|
|
+ ;;
|
|
|
+ 605)
|
|
|
+ error="\n$type $codeNum:\tImposible instalar 'policycoreutils-python'.Detalles:\n$extraInfo\n"
|
|
|
+ ;;
|
|
|
800)
|
|
|
error="$type $codeNum:\tEs necesario ser root ('sudo $0').\n"
|
|
|
;;
|
|
@@ -484,8 +490,11 @@ inicializarVariables() {
|
|
|
phpFPMName=""
|
|
|
nombreMediaWiki=""
|
|
|
dominioMediaWiki=""
|
|
|
+ passwdMediaWiki=""
|
|
|
nombreMoodle=""
|
|
|
+ nombreCortoMoodle=""
|
|
|
dominioMoodle=""
|
|
|
+ passwdMoodle=""
|
|
|
}
|
|
|
|
|
|
instalacionExpress() {
|
|
@@ -637,13 +646,11 @@ mostrarMediaWiki(){
|
|
|
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)
|
|
|
comprobarError $? 1
|
|
|
- # Mejora: comprobar si el dominio ya está en uso
|
|
|
done
|
|
|
# Introducir dominio
|
|
|
while [ -z "$dominioMediaWiki" ]; do
|
|
|
dominioMediaWiki=$(whiptail --title "CONFIGURACION MEDIAWIKI" --inputbox "Introduzca el dominio/subdominio de la Wiki.\nTenga en cuenta que debes apuntar este dominio a la dirección IP de esta máquina mediante un registro DNS de tipo CNAME.\nSi quiere introducir varios dominios sepárelos con espacios. El primero será el principal.\nPor ejemplo: 'www.$hostname $hostname wiki.$hostname'" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) wiki.$hostname --ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
|
|
|
comprobarError $? 1
|
|
|
- # Mejora: comprobar si el dominio ya está en uso
|
|
|
done
|
|
|
cont=1
|
|
|
serverName=""
|
|
@@ -665,7 +672,7 @@ mostrarMediaWiki(){
|
|
|
while [ $control = false ]; do
|
|
|
passwdMediaWiki=$(whiptail --title "CONFIGURACION MEDIAWIKI" --passwordbox "$error""Introduzca la contraseña para el usuario administrador 'admin':" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --ok-button "Continuar" --nocancel 3>&1 1>&2 2>&3)
|
|
|
comprobarError $? 1
|
|
|
- passwdMediaWiki2=$(whiptail --title "CONTRASEÑA SQL" --passwordbox "Confirme la contraseña:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --ok-button "Continuar" --nocancel 3>&1 1>&2 2>&3)
|
|
|
+ passwdMediaWiki2=$(whiptail --title "CONFIGURACION MEDIAWIKI" --passwordbox "Confirme la contraseña:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --ok-button "Continuar" --nocancel 3>&1 1>&2 2>&3)
|
|
|
comprobarError $? 1
|
|
|
if [ -z "$passwdMediaWiki" ] || [ -z "$passwdMediaWiki2" ]; then
|
|
|
error="ERROR: LA CONTRASEÑA NO PUEDE ESTAR VACIA.\n"
|
|
@@ -679,17 +686,20 @@ mostrarMediaWiki(){
|
|
|
}
|
|
|
|
|
|
mostrarMoodle() {
|
|
|
- # Introducir nombre Moodle
|
|
|
+ # Introducir Nombre Moodle
|
|
|
while [ -z "$nombreMoodle" ]; do
|
|
|
- nombreMoodle=$(whiptail --title "CONFIGURACION MOODLE" --inputbox "Introduzca el nombre del campus virtual:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
|
|
|
+ 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)
|
|
|
+ comprobarError $? 1
|
|
|
+ done
|
|
|
+ # Introducir Nombre Corto Moodle
|
|
|
+ while [ -z "$nombreCortoMoodle" ]; do
|
|
|
+ nombreCortoMoodle=$(whiptail --title "CONFIGURACION MOODLE" --inputbox "Introduzca el NOMBRE CORTO del campus virtual.\nPor ejemplo: 'Ejemplo':" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
|
|
|
comprobarError $? 1
|
|
|
- # Mejora: comprobar si el dominio ya está en uso
|
|
|
done
|
|
|
# Introducir dominio
|
|
|
while [ -z "$dominioMoodle" ]; do
|
|
|
dominioMoodle=$(whiptail --title "CONFIGURACION MOODLE" --inputbox "Introduzca el dominio/subdominio del campus virtual.\nMoodle SÓLO permite un ÚNICO DOMINIO." $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) moodle.$hostname --ok-button "Continuar" --cancel-button "Salir" 3>&1 1>&2 2>&3)
|
|
|
comprobarError $? 1
|
|
|
- # Mejora: comprobar si el dominio ya está en uso
|
|
|
done
|
|
|
cont=1
|
|
|
serverName=""
|
|
@@ -705,7 +715,23 @@ mostrarMoodle() {
|
|
|
cont=$((cont + 1))
|
|
|
done
|
|
|
dominioMoodle=$serverName
|
|
|
- unset dominio cont serverName aliasMoodle
|
|
|
+ # Introducir contraseña
|
|
|
+ control=false
|
|
|
+ error=""
|
|
|
+ while [ $control = false ]; do
|
|
|
+ passwdMoodle=$(whiptail --title "CONFIGURACION MOODLE" --passwordbox "$error""Introduzca la contraseña para el usuario administrador 'admin':" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --ok-button "Continuar" --nocancel 3>&1 1>&2 2>&3)
|
|
|
+ comprobarError $? 1
|
|
|
+ passwdMoodle2=$(whiptail --title "CONFIGURACION MOODLE" --passwordbox "Confirme la contraseña:" $((ALTO * 9 / 10)) $((ANCHO * 9 / 10)) --ok-button "Continuar" --nocancel 3>&1 1>&2 2>&3)
|
|
|
+ comprobarError $? 1
|
|
|
+ if [ -z "$passwdMoodle" ] || [ -z "$passwdMoodle2" ]; then
|
|
|
+ error="ERROR: LA CONTRASEÑA NO PUEDE ESTAR VACIA.\n"
|
|
|
+ elif [ $passwdMoodle != $passwdMoodle2 ];then
|
|
|
+ error="ERROR: LAS CONTRASEÑAS NO COINCIDEN.\n"
|
|
|
+ else
|
|
|
+ control=true
|
|
|
+ fi
|
|
|
+ done
|
|
|
+ unset control error passwdMoodle2 dominio cont serverName aliasMoodle
|
|
|
}
|
|
|
|
|
|
establecerFQDN() {
|
|
@@ -1440,6 +1466,25 @@ configurarMoodle() {
|
|
|
nombreDBMo=$(echo $dominioMoodle | sed -e 's/\./_/g')
|
|
|
userDBMo=$(echo $dominioMoodle | sed -e 's/\./_/g')
|
|
|
crearDBMoodle
|
|
|
+ # Configurar SE-Linux (RHEL)
|
|
|
+ if [ $rhelOS = true ];then
|
|
|
+ configurarSELinux
|
|
|
+ fi
|
|
|
+ # Configuramos e instalamos Moodle
|
|
|
+ if [ $sslOn = true ];then
|
|
|
+ wwwroot="https://$dominioMoodle"
|
|
|
+ else
|
|
|
+ wwwroot="http://$dominioMoodle"
|
|
|
+ fi
|
|
|
+ if [ $mySQLOn = true ];then
|
|
|
+ dbtype="mysqli"
|
|
|
+ elif [ $mariaDBOn = true ];then
|
|
|
+ dbtype="mariadb"
|
|
|
+ else
|
|
|
+ comprobarError 1 602
|
|
|
+ fi
|
|
|
+ sudo -u $webServerUser php admin/cli/install.php --lang=es --wwwroot="$dominioMoodle" --dbtype="$dbtype" --dbname="$nombreDBMo" --dbuser="$userDBMo" --dbpass="$sqlPasswd" --fullname="$nombreMoodle" --shortname=$nombreCortoMoodle --adminuser=admin --adminpass=$passwdMoodle --adminemail="admin@$dominioMoodle" --agree-license --non-interactive >>$logFile 2>&1
|
|
|
+ comprobarError $? 602
|
|
|
# Actualizamos permisos
|
|
|
chown -R $webServerUser:$webServerGroup /var/www/$dominioMoodle /var/www/moodledata
|
|
|
# Configuramos VirtualHost
|
|
@@ -1455,7 +1500,7 @@ configurarMoodle() {
|
|
|
comprobarError 1 602
|
|
|
fi
|
|
|
instalarVirtualHost "/var/www/$dominioMoodle" $virtualHost $dominioMoodle
|
|
|
- unset virtualHost
|
|
|
+ unset virtualHost wwwroot dbtype
|
|
|
else
|
|
|
comprobarError 1 603 $dominioMoodle
|
|
|
fi
|
|
@@ -1479,6 +1524,19 @@ crearDBMoodle() {
|
|
|
unset control dbFile dbDir
|
|
|
}
|
|
|
|
|
|
+configurarSELinux() {
|
|
|
+ # Configura SELinux (Sólo para RHEL)
|
|
|
+ which semanage >/dev/null 2>&1
|
|
|
+ if [ $? -ne 0 ];then
|
|
|
+ result=$(yum -y install policycoreutils-python 2>&1)
|
|
|
+ comprobarError $? 605 $result
|
|
|
+ fi
|
|
|
+ semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/moodledata(/.*)?"
|
|
|
+ comprobarError $? 604
|
|
|
+ restorecon -R /var/www/
|
|
|
+ comprobarError $? 604
|
|
|
+}
|
|
|
+
|
|
|
# Comprobación del sistema e inicialización
|
|
|
inicializarVariables
|
|
|
comprobarRoot
|