Instale Apache, MySQL 8 o MariaDB 10 y PHP 7 en CentOS 7


Esta guía práctica explica cómo instalar la última versión de Apache, MySQL 8 o MariaDB 10 y PHP 7 junto con los módulos PHP requeridos en RHEL/CentOS 7/6 y Fedora 24-29.

Esta combinación del sistema operativo (Linux) con el servidor web (Apache), el servidor de base de datos (MariaDB/MySQL) y el lenguaje de programación del lado del servidor (PHP) se conoce como pila LAMP.

Desde septiembre de 2015, PHP 5.4 ya no es compatible con el equipo de PHP y ha llegado al final de su vida útil, aún así, PHP 5.4 se envía con RHEL/CentOS 7/6 con un cambio de versión menor y Red Hat lo admite, por lo que se actualiza a una versión superior. versión no requerida. Sin embargo, se recomienda encarecidamente actualizar PHP 5.4 a PHP 5.5+ para mayor seguridad y rendimiento.

Esto es lo que incluye su distribución actual de Linux:

Para hacer esto, habilitaremos el repositorio EPEL y Remi y usaremos la herramienta de administración de paquetes disponible en Fedora).

Paso 1: Instalación de EPEL y Remi Repository

EPEL (Paquetes adicionales para Enterprise Linux) es un repositorio basado en la comunidad que ofrece paquetes de software complementarios para distribuciones de Linux basadas en RHEL.

Remi es un repositorio donde puede encontrar las últimas versiones de la pila PHP (con todas las funciones) para instalar en las distribuciones de Fedora y Enterprise Linux.

# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
# subscription-manager repos --enable=rhel-7-server-optional-rpms
# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
# subscription-manager repos --enable=rhel-6-server-optional-rpms
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

Paso 2: Instalar el servidor web Apache

Apache es un servidor web HTTP gratuito y de código abierto que se ejecuta en la mayoría de los sistemas operativos basados en UNIX, así como en Windows. Como tal, se puede utilizar para servir páginas web estáticas y manejar contenido dinámico. Informes recientes muestran que Apache es el servidor número uno utilizado en sitios web y computadoras con acceso a Internet.

Para instalar el servidor web Apache, primero actualice los paquetes de software del sistema e instálelo usando los siguientes comandos.

# yum -y update
# yum install httpd

Una vez instalado el servidor web Apache, puede habilitarlo para que se inicie automáticamente al arrancar el sistema.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd

Si está ejecutando firewalld, asegúrese de permitir el tráfico de Apache en el firewall.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

Paso 3: Instalar PHP usando Remi Repository

PHP (preprocesador de hipertexto) es un lenguaje de programación del lado del servidor de código abierto y gratuito que se adapta mejor al desarrollo web. Se puede utilizar para producir páginas web dinámicas para un sitio web y se encuentra con mayor frecuencia en servidores * nix. Una de las ventajas de PHP es que se puede ampliar fácilmente mediante el uso de una amplia variedad de módulos.

Para instalar PHP, primero debe habilitar el repositorio de Remi instalando yum-utils , una colección de programas útiles para administrar repositorios y paquetes de yum.

# yum install yum-utils

Una vez instalado, puede usar yum-config-manager proporcionado por yum-utils para habilitar el repositorio Remi como el repositorio predeterminado para instalar diferentes versiones de PHP como se muestra.

Por ejemplo, para instalar la versión PHP 7.x, use el siguiente comando.

------------- On CentOS & RHEL ------------- 
# yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
# yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
# yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
# yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
# dnf --enablerepo=remi install php70      [Install PHP 7.0]
# dnf --enablerepo=remi install php71      [Install PHP 7.1]
# dnf --enablerepo=remi install php72      [Install PHP 7.2]
# dnf --enablerepo=remi install php73      [Install PHP 7.3]

A continuación, vamos a instalar todos los siguientes módulos PHP en este artículo. Puede buscar más módulos relacionados con PHP (quizás para integrar una funcionalidad específica que sus aplicaciones web necesitan) con el siguiente comando:

------ RHEL/CentOS 7/6------
# yum search all php     

------ Fedora ------
# dnf search all php   

Independientemente de la distribución, los comandos anteriores devuelven la lista de paquetes en los repositorios actualmente habilitados que incluyen la palabra php en el nombre del paquete y/o la descripción.

Aquí están los paquetes que instalaremos. Tenga en cuenta que los conectores MySQL (PHP, Perl, Python, Java, etc.) funcionarán sin cambios con MariaDB ya que ambos sistemas usan el mismo protocolo de cliente y las bibliotecas de cliente son compatibles con los binarios.

  1. MariaDB/MySQL (php-mysql): un objeto compartido dinámico que agregará compatibilidad con MariaDB a PHP.
  2. PostgreSQL (php-pgsql): soporte de base de datos PostgreSQL para PHP.
  3. MongoDB (php-pecl-mongo): una interfaz para comunicarse con la base de datos MongoDB en PHP.
  4. Genérico (php-pdo): un objeto compartido dinámico que agregará una capa de abstracción de acceso a la base de datos a PHP.
  5. Memcache (php-pecl-memcache): Memcached es un demonio de almacenamiento en caché diseñado especialmente para que las aplicaciones web dinámicas reduzcan la carga de la base de datos almacenando objetos en la memoria.
  6. Memcached (php-pecl-memcached): una extensión que usa la biblioteca libmemcached para proporcionar API para comunicarse con servidores memcached.
  7. GD (php-gd): un objeto compartido dinámico que agrega soporte para usar la biblioteca de gráficos gd en PHP.
  8. XML (php-xml): un objeto compartido dinámico que agrega soporte a PHP para manipular documentos XML.
  9. MBString (php-mbstring): una extensión para manejar cadenas de varios bytes en aplicaciones PHP.
  10. MCrypt (php-mcrypt): una biblioteca Mcrypt para scripts PHP.
  11. APC (php-pecl-apcu): módulo APC utilizado para optimizar y almacenar en caché el código PHP.
  12. CLI (php-cli): interfaz de línea de comandos para PHP.
  13. PEAR (php-pear): marco del repositorio de aplicaciones para PHP.

Instale los siguientes módulos PHP necesarios con el siguiente comando.

------ On RHEL/CentOS 7/6 ------
# yum --enablerepo=remi install php-mysqlnd php-pgsql php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
# dnf --enablerepo=remi install php-mysqlnd php-pgsql php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

Paso 4: Instalación de la base de datos MySQL o MariaDB

En esta sección, le mostraremos la instalación de las bases de datos MySQL y MariaDB, por lo que depende de usted qué elegir según sus requisitos.

MySQL es uno de los sistemas de administración de bases de datos relacionales (RDBMS) de código abierto más populares del mundo que ejecuta cualquier servidor al proporcionar acceso de múltiples usuarios a múltiples bases de datos. MySQL se ejecuta con Apache.

Para instalar la última versión de MySQL 8.0, instalaremos y habilitaremos el repositorio oficial de software MySQL Yum usando los siguientes comandos.

# rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm        [On RHEL/CentOS 7]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el6-1.noarch.rpm     [On RHEL/CentOS 6]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc29-1.noarch.rpm    [On Fedora 29]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc28-1.noarch.rpm    [On Fedora 29]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc27-1.noarch.rpm    [On Fedora 29]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc26-1.noarch.rpm    [On Fedora 29]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc25-1.noarch.rpm    [On Fedora 29]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc24-1.noarch.rpm    [On Fedora 29]

Después de instalar el repositorio de software MySQL Yum para su plataforma Linux, ahora instale la última versión de MySQL (actualmente 8.0) usando el siguiente comando.

# yum install mysql-community-server      [On RHEL/CentOS]
# dnf install mysql-community-server      [On Fedora]

Después de la instalación exitosa de MySQL, es hora de iniciar el servidor MySQL con el siguiente comando.

# service mysqld start

Consulte nuestro artículo sobre cómo proteger la instalación de la base de datos MySQL 8.

MariaDB es una bifurcación del conocido MySQL, uno de los sistemas de gestión de bases de datos relacionales (RDBMS) más populares del mundo. Está completamente desarrollado por la comunidad y, como tal, está destinado a seguir siendo FOSS y compatible con la GPL.

Si es o ha sido un usuario de MySQL, la migración a MariaDB será un proceso muy sencillo: los comandos populares para conectarse, realizar copias de seguridad y restaurar y administrar bases de datos son idénticos en ambos RDBMS.

En la última distribución RHEL/CentOS 7, MariaDB es un reemplazo directo para MySQL y en RHEL/CentOS 6 MySQL sigue siendo el mismo y no se le permite instalar MariaDB en RHEL/CentOS 6 desde el repositorio predeterminado, pero puede instalar MariaDB usando repositorio oficial de MariaDB.

Para habilitar el repositorio MariaDB en distribuciones RHEL/CentOS 7, cree un archivo llamado /etc/yum.repos.d/mariadb.repo con el siguiente contenido:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Nota: Como dije anteriormente, también puede instalar MariaDB en RHEL/CentOS 6 usando el repositorio oficial de MariaDB como se indicó anteriormente.

Después de habilitar el repositorio MariaDB, haga lo siguiente:

------ On RHEL/CentOS 7 ------
# yum --enablerepo=remi install httpd MariaDB-client MariaDB-server

------ On Fedora ------
# dnf --enablerepo=remi install httpd MariaDB-client MariaDB-server

Paso 5: habilitar/iniciar Apache y MySQL/MariaDB

------ Enable Apache and MariaDB on Boot ------
# systemctl enable httpd
# systemctl enable mariadb

------ Start Apache and MariaDB ------
# systemctl start httpd
# systemctl start mariadb
------ Enable Apache and MySQL on Boot ------
# chkconfig --levels 235 httpd on
# chkconfig --levels 235 mysqld on

------ Start Apache and MySQL ------
# /etc/init.d/httpd start
# /etc/init.d/mysqld start

Paso 6: Verificación de la instalación de PHP

Sigamos con la forma clásica de probar PHP. Cree un archivo llamado test.php en/var/www/html y agregue las siguientes líneas de código.

La función phpinfo() muestra una gran cantidad de información sobre la instalación actual de PHP:

<?php
	phpinfo();
?>

Ahora apunte su navegador web a http:// [server] /test.php y verifique la presencia de los módulos instalados y el software adicional desplazándose hacia abajo en la página (reemplace [server] con su dominio o la dirección IP de su servidor). Su salida debería ser similar a:

¡Felicidades! Ahora tiene una instalación de trabajo más reciente de una pila LAMP. Si algo no salió como esperaba, no dude en contactarnos mediante el formulario a continuación. Las preguntas y sugerencias también son bienvenidas.

Nota: también puede instalar MariaDB en otras distribuciones creando un repositorio personalizado siguiendo las instrucciones proporcionadas aquí.