martes, 9 de octubre de 2012

Configurando servidor Web, Drupal + MySQL con CentOS 6.3

Bien, si te gustaría montar un servidor CentOS 6.3 con solo  la versión de Drupal, este post puede ser tu solución. La versión de Drupal que instalemos será la que está en los repositorios EPEL, para ser un poco más cómodos. Pero, necesitaremos tener los repositorios EPEL activados claro.

Nota
Instalando el repo EPEL.
$ su -c "yum install  http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm"
Es .noarch, no importa si usas x86_64 bits y ves i386.

Instalando todo para que Drupal esté listo
$ su -c "yum install httpd drupal6-* php php-mysql mysql-server php-pdo policycoreutils-python"
Editando /etc/php.ini (Reconocer base de datos) 
  • Modificamos nuestra zona horaria:
date.timezone = [Atlantic/Canary (en mi caso)]
Puedes encontrar las zonas horarias en este directorio:
/usr/share/zoneinfo
  • Añadimos en el apartado Extensions lo siguiente:
extension=pdo.ini
extension=pdo_mysql.ini 
De forma que quede de la siguiente manera:
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
extension=pdo.ini
extension=pdo_mysql.ini
; For example
;
;   extension=msql.so
Trabajando con MySQL

Nota: Ejecuten $ su, y nos olvidamos de usar las opciones -c y "".
  • Añadiendo el demonio MySQL al inicio
# chkconfig mysqld on
  • Iniciando el servicio
# service mysqld start
  • Gestionando MySQL
# mysqladmin -u root password $PASSWORD
En $PASSWORD ponemos la que queramos. ¡NO pongan la del usuario root del sistema!
  • Creando la base de datos de Drupal
# mysqladmin -u root -p create drupal 
  • Creando usuario y contraseña para la DB de Drupal 
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 63
Server version: 5.1.61 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
 > GRANT ALL PRIVILEGES ON drupal.* TO drupaldbuser@localhost IDENTIFIED BY 'DRUPAL_PASSWORD';
Donde dice 'DRUPAL_PASSWORD', lo sustituimos por la que queramos, por ejemplo 'pepe'.
> SET PASSWORD FOR 'drupaldbuser'@'localhost' = OLD_PASSWORD ('DRUPAL_PASSWORD');
No se olviden cambiarla
> flush privileges;
  • Saliendo de MySQL
> quit;
Permitir a HTTPD.... et puedan trabajar con SELinux (Si no tienes activado SELinux, ignora este paso)
  • Seteando las siguientes políticas para que Apache conecte y envíe información a MySQL mediante red o email.
# setsebool -P httpd_can_network_connect_db=1
# setsebool -P httpd_can_sendmail=1
  • Adaptando las políticas de SELinux a Drupal
  •  Instalamos el paquete policycoreutils-python
# yum install  policycoreutils-python
  • Ajustamos... 
# semanage fcontext -a -t httpd_sys_rw_content_t "/etc/drupal(6)?(/.*)?" 
# semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/drupal(6)?(/.*)?" 
# semanage fcontext -a -t httpd_sys_content_t "/usr/share/drupal(6)?(/.*)?" 
# restorecon -rv /usr/share/drupal6 /etc/drupal6 /var/lib/drupal6
Editamos el fichero /etc/httpd/conf.d/drupal6.conf
  •  Si vamos a instalar Drupal, en nuestro sistema, usaremos:
 Allow from 127.0.0.1
  •  En cualquier PC, red....
 #Deny from All 
 Allow from All
Editamos /usr/share/drupal6/.htaccess
  • Añadimos: 
RewriteBase /drupal
Editamos  /etc/httpd/conf/httpd.conf

Cambiamos el valor de DocumentRoot que apunte donde esté Drupal
DocumentRoot "/usr/share/drupal6"
Puertos
  • Es importante saber si, tenemos routers con la interfaz en el puerto 80 por defecto, si es posible desactivarla mejor, si NO es posible, les recomiendo que hagan el apaño, intenten desactivarlo, y utilicen otro puerto para el HTTPD.
  • AVISO: SELinux puede generar problemas a la hora de que HTTPD intente usar un puerto que no es el asignado. Les dará un error parecido a este: 
Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:8000 (13)Permission denied: make_sock: could not bind to address 0.0.0.0:8000no listening sockets available, shutting downUnable to open logs
[FAILED]
Para ello, veremos los puertos que podemos usar.
#  semanage port -l | grep http
http_cache_port_t              tcp      3128, 8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
Tenemos disponibles los puertos:  80, 443, 488, 8008, 8009, 8443
  • También es importante haber abierto los puertos en nuestro firewall, y si el router hace uso de firewall que también lo habilitemos, esto hace, que puedas ver Drupal desde cualquier otra PC desde tu IP pública.
  • Usando la herramienta GUI (o no GUI) para firewall
$ system-config-firewall
ó
$ system-config-firewall-tui
Copiando y asignando permisos
# cp /etc/drupal6/default/default.settings.php /etc/drupal6/default/settings.php
# chmod 777 /etc/drupal6/default/settings.php
Iniciando HTTPD
# service httpd start
Iniciamos la instalación Web
  • Local
http://127.0.0.1
  •  Web
http://IP.Pú.bli.ca:puerto
Para verla, podemos usar simplemente el siguiente comando
$ curl ifconfig.me
  • Si nos da errores, por favor, edita el archivo /etc/drupal6/default/settings.php y asignale:
 $db_url = 'mysqli://drupaldbuser:contraseña@localhost/drupal';
Una vez completada:
# chmod 644 /etc/drupal6/default/settings.php
Luego de instalar, es importante ver el "Informe de Estado"

Referencias:
  • Google
  • Fedora Project wiki - How to install Drupal
  • Change Apache Port on Fedora - appnovation

2 comentarios:

  1. Perfecto post Alvaro, felicidades!! :D:D Si tengo que montarme un drupal ya tengo manual a mano.

    ResponderEliminar
    Respuestas
    1. Buenas Ivan!

      Muchas gracias amigo! y ya sabes cualquier duda me comentas que para eso estoy! :D

      ¡Saludos!

      Eliminar

Se respetuoso a la hora de comentar y gracias por visitar mi blog.

¡Saludos!