GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Apache, PHP 7.2 y MySQL en CentOS 7.4 (LAMP)

Este tutorial muestra cómo instalar un servidor web Apache en un servidor CentOS 7 con PHP (mod_php) y una base de datos MySQL. El acrónimo LAMP es la abreviatura de L entrada, A pache, M ySQL, P HP.

Este tutorial actualizado muestra la instalación de las últimas versiones de PHP (7.0, 7.1 y 7.2) en CentOS 7.4.

1 nota preliminar

En este tutorial, utilizo el nombre de host server1.example.com con la IP p 192.168.1.100. Estas configuraciones pueden diferir para usted, por lo que debe reemplazarlas cuando corresponda.

Agregaré el repositorio EPEL aquí para instalar la última versión de phpMyAdmin de la siguiente manera:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release

Para editar archivos en el shell, instalaré el editor nano. Si prefiere vi para la edición de archivos, omita este paso.

yum -y install nano

2 Instalación de MySQL / MariaDB

MariaDB es una bifurcación de MySQL del desarrollador original de MySQL, Monty Widenius. MariaDB es compatible con MySQL y elegí usar MariaDB aquí en lugar de MySQL. Ejecute este comando para instalar MariaDB con yum:

yum -y install mariadb-server mariadb

Luego creamos los enlaces de inicio del sistema para MySQL (para que MySQL se inicie automáticamente cada vez que se inicia el sistema) e iniciamos el servidor MySQL:

systemctl start mariadb.service
systemctl enable mariadb.service

Establecer contraseñas para la cuenta raíz de MySQL:

mysql_secure_installation
[[email protected] ~]# mysql_secure_installation

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): <--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]
New password: <--yourmariadbpassword
Re-enter new password: <--yourmariadbpassword
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] <--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] <--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] <--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] <--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!
[[email protected] ~]#
 

3 Instalación de Apache

CentOS 7 se envía con Apache 2.4. Apache está disponible directamente como un paquete de CentOS 7, por lo que podemos instalarlo así:

yum -y install httpd

Aquí una captura de pantalla del proceso de instalación.

Ahora configure su sistema para iniciar Apache en el momento del arranque...

systemctl start httpd.service
systemctl enable httpd.service

Para poder acceder al servidor web desde el exterior, tenemos que abrir los puertos HTTP (80) y HTTPS (443) en el firewall. El firewall predeterminado en CentOS es firewalld, que se puede configurar con el comando firewalld-cmd.

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

Ahora dirija su navegador a la dirección IP de su servidor, en mi caso http://192.168.1.100, y debería ver la página de marcador de posición de Apache:

4 Instalación de PHP

La versión de PHP que viene con CentOS por defecto es bastante antigua (PHP 5.4). Por lo tanto, le mostraré en este capítulo algunas opciones para instalar versiones más nuevas de PHP como PHP 7.0 o 7.1 desde el repositorio de Remi.

Agregue el repositorio Remi CentOS.

rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Instale yum-utils ya que necesitamos la utilidad yum-config-manager.

yum -y install yum-utils

y ejecuta yum update

yum update

Ahora debe elegir qué versión de PHP desea usar en el servidor. Si desea utilizar PHP 5.4, continúe con el capítulo 4.1. Para instalar PHP 7.0, siga los comandos del capítulo 4.2, para PHP 7.1, capítulo 4.3 y para PHP 7.1, use el capítulo 4.4 en su lugar. Siga solo uno de los capítulos 4.x y no todos, ya que solo puede usar una versión de PHP a la vez con Apache mod_php.

4.1 Instalar PHP 5.4

Para instalar PHP 5.4, ejecute este comando:

yum -y install php

4.2 Instalar PHP 7.0

Podemos instalar PHP 7.0 y el módulo Apache PHP 7.0 de la siguiente manera:

yum-config-manager --enable remi-php70
yum -y install php php-opcache

4.3 Instalar PHP 7.1

Si desea usar PHP 7.1 en su lugar, use:

yum-config-manager --enable remi-php71
yum -y install php php-opcache

4.4 Instalar PHP 7.2

Si desea usar PHP 7.2 en su lugar, use:

yum-config-manager --enable remi-php72
yum -y install php php-opcache

En este ejemplo y en la máquina virtual descargable, usaré PHP 7.2.

Debemos reiniciar Apache para aplicar los cambios:

 systemctl restart httpd.service

5 Probar PHP / Obtener detalles sobre su instalación de PHP

La raíz del documento del sitio web predeterminado es /var/www/html. Crearemos un pequeño archivo PHP (info.php) en ese directorio y lo llamaremos en un navegador para probar la instalación de PHP. El archivo mostrará muchos detalles útiles sobre nuestra instalación de PHP, como la versión de PHP instalada.

nano /var/www/html/info.php
<?php
phpinfo();

Ahora llamamos a ese archivo en un navegador (por ejemplo, http://192.168.1.100/info.php):

Como puede ver, PHP 7.2 está funcionando y funciona a través del controlador de Apache 2.0, como se muestra en la línea API del servidor. Si se desplaza hacia abajo, verá todos los módulos que ya están habilitados en PHP. MySQL no se encuentra en la lista, lo que significa que aún no tenemos compatibilidad con MySQL en PHP.

6 Obtener compatibilidad con MySQL en PHP

Para obtener soporte de MySQL en PHP, podemos instalar el paquete php-mysqlnd. Es una buena idea instalar algunos otros módulos de PHP, ya que podría necesitarlos para sus aplicaciones. Puede buscar módulos PHP5 disponibles como este:

yum search php

Elige los que necesites e instálalos así:

yum -y install php-mysqlnd php-pdo

En el siguiente paso, instalaré algunos módulos PHP comunes que requieren los sistemas CMS como Wordpress, Joomla y Drupal:

yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel

Ahora reinicie el servidor web Apache:

 systemctl restart httpd.service

Ahora vuelva a cargar http://192.168.1.100/info.php en su navegador y desplácese hacia abajo hasta la sección de módulos nuevamente. Ahora debería encontrar muchos módulos nuevos como curl, etc.:

Si ya no necesita la salida de información php, elimine ese archivo por razones de seguridad.

rm /var/www/html/info.php

7 Instalación de phpMyAdmin

phpMyAdmin es una interfaz web a través de la cual puede administrar sus bases de datos MySQL.
phpMyAdmin ahora se puede instalar de la siguiente manera:

yum -y install phpMyAdmin

Ahora configuramos phpMyAdmin. Cambiamos la configuración de Apache para que phpMyAdmin permita conexiones no solo desde localhost (comentando la estrofa  y agregando la línea 'Require all granted'):

nano /etc/httpd/conf.d/phpMyAdmin.conf
[...]
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
# <RequireAny>
# Require ip 127.0.0.1
# Require ip ::1
# </RequireAny>
Require all granted
</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>
<Directory /usr/share/phpMyAdmin/> Options none AllowOverride Limit Require all granted </Directory>

[...]

A continuación, cambiamos la autenticación en phpMyAdmin de cookie a http:

nano /etc/phpMyAdmin/config.inc.php
[...]
$cfg['Servers'][$i]['auth_type']     = 'http';    // Authentication method (config, http or cookie based)?
[...]

Reiniciar Apache:

systemctl restart  httpd.service

Luego, puede acceder a phpMyAdmin en http://192.168.1.100/phpmyadmin/:

8 Descargar como máquina virtual

Esta configuración está disponible como descarga de máquina virtual en formato ova/ovf (compatible con VMWare y Virtualbox) para forjar suscriptores.

Información de inicio de sesión para la máquina virtual

  • La contraseña raíz de Linux es:howtoforge.
  • La contraseña raíz de MySQL es:howtoforge

Cambie ambas contraseñas en el primer inicio de sesión.

  • La dirección IP de la máquina virtual es 192.168.1.100

9 Enlaces

Apache:http://httpd.apache.org/
    PHP:http://www.php.net/
    MySQL:http://www.mysql.com/
    CentOS:http://www.centos.org/
    phpMyAdmin:http://www.phpmyadmin.net/


Cent OS
  1. Cómo instalar Apache, MySQL, PHP (LAMP) en CentOS/RHEL 7

  2. Cómo instalar Apache y PHP (pila LAMP) en Rocky Linux/Centos 8

  3. Cómo instalar LAMP (Linux Apache MySQL y PHP) en CentOS 6 con phpMyAdmin y APC cache

  4. Cómo instalar LAMP y ejecutar osTicket en CentOS 6

  5. Cómo instalar LAMP en CentOS 7

Cómo instalar el servidor LAMP en CentOS 8

Cómo instalar LAMP (Linux Apache, MariaDB, PHP) en CentOS 7

Cómo instalar LAMP (Apache, MariaDB, PHP) en un servidor en la nube CentOS 7.2

Cómo instalar una pila LAMP (Apache, MariaDB, PHP) en CentOS 7

Cómo instalar LAMP en Ubuntu 15.10 (Linux, Apache, MySQL y PHP)

Cómo instalar LAMP en Fedora 23 (Linux, Apache, MySQL y PHP)