lang="es"> Creando un servidor de pruebas (recargado) [4/7]
Recursos para formacion

Creando un servidor de pruebas (recargado) [4/7]

Ya nuestro CentOS está instalado y operativo para comenzar esta etapa. Luego de un último (y cuestionable) ajuste instalaremos Apache, MySQL y PHP vía repositorios externos al «base», instalaremos phpMyAdmin para poder administrar mejor a MySQL, ajustaremos la VirtualBox para que podamos acceder a los servicios que están instalados…

Arrancamos la VirtualBox desde su último estado. No hace falta hacer nada, sólo arrancarla como hemos visto antes y, si debimos retomar porque algo salió mal, bastará seleccionar la «instantánea» previa a esta parte… E ingresamos por SSH (o utilizando la consola provista por VirtualBox)…

Deshabilitando SELinux (¡Oh!… ¡Herejía!)

La historia «corta» es que hasta «ahora» sabíamos que si no podíamos acceder a una carpeta, archivo o proceso se debía básicamente a dos cosas: «permisos», y los cambiábamos alegremente con un «chmod»; o «propiedad», y disparábamos un «chown» para resolverlo. Si aún así no nos alcanzaba, nos ensuciábamos con un «sudo», «sudo su» o «peor» aún ingresando como root…

Entonces, apareció SELinux (Security Enhanced Linux) y todo se nos puso de revés. Ni chmod ni chown nos salvará en CentOS. Y acá es cuando aparecen los «roles», las «políticas» y…

Los que quieran la «historia larga» o bien adelantan leyendo en google o esperan a que termine esta «saga» y dedicaré tiempo a explicar cómo habilitarlo y tomar control de esta ¿facilidad?…

Dado que nuestro servidor es de pruebas, de acceso local y para «romper mientras aprendemos», para «no complicarnos» y poder hacer la tarea más fluída, lo deshabilitaremos:

# nano /etc/sysconfig/selinux

Bajamos hasta donde reza:

SELINUX=...

Y reemplazamos lo que diga luego del «=» por

SELINUX=disabled

Un implacable «reboot» y estamos listos para empezar, «de’nserio» (modismo local)…

NOTA: Hay manera de deshabilitar el SELinux momentáneamente y habilitarlo al finalizar sin inhabilitarlo hasta nuevo aviso. Pero, para evitar verificar si está o no está operativo, me parece más sano «apagarlo» y ya. Mis disculpas a los «puristas».

Agregado de Repositorios Accesorios

Una de las cosas que más desconciertos me provocó cuando empecé a utilizar CentOS, a diferencia de Ubuntu (y las derivadas Debian), es que los repositorios no se «habilitan» por defecto y que, encima, tienen «prioridades». ¡Imagínense!, acostumbrado a agregar un repositorio y disparar un «apt-get update ; apt-get install…» y ya disponía de lo que necesitaba, en CentOS me chocaba con advertencias y errores que, sencillamente, no comprendía… (Porque no me ponía a leer, así de mal acostumbrado estoy en Ubuntu)…

Entonces, cuando lo tomé con calma y me puse a «estudiar» aprendí dos reglas:

Primero, agreguemos los repositorios que nos hacen falta:

# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
Recuperando http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
advertencia:/var/tmp/rpm-tmp.ckrPuR: CabeceraV3 RSA/SHA256 Signature, ID de clave 0608b895: NOKEY
Preparando... ########################################### [100%]
 1:epel-release ########################################### [100%]

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Recuperando http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
advertencia:/var/tmp/rpm-tmp.bcpdKL: CabeceraV3 DSA/SHA1 Signature, ID de clave 00f97f56: NOKEY
Preparando... ########################################### [100%]
 1:remi-release ########################################### [100%]

Ahora explico:

En los próximos pasos tener muy en cuenta cuando en la línea se indica «–enablerepo«… Esa será la diferencia entre que salga bien o, tirarse de los pelos…

Instalando Apache y PHP

Son dos líneas, nada más para Apache (httpd) y PHP (y varias de sus librerías)…

# yum --enablerepo=remi,remi-php55 install httpd php php-common

Con esto se instala el Apache (httpd) y lo mínimo de PHP…

Va a pedir confirmación en dos oportunidades, la segunda porque debe seguir instalando algunas dependencias. Observar que, por utilizar el repositorio «remi», advierte que los paquetes no son «oficiales» por lo que deberemos abstenernos de plagar de reportes de errores al proyecto Fedora ni RedHat. Por suerte (y a diferencia de otras guías) no será necesario. Funciona.

# yum --enablerepo=remi,remi-php55 install php-pecl-apc php-cli \
php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongo php-sqlite \
php-pecl-memcache php-pecl-memcached php-gd php-mbstring \
php-mcrypt php-xml

Y con esta línea, se instalan algunos paquetes «adicionales» necesarios para PHP…

NOTA: como curiosidad, para hacer más fácil la lectura de las líneas largas, hago provecho de «\» para «quebrar» en varias líneas cuando se hacen largas… Esto no afecta en lo más mínimo a la ejecución si se «copia y pega»…

Una vez terminada la instalación debemos correr dos instrucciones más: la primera para «arrancar» el servidor Apache, cuyo servicio es «httpd»; la segunda provocará que se inicie cad vez que arranquemos el servidor:

# service httpd start
Iniciando httpd: httpd: apr_sockaddr_info_get() failed for mercurio.mercurio
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
 [ OK ]
# chkconfig --levels 235 httpd on

El servicio httpd nos indica que no puede determinar el nombre calificado completo de nuestro servidor… Lo resolvemos así…

NOTA: recuerden que yo utilicé mercurio.mercurio, si usaron otro, utilicen el que pusieron. También que en el primer caso se usa el nombre del equipo y el dominio, en el segundo sólo el nombre de dominio.

En ambos casos, guardamos antes de continuar… (Ya descarto a esta altura que saben hacerlo tanto si utilizan vi o nano)

Reiniciamos el servicio de Apache:

# service httpd restart
Parando httpd: [ OK ]
Iniciando httpd: [ OK ]

Ya no hay más errores… Ni advertencias…

Habilitando el firewall (iptables) de CentOS y reenvío de puertos  de Anfitrión a Invitado (otra vez)

Si en el navegador del anfitrión (recuerden, Ubuntu es nuestro anfitrión) apuntamos a http://localhost, lo más probable es que quien responda sea el Apache de Ubuntu y no de CentOS. O un mensaje de rechazo de conexión, o que no pudo conectarse al servidor, o el resultado de una búsqueda de Google…

Primero le indicaremos a CentOS que acepte las conexiones en el puerto 80. Hay varios modos de hacer esto… Opté por la más sencilla y rápida: editaremos el archivo /etc/sysconfig/iptables, LUEGO de la línea que hace referencia al puerto 22 ( –dport 22) agregamos la siguiente

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Guardamos, y reiniciamos el servicio de iptables:

service iptables restart

¿Recuerdan cómo agregar una redirección de puertos en VirtualBox?

Ahora agregamos otra regla, como la del gráfico:

Le decimos a VirtualBox que, cuando en el Anfitrión preguntemos por el puerto 28080, redirija el mismo al puerto 80 del Invitado, entonces Ubuntu solicitará por aquel puerto el contenido http a CentOS por éste… (No cambié el nombre de esta otra Regla, podría ser HTTP)…

Ahora, en el navegador del Anfitrión, escribimos http://localhost:28080 y deberíamos ver la página de bienvenida por defecto de Apache:

Instalando MySQL

Vamos por MySQL… (falta poco para terminar esta etapa)…

# yum --enablerepo=remi install mysql mysql-server
# service mysqld start
# /usr/bin/mysql_secure_installation

Atención ahora: nos hará unas preguntas y responderemos de este modo

Y eso es todo…

Ahora, indicamos que MySQL arranque en el inicio

# chkconfig mysqld on

Instalando phpMyAdmin (un último esfuerzo)

Esta parte será la que cierre este artículo, dando un previo desenlace a la serie…

# yum --enablerepo=remi,remi-php55 install phpmyadmin

Luego de confirmar, phpMyAdmin estará instalado pero aún no estará disponible para ser utilizado… Empecemos:

Editamos el archivo /etc/httpd/conf.d/phpMyAdmin.conf y la parte que dice:

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>
 AddDefaultCharset UTF-8

 <IfModule mod_authz_core.c>
 # Apache 2.4
 Require local
 </IfModule>
 <IfModule !mod_authz_core.c>
 # Apache 2.2
 Order Deny,Allow
 Deny from All
 Allow from 127.0.0.1
 Allow from ::1
 </IfModule>
</Directory>

La dejamos así:

Alias /pma /usr/share/phpMyAdmin

#<Directory /usr/share/phpMyAdmin/>
# AddDefaultCharset UTF-8
# <IfModule mod_authz_core.c>
#  Apache 2.4
# Require local
# </IfModule>
# <IfModule !mod_authz_core.c>
#  Apache 2.2
# Order Deny,Allow
# Deny from All
# Allow from 127.0.0.1
# Allow from ::1
# </IfModule>
#</Directory>

Guardamos… Y explico:

Reiniciamos Apache:

# service httpd restart

Y desde el navegador del anfitrión, vamos a http://localhost:22080/pma

El usuario es root y la contraseña que pusimos antes, cuando ejecutamos mysql_secure_installation

Hay 2 «advertencias» que nos indican que phpMyAdmin tiene una actualización y que el almacenamiento no está completamente configurado…

Es un buen momento para guardar el estado de nuestra máquina (pongamos un nombre como «CentOS con AMP completo») y dejar el resto para el paso siguiente…

Continuamos con…

Salir de la versión móvil