Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas
TOP

Instalación Moodle en Debian Squeeze

Moodle es un Sistema de Gestión de Cursos de Código Abierto (Open Source Course Management System, CMS), conocido también como Sistema de Gestión del Aprendizaje (Learning Management System, LMS) o como Entorno de Aprendizaje Virtual (Virtual Learning Environment, VLE). Es una aplicación web gratuita que los educadores pueden utilizar para crear sitios de aprendizaje efectivo en línea.


 Para la instalación de Moodle utilizaremos la infraestructura LAMP basada en:
  • Linux: Usaremos la distribución Debian, pero es posible usar cualquier otra, e incluso MAC o Windows, aunque el soporte para estas es menor.
  • Apache: Como servidor Web. tambien se puede usar ISS o nginx entre otros. Recomendable usar versiones recientes.
  • Mysql: Como sistema de base de datos. Es posible utilizar Postgres en su defecto. Puede ir en local, o en un servidor aparte. Es necesaria como mínimo la versión 5.1.33.
  • PHP: Toda la aplicación está basada en PHP por lo que es necesario. Además de PHP puro y duro, es necesario añadir algunas extensiones propias del mismo. Versión mínima 5.3.2.

La lista de paquetes que instalaremos relacionados con PHP es la siguiente (todos se encuentran en los repositorios de Debian):
  • Php5
  • Php-mysql: Estas funciones permiten acceder a servidores de bases de datos MySQL.
  • Php-curl: permite conectarse y comunicarse con diferentes tipos de servidores y diferentes tipos de protocolos.
  • Php-gd: para crear y manipular ficheros de imágenes en una variedad de diferentes formatos de imagen, incluyendo GIF, PNG, JPEG, WBMP y XPM.
  • Php-intl: La extensión para la internacionalización.
  • Php-xmlrpc: implementa el protocolo xml-rpc para php.

    Instalación

    Pasamos a explicar el proceso de instalación. El escenario que tenemos es bien simple. Y puede serlo aún más si decidimos poner la base de datos en local. Yo prefiero ponerlo en equipos distintos por temas de rendimiento.







    Lo primero que haremos será descargar Moodle y llevarlo a nuestra máquina que hará de frontend con Apache. Si no tenemos instalado Apache es buen momento para hacerlo.

    apt-get install apache2

    Descomprimimos el tar.gz con nuestro moodle y copiamos la carpeta resultante en el directorio donde se alojan los recursos web de nuestro servidor, por defecto, en /var/www.

    tar -xvf moodle-latest-23.tar.gz

    cp -r /pathtomoodle/moodle/* /var/www/

    Cambiamos usuario:grupo de los ficheros que acabamos de copiar para que puedan ser manejados por el usuario Apache. Por defecto este usuario es www-data, pero podemos comprobarlo en el fichero de configuración de Apache.

    chown -R www-data:www-data /var/www/*

    Creamos también el directorio /var/moodledata ya que lo solicitará durante la instalación y le hacemos lo mismo que a /var/www
    Instalamos los paquetes de los que hablabamos antes.

    apt-get install php5 php5-mysql php5-gd php5-curl php5-intl php5-xmlrpc

    Reiniciamos Apache:

    /etc/init.d/apache2 restart

    Antes de empezar la instalación vía Web, pondremos a punto la BBDD. Durante el proceso de instalación moodle nos solicitará que le pasemos los datos relacionados con la BBDD donde almacenará todos los registros.

    Si no tenemos instalado mysql, procedemos a ello, ya sea en local o en un sistema aparte.

    apt-get install mysql-server

    Durante el proceso de instalación nos solicitará que metamos la clave de root.
    Una vez finalizado el procesos de instalación, accedemos a mysql para crear la base de datos y el usuario que la gestiona.

    mysql -uroot -p
    password: <password>

    Creamos la base de datos y el usuario con los permisos. Es necesario crear la BBDD con formato UTF8.

     mysql> create database moodle character set UTF8;
     mysql> create user 'moodle'@'%' identified by '<Passwordforuser>';
     mysql> grant all privileges on moodle.* to 'moodle'@'%';
     mysql> flush privileges;

    Con estos comandos, creamos la base de datos de nombre moodle en formato UTF8, el usuario moodle con su correspondiente password y le damos permisos sobre la base de datos.

    Ya estamos en disposición de iniciar la instalación Web de moodle. Introducimos la IP de nuestro equipo en el navegador e instalamos. Nos irá solicitando datos relacionados con la BBDD, con php etc etc. Una vez finalizado, comprobará que todo está en orden y procederá a crear las tablas.

     Tras crear las tablas nos solicitará información sobre la cuenta de administración, username, password, ciudad, pais, descripción etc, etc... así como el nombre del portal. Una vez introducido todo, ya podremos acceder a nuestra plataforma moodle.




    TOP

    Comandos útiles de Linux (I)

    Los siguientes comandos nos permiten llevar un mejor seguimiento de nuestros sistemas linux, control de acceso, estado de discos, rendimiento global del sistema y no son tan conocidos como otros.

    • Uptime: Nos permite conocer cuanto tiempo lleva nuestro sistema encendido. Además, incluye información relacionada con el número de usuarios logueados y la carga del sistema hace 1 , 5 y 15 minutos. Ejemplo:

       root@Tomcat1:~# uptime
       18:57:14 up 24 min,  2 users,  load average: 0.00, 0.00, 0.00

     

    • Lastlog: Nos da información de cuando se ha producido el último login por parte de un usuario dado (-u) y de donde procede esa conexión. En caso de no pasarle ningún argumento, muestra todos los usuarios. Ejemplo:

       root@Tomcat1:~# lastlog -u system
       Nombre           Puerto   De               Ãltimo
       system                                     **Nunca ha entrado**


    • Sar: Recolecta, reporta o guarda información acerca de la actividad del sistema. Es necesario instalar el paquete sysstat. Ejemplo:

        root@Tomcat1:/# sar -q
        Linux 2.6.30-5-amd64 (Tomcat1)  24/10/12 _x86_64_ (1 CPU)

        19:14:27      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
        19:15:01            0        80      0,01      0,02      0,00
        19:25:01            0        79      0,00      0,00      0,00
        Media:              0        80      0,01      0,01      0,00


    • Iostat: Reporta información relacionada con la actividad de la CPU (-c), así como estadísticas de entrada/salida de los dispositivos (-d), particiones y sistemas de ficheros NFS (-p). Es necesario instalar el paquete sysstat.:  
             iostat
         Muestra el historial de todos las CPUs y dispositivos.
                
        iostat -d 2 

         Muestra un reporte de todos los dispositivos cada 2 segundos.
                 
        iostat -d 2 6 

                Muestra 6 reportes con un intervalo de dos segundos para todos los dispositivos.
                  

        iostat -x sda sdb 2 6 
         Muesta 6 reportes con las estadísticas extendidas con un intervalo de 2 segundos para los dispositivos sda y sdb.
                 

    V.
     
    TOP

    Sudo: Como funciona

    Esta utilidad de los sistemas Unix, permite a los usuarios ejecutar programas con  privilegios de seguridad de otro usuario, normalmente de root, de forma segura. Esto es especialmente útil en entornos en los que conviven varios usuarios, a los cuales no es posible dar la contraseña de root por motivos de seguridad y necesitan ejecutar algún comando propio de root.



    Con sudo podemos implementar control de acceso, en el que determinar que usuario ejecuta un determinado comando. Si un usuario necesita ejecutar un comando de root, sudo, verifica en su lista de permisos y si está permitido la ejecución de ese comando para ese usuario, entonces sudo se encarga de ejecutarlo. Esta lista de control de acceso, podemos encontrarla en el fichero /etc/sudoers. En resumidas cuentas, el escenario que presenta la utilidad sudo tiene 3 protagonistas principales.

    1. Sudo: comando con permisos de SUID, que los usuarios utilizan para ejecutar comandos, que por defecto no tienen permiso para ejecutar.
    2. Visudo: comando que permite al administrador modificar el fichero /etc/sudoers.
    3. /etc/sudoers: Archivo que indica a sudo que permisos tiene cada usuario para ejecutar cierto comando.
    Vamos a verlos un poco más en detalle.



    Sudo

    A continuación se detallan algunas de las opciones que presenta sudo
    • sudo -l: Nos indica que comandos podemos ejecutar con el usuario en cuestión.
         $ sudo -l 
           User Pepito may run the following commands on this host: 
                (root) /sbin/ifconfig 
                (root) /sbin/lspci
     
    • sudo -v: Por defecto, al ejecutar cualquier comando con sudo tenemos 5 minutos para, en caso de tener que volver a meter el comando, no tener que introducir la contraseña del usuario. Con -v podemos ampliar 5 minutos más este tiempo.
    • sudo -u: Con el parametro -u podemos ejecutar comandos de otro usuario que no tiene porque ser root.  

          $ sudo -u peter /comando/de/peter 
     
    • sudo -e: Permite editar un fichero de root, siempre y cuando se tengan permisos en /etc/sudoers.
       
      $ sudo -e /etc/inittab 
       
    • sudo -L: Nos muestra una serie de opciones que podemos configurar en el fichero /etc/sudoers

    Visudo

    Permite la edición del archivo de configuración de sudo /etc/sudoers. Invoca al editor que se tenga por defecto (normalmente "vi"). Cuando se ejecuta, bloquea el fichero sudoers de manera que nadie pueda modificarlo de forma concurrente por razones de seguridad. Otra cosa a tener en cuenta, es que visudo comprueba que el archivo esté bien configurado al cerrarlo, si hay algo que no le convence, nos avisará de ello.

    >>> sudoers file: syntax error, line 15 <<< 
    What now?
     
    Ante esta pregunta podemos ejecutar 3 acciones:
    e: editar
    x: salir sin guardar los cambios
    Q: salir y guardar los cambios

    Sudoers

    En este fichero se establece que usuario puede ejecutar que comando y de que modo, generando una lista de control de acceso que puede ser tan detallada como se desee.

    El fichero se divide en 3 partes:

    1- Opciones: Permite definir ciertas características de comportamiento para los alias previamente creados. No entraremos en detalle en esta parte. Para más información visitar el enlace que aparece al final de la entrada.

    2- Reglas de acceso: Mediante las reglas de acceso podemos configurar qué comandos serán ejecutados por qué usuario. El formato de las reglas, es el siguiente:

            usuario host = comando1, comando2...comandoN

         Usuario: Puede ser un usuario, un alias de usuario o un grupo
         Host: Puede ser ALL (cualquier equipo), un solo equipo, un alias de equipo, una IP/mascara.
        Comando: Cualquier comando con su ruta completa.

    3- Alias: Se refiere a un usuario, un comando o un equipo. Engloba bajo un solo nombre una serie de elementos que después en la parte de definición de reglas serán aplicados bajo cierto criterio. La forma de creación de alias es la siguiente:

     tipo_alias NOMBRE_DEL_ALIAS = elemento1, elemento2, elemento3, ...

     tipo_alias define los elementos:

    • Cmnd_Alias (comandos) 
    • User_Alias(usuarios) 
    • Runas_Alias(usuarios con privilegios)
    •  Host_Alias (equipos)

      NOMBRE_DEL_ALIAS: Puede llevar letras, numeros o _ . Debe empezar por mayusculas.

      elementos: varian dependiendo del alias. Algunos ejemplos son los siguientes.

                Cmnd_Alias WEB = /etc/init.d/apache2, sudoedit /etc/httpd
                User_Alias MYSQL_USERS= Pepin, Mochilo, Gazpacho, %mysql
                Runas_Alias OPERADORES= #501, patricio
                Host_Alias LANS= 192.168.0.0/24, 192.168.0.1/255.255.255.0

    Aqui podeis encontrar un ejemplo práctico de la configuración del fichero /etc/sudoers.

    Hasta aquí llegamos. En posteriores entradas entraremos más en profundidad en este tema que puede llegar a ser muy extenso :). Espero que con estas pinceladas, quede un poco más claro el funcionamiento de esta utilidad. En caso de dudas os recomiendo visitar el enlace que os dejo a continuación.

    Fuente: Basado en el tutorial de Sergio Gonzalez Duran en linuxtotal.com

    Nos vemos,
    Víctor.