En esta entrada explicamos cómo instalar la pila LAMP en CentOS 6 paso a paso, de modo que puedas desarrollar o instalar potentes aplicaciones y servicios web sobre tu viejo servidor o VPS CentOS.
Contenido
Antes de instalar LAMP en CentOS 6
Para poder seguir esta guía de instalación y configuración de la pila LAMP en CentOS 6 necesitarás cumplir los siguientes requisitos mínimos:
- Una instalación actualizada de CentOS 6.
- Acceso a línea de comandos con root o un usuario con privilegios de sudo.
- Conexión a Internet.
Esta guía es efectiva pero no abunda en detalles, ya que de cada componente de la pila LAMP en CentOS 6 encontrarás su guía individual en este mismo sitio web, con abundantes explicaciones en cuanto a instalación y configuración.
Cómo instalar LAMP en CentOS 6
Para instalar la pila LAMP en CentOS 6 será necesario añadir algunos repositorios extra al sistema, debido a la antigüedad de las versiones de los paquetes del repositorio base.
Empezaremos con el repositorio EPEL y las herramientas de yum:
~$ sudo yum install -y epel-release yum-utils
Seguimos con el repositorio Remi:
~$ sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-6.rpm
Aprovechamos para habilitar el repositorio de PHP que nos interese:
~$ sudo yum-config-manager --enable remi-php73
Si necesitas otra versión de PHP, sustituye en el comando anterior remi-php73 por remi-php54, remi-php55, remi-php56, remi-php70, remi-php71 o remi-php72.
Creamos el repositorio para MariaDB:
~$ sudo nano /etc/yum.repos.d/mariadb.org.repo
Con este contenido:
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.4/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Si el sistema es CentOS 6 32 bits, la última versión disponible de MariaDB es la 10.3, y cambiaremos el valor de la directiva baseurl por esta URL:
... baseurl = http://yum.mariadb.org/10.3/centos6-x86 ...
Es el momento de actualizar la información de las listas de paquetes de todos estos repositorios:
~$ sudo yum update -y
Hecho esto, instalamos los componentes de la pila LAMP:
~$ sudo yum install -y httpd php php-mysql MariaDB-server
Tras la descarga e instalación de los paquetes y sus dependencias tendremos dos nuevos servicios en CentOS 6, httpd y mysql, que no están iniciados.
Iniciar los servicios
Iniciaremos los servicios de la pila LAMP por vez primera para poder trabajar con ellos, empezando por el servidor web:
~$ sudo service httpd start
Y seguimos con el servicio de bases de datos:
~$ sudo service mysql start
Mientras que MariaDB se configura durante la instalación para iniciar automáticamente en cada arranque de CentOS 6, no ocurre lo mismo con el servidor web, por lo que debemos ajustarlo manualmente:
~$ sudo chkconfig --level 2345 httpd on
Configurar el firewall de CentOS 6 para la pila LAMP
Normalmente el firewall de CentOS 6 está activado por defecto, así que es necesario añadir reglas para los servicios de la pila LAMP.
Para evitar problemas consultaremos las reglas de entrada actuales de iptables:
~$ sudo iptables -L INPUT --line Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED 2 ACCEPT icmp -- anywhere anywhere 3 ACCEPT all -- anywhere anywhere 4 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh 5 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
En este ejemplo, la quinta regla rechaza el tráfico entrante, por lo que debemos insertar las nuevas reglas en esa posición o por encima.
Empezaremos añadiendo la regla para el servicio HTTP estándar:
~$ sudo iptables -I INPUT 5 -m state --state NEW -p tcp --dport 80 -j ACCEPT
En el caso de ofrecer contenido seguro, añadiremos una regla para el protocolo HTTPS:
~$ sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
Si tuvieras pensado acceder remotamente al servicio de base de datos, añadiremos esta otra:
~$ sudo iptables -I INPUT 7 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
Puedes comprobar cómo han quedado las reglas:
~$ sudo iptables -L INPUT --line Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED 2 ACCEPT icmp -- anywhere anywhere 3 ACCEPT all -- anywhere anywhere 4 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh 5 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http 6 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https 7 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:mysql 8 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Justo como pretendíamos. Para hacer esta configuración permanente, la guardaremos:
~$ sudo service iptables save
Cómo configurar la pila LAMP en CentOS 6
Para configurar la pila LAMP en CentOS 6 no hay que hacer mucho trabajo, pero unos pequeños ajustes dejarán los servicios ajustados a nuestras necesidades y con un mínimo de seguridad.
PHP
Uno de los elementos de la pila LAMP en CentOS 6 que debemos configurar es PHP, editando su archivo de configuración php.ini:
~$ sudo nano /etc/php.ini
Buscamos la directiva date.timezone para configurar la zona horaria del servidor para las aplicaciones web:
... ;date.timezone = ...
Descomentamos la línea y le asignamos el valor correspondiente:
... date.timezone = Europe/Madrid ...
Puedes encontrar el valor apropiado para tu zona, si no lo conoces, en https://www.php.net/manual/es/timezones.php.
En cuanto a la visualización de errores, la configuración por defecto está orientada a entornos de producción (no se muestran avisos ni errores en el navegador). Si tu entorno es para desarrollo interesa todo lo contrario, así que localiza estas directivas y dales estos valores:
... error_reporting = E_ALL ... display_errors = On ... display_startup_errors = On ...
Aplicamos los cambios recargando la configuración del servidor web:
~$ sudo service httpd reload
MariaDB
Debido a que el usuario root del servicio de bases de datos no tiene contraseña, que existen usuarios anónimos, base de datos de prueba, etc. interesa pasar el script mysql_secure_installation:
~$ sudo mysql_secure_installation ... Enter current password for root (enter for none): ... Set root password? [Y/n] Y New password: Re-enter new password: ... Remove anonymous users? [Y/n] Y ... Disallow root login remotely? [Y/n] Y ... Remove test database and access to it? [Y/n] Y ... Reload privilege tables now? [Y/n] Y ...
Así podremos asignar una contraseña a root y dejar un estado más seguro para el servicio.
Cómo probar la pila LAMP en CentOS 6
Vamos a comprobar la integración entre el servidor web y PHP mediante un pequeño script que situaremos en alguna ruta fácilmente accesible vía web:
~$ sudo nano /var/www/html/info.php
En contenido será la típica llamada a la función phpinfo():
<?php phpinfo();
Guardados los cambios, abrimos el navegador y usamos la URL que corresponda.
En este caso, el servidor CentOS 6 es accesible desde el dominio centos6.local.lan, por lo que con la URL http://centos6.local.lan/info.php accederemos a la página de información:
Podremos ver que el servidor web trabaja bien con PHP y además carga las extensiones para MariaDB/MySQL.
Conclusión
Ahora ya sabes cómo instalar y configurar los componentes de la pila LAMP en CentOS 6, una tarea ardua pero fructífera que permitirá sacarle todo el jugo a tu viejo servidor o VPS CentOS 6. Ahora puedes desarrollar tus aplicaciones web o instalar potentes CMS, por ejemplo.
Si tienes alguna duda o pregunta, alguna sugerencia o notificación, puedes dejar un comentario.
¡Apoya este sitio!
Y si gracias a esta guía de instalación y configuración ya tienes tu pila LAMP en CentOS 6 y quieres agradecérnoslo, la más mínima contribución ayuda mucho al mantenimiento de este sitio y la creación de más tutoriales de CentOS 6.
Puedes ayudar dejando una propina de tan sólo 1 $ a través de PayPal:
O, si te sientes especialmente generoso, invitándonos a un café:
¡Gracias!