LAMP en CentOS 7

Imagen
Hace un tiempo atrás hice un guía de instalación de un servidor LAMP (Linux, Apache, MariaDB y PHP) la cual me quedó bastante decente, pero el tema como lo presenté no me quedó tan bueno.

Ahora lo que les traigo es algo muy similar pero en CentOS. Como sabrán CentOS es un clon de RHEL (RedHat Enterpise Linux) es cual tiene software de gran calidad y muy potente, además trae un gran cantidad de cambios y mejores en relación de su versión anterior CentOS 6.5, Algunas de ellas son:

Kernel Linux v.3.10
MariaDB en reemplazo de MySQL
XFS como sistema de archivos predeterminado
Systemd
Apache 2.4
Y muchas otras mejoras.

Indice de contenido

– Instalación del sistema operativo (CentOS 7)
– Configuración inicial
– Instalación y configuración de Apache (servidor web)
– Instalación y configuración de MariaDB (base de datos)
– Instalación de PHP5
– Instalación y configuración de phpMyAdmin
– Instalación y configuración de webmin

Instalación del sistema operativo CentOS 7

Lo primero que debemos hacer es descargar la iso de CentOS (solo está disponible X86_64) desde:

http://centos.xfree.com.ar/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso


Nota: Usamos un servidor réplica de acá de Argentina por que siempre es mejor el ancho de banda nacional que el internacional.

Teniendo ya descargada la iso la grabamos a un DVD y hacemos que nuestra máquina destinada a servir inicie desde ese DVD.

Lo primero que hay que hacer es seleccionar nuestro idioma y dar clic en siguiente (ver imagen).

Imagen

Llegamos a una pantalla que se llama «Resumen de la instalación». No le daré demasiada importancia a los apartados ya que son muy similares a todas las otras distros, solo iré a fondo con selección de software.

– Destino de la instalación = todo lo relacionado con disco duro y particiones.

– Fecha & Hora = debería estar en zona horaria de Chile continental, si están en otro lugar pueden reconfigurar.

– Teclado = Acá deberiamos tener la distribución Español Latinoamérica.

– Red y nombre de Host = Deberia aparecer como no conectado, hacemos clic y hacemos clic en activar.

– Selección de software = Aqui podemos seleccionar entre diferentes tipos de servidor, pero ahora solo seleccionaremos «instalación minima» y «herramientas de Desarrollo». No instalaremos nada mas, ya que todo el software lo instalaremos mas adelante uno por uno y lo iremos configurando.

Nota muy importante: En el apartado de red y nombre de host está la IP que nos asignó nuestro servidor DHCP, es importante anotarla por que a futuro nos servirá de mucho.
Entonces damos clic en iniciar instalación (ver imagen)

Imagen

Si todo ha ido bien, deberiamos llegar a una pantalla que se llama «Ajustes de usuario» Donde configuraremos solo dos cosas:

– Contraseña de usuario raiz (root)
– Crearemos un usario estándar del sistema y le asignaremos una contraseña.

(ver imagen)Imagen

Habiendo ingresado toda la información damos clic en finalizar y luego en reinicar.

Hasta aqui llega la parte gráfica de todo ésto, ya que toda la instalción y configuración de software la haremos desde la terminal.

Despué del reinico del nustro servidor solo tendremos una pantalla negra que nos pide un nombre de usuario y contraseña.

Nota: Desde este punto ya no incluiré muchas imágenes solo cuando sea necesario ya que todo será por terminal y solo introduciremos comandos.

Como usuario ponemos «root»
Como contraseña la contraseña de root que elegimos cuando estabamos instalando.


Configuración inicial

Lo primero que haremos será verificar si hay actualizaciones disponibles para nuestro sistema.
– (comando) yum -y update
Con esto yum buscará todas las actualizaciones disponibles en los repositorios que tenemos configurados y las instalará de manera automática.

En segundo lugar instalaremos el editor Nano y Wget.
– (comando) yum -y install nano
– (comando) yum -y install wget
Tercero, deshabilitaremos SELinux.
1.- Con Nano editamos el archivos config que se encuentra en /etc/selinux
– (comando) nano /etc/selinux/config

2.- Dentro del archivo buscamos la siguiente linea:
SELINUX=enforcing
Y la reemplazamos por esta:
SELINUX=permissive

Con CTRL+X cerramos y nos preguntará si deseamos guardar presionamos S y damos enter, con esto ya quedan los cambios guardados.

Nota: Siempre que hagamos cambios con nano para guardarlos hacemos un CTRL+X y aceptamos con S. Desde ahora daré por asumido que siempre se hará esto.

Instalación y configuración de Apache (servidor web)

Como dije antes estaremos a la vanguardia por lo tanto Apache se instalará en su versión 2.4 (Debian wheezy trae Apache 2.2.22)

Para instalar ejecutamos el siguiente comando:
– (comando) yum -y install httpd

Entonces tenemos nuestro Apache 2.4 instalado pero el servicio aun no se está ejecutando, para inciarlo ejecutamos el siguiente comando:
– (comando)systemctl start httpd.service

Ok, tenemos Apache instalado y el sevicio corriendo pero si reiniciamos el sistema el servicio no se auto inicará, para lograr un auto inicio ejecutamos el siguiente comando:
– (comando) systemctl enable httpd.service

Ahora toca abrir los puertos en nuestro firewall para que podamos tener acceso a nuestro servidor web, son dos puertos los que tenemos que abrir: 80 (http) y 443 (https), esto lo hacemos con los siguientes comandos:

– (comando) firewall-cmd –permanent –zone=public –add-service=http
– (comando)
firewall-cmd –permanent –zone=public –add-service=https
– (comando)
firewall-cmd –reload

Explicaré un poco que acabamos de hacer en nustro firewall:
En CentOS 7 administramos el firewall por terminal con
firewall-cmd, –permanent es para que la regla sea permanente, –zone es la zona en la cual habilitaremos la regla y con –add-service agregamos el servicio, tambien podemos agregar directamente el puerto con –add-port=80/tcp.

Ahora toca ver si efectivamente está funcionando Apache, con la IP de nuestro servidor conectamos desde nuestro navegador, en mi caso la Ip del servidor es 192.168.1.43
Si todo va bien en nuetsro navegador deberiamos ver algo como esto (ver imagen)

Nota: Los archivos html o php públicos se encuentran en /var/www/html por si queremos publicar algo tenemos que ponerlos ahí.

Instalación y configuración de MariaDB (base de datos)

MariaDB es un fork de MySQL el cual fue hecho por ex miembros del equipo MySQL y son comtabibles entre si. unas de las ventajas principales de MariaDB son: Motor de almacenamiento nuevo Aria en reemplazo de MyISAM (que reemplaza con ventajas) y otro motor llamado XtraDB en reemplazo de InnoDB, en los test con grandes cargas de trabajo MariaDB ha mostrado un mayor desempeño que MySQL.

Instalamos MariaDB con el siguiente comando:
– (comando) yum -y install mariadb-server mariadb
Como pasó con Apache, MariaDB se instala pero el servico no se inicia y no queda con inicio automático, para solucionar esto ejecutamos:
-(comando) systemctl start mariadb.service
-(comando) systemctl enable mariadb.service

Ya instalada MariaDB solos nos queda configurar el password para root.

– (comando) mysql_secure_installation

Con este comando nos preguntará una seriae de cosas que explico mas abajo (hacer clic en ver)

root@server1 ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): <–Presionar ENTER
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] <–Presionar Y
New password: <–Contraseña para mariadb
Re-enter new password: <–Contraseña para mariadb
Password updated successfully!
Reloading privilege tables..
… Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] <–Presionar ENTER
… Success!

Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] <–Presionar ENTER
… Success!

By default, MariaDB comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] <–Presionar ENTER
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] <–Presionar ENTER
… Success!

Cleaning up…

All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!



Instalación de PHP5

Para instalar PHP5 ejecutamos lo siguiente:
-(comando) yum -y install php

Con eso dejamos instalado PHP5 en nuestro sistema, ahora solo queda hacer la prueba de que esté funcionando. Con Nano creamos en /var/www/html un archivo llamado info.php:
-(comando) nano /var/www/html/info.php
El contenido para este archivo será:

<?php
phpinfo();
?>

Ahora reiniciamos el servicio httpd con:
– (comando) systemctl restart httpd.service

Y por ultimo hacemos la prueba con nuestro navegador con la url http://ipdenuestroservidor/info.php

Debería aparecer un página similar a la que se muestra en la siguiente imágen (ver imagen)

Imagen



Hasta ahora tenemos instalado y funcionando Apache, MariaDB y PHP5. Entonces seguimos con la instalación de phpMyAdmin

Instalación y configuración de phpMyAdmin

Cuando instalamos phpMyAdmin desde los repos que trae configurado CentOS nos instala una versión un tanto antigua, para tener una algo mas nueva debemos instalar un nuevo repositorio llamado EPEL (Extra Packages for Enterprise Linux) y luego instalar el paquete.

– (comando) rpm -ivh http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm

Con esto ya podemos instalar phpMyAdmin, cuando ejecutamos el comando mostrará una gran lista de paquetes que se van a instalar, estas son las dependecias necesarias para ejecutar correctamente phpMyAdmin:
(comando) yum -y install phpMyAdmin

Ahora queda configurar el archivo que está en /etc/httpd/conf.d/ paraque podamos acceder a /phpMyAdmin desde nuestro navegador.
– (comando) nano /etc/httpd/conf.d/phpMyAdmin.conf

Dentro del archivos buscamos la primera linea que dice:Require ip 127.0.01
Y la reemplazamos por:
Require all granted

Ahora si accedemos desde nuestro navegador a la url http://laipdenuestroservidor/phpMyAdmin no deberiamos tener problemas para ingresar.


Instalar Webmin

Ya solo nos queda instalar webmin ara terminar con está mini guía de LAMP en CentOS 7.
Webmin es una herramienta que se usa para administrar un sistema vía web, si no estamos muy acostumbrados a trabajar con la terminal de seguro administrar nuestro servidor con esta herramienta nos salvará de varios dolores de cabeza.

Lo primero que debemos hacer es instalar el repo de webmin:

– (comando) nano /etc/yum.repos.d/webmin.repo

Dentro de ese archivo que creamos con Nano ponemos la siguiente:

[Webmin]
name=Wemin Distribution Neutral
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1

Despues descargamos la clave GPG del repo:
wget http://www.webmin.com/jcameron-key.asc

Y la importamos:
rpm –import jcameron-key.asc

Actualizamos los repos:
yum check updates

Instalamos webmin:
yum -y install webmin

Abrimos el puerto en nuestro Firewall por que cual conectaremos a Webmin (puerto 10000):
firewall-cmd –permanent –zone=public –add-port=10000/tcp

Recargamos la configuración del firewall para qe los cambios tengan efecto.

firewall-cmd –reload

Si todo ha ido bien, podemos tener acceso a nuestro servidor por Webmin, probamos a la url:
http://laipdanuestroservidor:10000

Ingresamos con los mismos datos que ingresamos a la terminal como root.

Eso seria todo, si quieren saber algo mas pueden preguntar, si tienen dudas lo mismo.

Espero haber sido claro en todo lo que expliqué. Esta guía la hice exclusivamente para Portalnet. Hay algunas otras similares en internet pero no muchas están en Español y no cubren todos los temas que yo toqué aquí.
Un gran apoyo lo conseguí de las páginas oficiales y documentación del software (gran parte en Inglés ya que aun hay poca documentación exclusiva de CentOS 7 en Español) y del un How To en inglés que se encuentra en el sitio:

FUENTE: http://www.howtoforge.com/apache_php_mysql_on_centos_7_lamp



Ojalá les sea de ayuda.

Sitios de interés:
www.centos.org
www.apache.org
www.php.net
www.webmin.com
www.phpmyadmin.net

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *