Академический Документы
Профессиональный Документы
Культура Документы
0 Noviembre 2010
Autores
Versin
Fecha
15/11/10
1/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com
ndice
1Instalacin del sistema operativo........................................................................................................3
2Instalacin mdulos requeridos..........................................................................................................3
PEAR/PECL.................................................................................................................................... 3
3Instalacin de Chamilo.......................................................................................................................4
Configuracin de VirtualHost..........................................................................................................4
Crear usuario de bases de datos....................................................................................................... 5
Desactivacin de portal original......................................................................................................5
Instalar backup de portal..................................................................................................................7
Opcional: Descargar versin modificada de Chamilo 1.8.7.1.........................................................7
Restaurar base de datos....................................................................................................................7
Optimizaciones................................................................................................................................ 8
Reparticin de sesiones...............................................................................................................8
Reparticin de ficheros usuarios.................................................................................................8
Instalacin de sistema de identificacin Single Sign On.................................................................9
Llave comn SSO....................................................................................................................... 9
Cron............................................................................................................................................... 10
4Optimizacin.................................................................................................................................... 10
Optimizar la base de datos.............................................................................................................10
Optimizar compresin de datos transferidos................................................................................. 10
5Seguridad.......................................................................................................................................... 11
6Bajar bases de datos..........................................................................................................................11
7Referencias....................................................................................................................................... 11
8Anexo................................................................................................................................................11
Proceso global resumido................................................................................................................11
Parches...........................................................................................................................................12
2/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com
PEAR/PECL
PEAR y PECL son dos repositorios de mdulos (extensiones) de PHP. La diferencia entre los dos es
que PEAR permite ms licencias y son libreras principalmente escritas en PHP. PECL es mucho
ms estricto a nivel de licencias y sus libreras estn provedas generalmente en formato compilado,
por lo que requieren de una recopilacin de PHP mismo.
Para instalar una librera PECL, es necesario tener el paquete php-devel (paquete para desarrollo de
PHP). Existe un aplicativo PEAR en lnea de comando que permite descargar libreras PEAR como
libreras PECL e instalarlas, pero la instalacin de una librera PECL siempre requiere recopilacin,
por lo que se iniciar un proceso con el comando phpize, un comando dedicado a recopilar PHP.
sudos
exporthttp_proxy=http://192.168.100.50:3128/
rpmUvhhttp://download.fedora.redhat.com/pub/epel/5/i386/epelrelease5
4.noarch.rpm
rpmqa|grepphp
yuminstallhttpdphpphpcommonphppearphpgdphpmysqlphpmcryptphp
ldapphpxml
yuminstallphppear
nofunciona:phpdevelphpgdphpjsonphpxcache(paquetesenCentOS
dependientesdePHP5.2y5.3estinstalado)
Durante el proceso de configuracin (que parece a la primera de las capturas siguientes), tendr la
necesidad de configurar una cuenta MySQL root. Pongale una contrasea segura.
Contrasea de cuenta root MySQL: ____________
Si el servidor ya est instalado sin contrasea de root, lanzar el siguiente comando y seguir las
instrucciones.
mysql_secure_installation
3/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com
dar contrasea
quitar acceso annimo
quitar acceso root a distancia
quitar base de datos de prueba
refrescar permisos
3 Instalacin de Chamilo
La instalacin del servidor Apache debera haber creado una carpeta /var/www/html/ dentro de la
cual estaremos instalando a Chamilo.
Configuracin de VirtualHost
Para la instalacin, es necesario crear un VirtualHost de Apache para tener directamente la URL
final del campus. Se puede generar el VirtualHost de Apache al final de la configuracin principal
de Apache.
La configuracin del VirtualHost tambin permite modificar unos parmetros globales de PHP solo
a nivel de este VirtualHost (en caso de que hayan varios). Las directivas php_admin_value
retomadas en este ejemplo configuran parmetros que no podrn ser alterados luego a travs de un
script PHP ni de un .htaccess.
vim /etc/httpd/conf/httpd.conf
NameVirtualHost*:80
<VirtualHost*:80>
ServerAdmininfo@educallao.pe
DocumentRoot/var/www/html/chamilo/
ServerNamelms.educallao.pe
ErrorLog/var/log/httpd/lms.educallao.peerror.log
CustomLog/var/log/httpd/lms.educallao.peaccess.logcombined
DirectoryIndexindex.phpindex.html
OptionsIndexesFollowSymLinks
<Directory/var/www/html/chamilo/chamilo/main/inc/lib/mimetex>
AllowOverrideAll
OptionsExecCGIMultiViews+SymLinksIfOwnerMatch
Orderallow,deny
Allowfromall
</Directory>
<Directory/var/www/html/chamilo/chamilo/apikey/>
Orderallow,deny
Allowfrom192.168.100.29
</Directory>
php_admin_valuedisplay_errorsOn
php_admin_valuedisplay_startup_errorsOn
php_valuepost_max_size100M
php_valueupload_max_filesize100M
php_valuememory_limit120M
php_admin_valueerror_reporting6135
php_valuedate.timezone'America/New_York'
</VirtualHost>
4/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com
mysqlAurootp
mysql>grantallprivilegeson`chamilo\_%`.*to'chamilo'@'localhost'identifiedby
'chamilo1234567';
mysql>grantallprivilegeson`chamilo\_%`.*to'chamilo'@'10.20.20.%'identifiedby
'chamilo1234567';
mysql>flushprivileges;
Activa el mdulo Rewrite (por si a caso no es el caso globalmente) para el VirtualHost corriente
5/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com
Prepara las condiciones para usar la regla (RewriteRule) de redireccin, verificando si la pedida actual al
servidor web viene de la direccin IP 172.16.80.85 (si no es el caso, no aplicar la regla de desvo, y dejar
activo el sitio web, pero impedir a todas las otras direcciones IP ver el sitio web)
3.
Agrega una condicin ms, de que si la pgina pedida no es /302.html, entonces redirige la llamada hacia
302.html, que contiene un mensaje especial para los usuarios (mantenimiento).
4.
Finalmente, si la pedida actual correspondi a una de las condiciones (no viene de 172.16.80.85 o no pide /
302.html), redirige efectivamente la pedida hacia /302.html
El archivo 302.html tiene que ser colocado en la raz. Puede verse de la siguiente forma:
<!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en"lang="en">
<head>
<title>EducallaoCampusVirtual</title>
<metahttpequiv="REFRESH"content="30;url=http://www.educallao.edu.pe">
<styletype="text/css"media="screen,projection">
/*<![CDATA[*/
@import"http://campus.chamilo.org/main/css/chamilo_green/default.css";
/*]]>*/
</style>
<linkrel="shortcuticon"href="http://campus.chamilo.org/favicon.ico"
type="image/xicon"/>
<metahttpequiv="ContentType"content="text/html;charset=utf8"/>
</head>
<bodydir="ltr">
<divid="header">
<divid="header1">
<divid="top_corner"></div>
<divid="institution"> </div>
<divclass="clear"> </div>
</div>
<divid="header2">
<divid="Header2Right">
<ul><li> </li></ul>
</div>
<divclass="clear"> </div>
</div>
<divid="header3">
<ul></ul>
<divstyle="clear:both;"class="clear"></div>
</div>
<divid="header4"></div>
</div>
<divclass="clear"> </div>
<divid="main">
<divstyle="textalign:center;fontsize:large;">Estimadousuario,
estamosprocedendioaunligerocambioparaoptimizarlaceleridadderespuesta
deestecampus.Nosepreocupe,ningundatohasidoeliminado,yesteportal
estaráenlíneanuevamentedentrodemuypoco.<br/>Presentamos
nuestrassincerasdisculpasporlosinconvenientescausados.<hr/>
</div>
</div>
<divid="footer">
<divid="bottom_corner"></div>
<divclass="copyright">Plataforma<a
6/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com
Tras recuperar los archivos, es necesario revisar que los detalles de conexin a la base de datos as
como los de caminos en el sistema y URL son correctos para el nuevo sistema. Para esto, se verifica
que los datos de main/inc/conf/configuration.php (dentro de la carpeta chamilo) son correctos. Si el
servidor de correos est separado, verificar que la nueva mquina tambin tiene acceso a este
servidor.
cd/tmp
wgethttp://www.dokeoscorp.com/ficheros/chamilo187yw.tgz
mvchamilo187yw.tgz/var/www/
cd/var/www
tarzxfchamilo187yw.tgz
cdchamilo1.8.7.1stable/
rmrfmain/upload/usersmain/inc/conf/archive/courses/home/searchdb/
tests/
mvchamilo1.8.7.1stable/*html/
mysqldumpueducallaopalldatabasesresultfile=/tmp/db.sql
scp/tmp/db.sqlnuevoservidor:/tmp/
7/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com
mysqlueducallaop</tmp/db.sql
En el caso de que haya sido el usuario root en el sistema original, se tiene primero que exportar una
lista definida de bases de datos. Para tal efecto, se usa el parmetro --databases en lugar de --alldatabases, separando las bases de datos por espacios.
Una vez la base restaurada, se verifica en el archivo de configuracin de Chamilo que los
parmetros sean los correctos.
Optimizaciones
Reparticin de sesiones
Esta seccin se puede usar nicamente en el caso de que las sesiones no se guarden en la base de
datos. En el caso de esta instalacin, las sesiones se guardan en la base de datos, por lo tanto esta
seccin queda a ttulo de informacin opcional.
A fin de repartir la carga del sistema de ficheros para muchos usuarios simultneos y de reducir el
riesgo de ataque de sesiones por conexin directa, se divide la carpeta de sesiones en 16 subcarpetas
(divisin segn la primera letra del cdigo hexadecimal de sesin).
Este sistema se implementa en caso de tener muchos usuarios y de no usar almacenamiento de
sesiones en la base de datos.
Para esto, se crea la carpeta /var/www/sessions/
mkdir/var/www/sessions/
chownRhttpd/var/www/sessions
cd/var/www/sessions
mkdir0123456789abcdef
php_admin_valuesession.save_path1;/var/www/sessions/
/etc/init.d/httpdreload
Los ficheros de sesin del anterior servidor pueden ser eliminados, no importan. El usuario
simplemente tendr que reiniciar su sesin al conectarse al Chamilo del nuevo servidor.
cd/var/www/html/main/upload/users
mv000;mv101;mv202;mv303;mv404;mv505;mv606;mv707;mv
808;mv909;
8/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com
mkdir0123456789
mv000/0;mv1*1/;mv011/1;mv2*2/;mv022/2;mv3*3/;mv033/3;
mv4*4/;mv044/4;mv5*5/;mv055/5;mv6*6/;mv066/6;mv7*7/;
mv077/7;mv8*8/;mv088/8;mv9*9/;mv099/9
De ah se tiene que modificar la configuracin de Chamilo dentro de su interfaz grfica. Para este
efecto, introducimos una excepcin en el VirtualHost para autorizar nuestra direccin IP nicamente
(asumiendo para el ejemplo que es 192.168.1.210).
vim/etc/httpd/httpd.conf
RewriteCond%{REMOTE_HOST}!^192\.168\.1\.210
/etc/init.d/httpdreload
Esto debera permitir a nuestra direccin nicamente ver el campus y hacer los cambios de
parmetros para la reparticin de documentos.
/var/www/html/chamilo/chamilo/apikey/apikey.txt (accesible en
http://lms.educallao.pe/chamilo/chamilo/apikey/apikey.txt).
Esta llave est protegida contra accesos externos a travs de un parmetro ms del VirtualHost
<Directory/var/www/html/chamilo/chamilo/apikey/>
Orderallow,deny
Allowfrom192.168.100.29
</Directory>
El script changekey.php solo contiene lo siguiente (y obviamente tiene que ser ubicado como
indicado en el cron):
<?php
$r=rand(0,32768);
$r=md5($r);
file_put_contents('/var/www/html/chamilo/chamilo/apikey/apikey.txt',$r);
Cron
Para eliminar el contenido de la carpeta archive/ de forma automtica, se agrega un script como
indicado a continuacin y una lnea dentro de la tareas cronolgicas.
vim/root/clean_chamilo.php
<?php$list=scandir('/var/www/html/chamilo/chamilo/archive/');
foreach($listas$entry){if(substr($entry,0,1)=='.'){continue;}
exec('rmrf/var/www/html/chamilo/chamilo/archive/'.$entry);}
crontabe
12***php/root/clean_chamilo.php
4 Optimizacin
Optimizar la base de datos
Para optimizar la base de datos, se pueden agregar una serie de ndices que reducen el tiempo de
bsqueda de ciertos datos. Ver archivo optimize.sql entregado con este documento.
Esto comprime los scripts PHP. Sin embargo, para comprimir CSS, HTML y imgenes, es necesario
dar una configuracin ms en el VirtualHost:
SetOutputFilterDEFLATE
5 Seguridad
La seguridad de Chamilo vara mucho segn los detalles de implementacin del servidor. Se
considera que no hay seguridad absoluta, y recomendamos implementar HTTPS cuando sea posible.
Herramientas recientes permiten fcilmente entrar a redes inalmbricas sin cifrado para robar las
cuentas de usuarios.
Pensamos que el dao posible causado por el robo de una cuenta de alumno es muy limitado. Sin
embargo, recomendamos aconsejar a sus usuarios (en particular docentes y administradores) no usar
redes inalmbricas abiertas. El robo de una cuenta de este tipo llevara seguramente a grandes
molestias en el seguimiento del progreso del alumnado.
7 Referencias
Otros repositorios de paquetes CentOS: http://www.jasonlitka.com/yum-repository/
EPEL repository: http://fedoraproject.org/wiki/EPEL/FAQ#howtouse
http://beeznest.wordpress.com/2010/10/31/installing-php-imagick-on-centos-5/
8 Anexo
Proceso global resumido
1. Configurar VirtualHost en nuevo servidor (no olvidar el nivel de error ^E_NOTICE)
2. Configurar cuenta base de datos en nuevo servidor
3. Desactivar portal original
4. Transferir datos de /var/www/html/chamilo hacia nuevo servidor con rsync
5. Aplicar los cambios para SSO (local.inc.php y main/auth/sso/)
6. Hacer backup de base de datos, transferir y restaurar en nuevo servidor de bases de datos
7. Aplicar optimizaciones de base de datos
11/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com
11.Modificar permisos sobre carpetas para dar acceso en lectura a todos (usuario root) y acceso
en escritura al usuario web (apache:apache) sobre las carpetas importantes (cd
/var/www/html/chamilo/ && chmod -R 0555 chamilo/ && chown -R apache:apache
chamilo/ && chmod -R 0775 chamilo/archive/ chamilo/courses/ chamilo/home/
chamilo/main/css/ chamilo/main/lang/ chamilo/main/upload/users/
chamilo/main/default_course_documents/ && chmod -R 0000 chamilo/main/install/ &&
chmod -R 0555 chamilo/main/inc/conf/ && chown -R apache:apache sessions/)
12.
13.
14.
15.
16.
Pruebas de produccin
1. Conectarse con usuario LDAP existente de los dos lados
2. Conectarse con usuario LDAP no existente en Chamilo
3. Crear un curso y entrar
Parches
Por el carcter particular de esta instalacin de Chamilo, se agregaron una serie de modificaciones
en los scripts de Chamilo. Estas modificaciones se adjuntan a las dems personalizaciones del portal
como archivos adjuntos a este documento.
Fichero
Descripcin de cambios
/changekey.php
/clean_chamilo.php
Fichero de limpieza automtica de contenidos de la carpeta archive/ (por ser ejecutado por
cron)
/index.php
/update_home.php
12/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com
Fichero
Descripcin de cambios
permitir el uso de la carpeta /contenidos_chamilo/courses/
/user_portal.php
/main/auth/ldap/
/main/auth/sso/
/main/course_home/course_home.php
/main/inc/global.inc.php
/main/inc/local.inc.php
/main/inc/conf/configuration.php.bak
/main/inc/lib/add_course.lib.inc.php
/main/inc/lib/security.lib.php
/main/inc/lib/work.lib.php
13/13
BeezNest Latino S.A.C. - Miraflores Lima Per - +51 1 719 51 91 info@beeznest.com