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

Instale Apache, MariaDB, PHP (LAMP Stack) en CentOS 8

LÁMPARA stack es la combinación de L entrada, A servidor web pache, M ySQL/M ariaDB, P HP. Esta guía paso a paso explica cómo instalar Apache, MariaDB, PHP (LAMP Stack) en el servidor mínimo de CentOS 8. La pila LAMP se utiliza para implementar aplicaciones basadas en web y alojar sitios web dinámicos. Probé esta guía en CentOS 8, sin embargo, los pasos que se indican a continuación también deberían funcionar en el servidor RHEL 8. Comencemos.

Instalar Apache, MariaDB, PHP (pila LAMP) en CentOS 8

Aquí están los detalles de mi máquina de prueba:

  • Sistema operativo - Servidor mínimo CentOS 8 (8.1.1911 (Core))
  • Dirección IP - 192.168.225.52/24
  • Nombre de host - centos8.ostechnix.lan

Todos los comandos dados a continuación deben ejecutarse como "raíz" usuario. Si inicia sesión como usuario normal, use 'sudo' delante de cada comando. El # El símbolo representa los comandos Soy como usuario root.

Nota:

Una de las principales actualizaciones de CentOS 8 es que el administrador de paquetes predeterminado se migró de YUM a DNF. Sin embargo, aún puede YUM en CentOS 8 si se acostumbra. El uso de DNF es exactamente el mismo que el de YUM. He compilado una lista de ejemplos de comandos DNF para principiantes. Si estás interesado en saber cómo usar DNF, echa un vistazo al siguiente enlace.

  • Ejemplos de comandos DNF para principiantes

1. Instale el servidor web Apache en CentOS 8

Para instalar Apache en CentOS 8, ejecute el siguiente comando como usuario root:

# dnf install httpd

Una vez que Apache esté instalado, habilite e inicie el servicio de Apache usando el comando:

# systemctl enable httpd
# systemctl start httpd

Alternativamente, puede usar el siguiente comando de una sola línea para habilitar e iniciar el servicio apache de una sola vez.

# systemctl enable --now httpd

Compruebe si el servicio de Apache se está ejecutando o no con el comando:

# systemctl status httpd

Salida de muestra:

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 12:25:08 IST; 39min ago
     Docs: man:httpd.service(8)
 Main PID: 1736 (httpd)
   Status: "Total requests: 6; Idle/Busy workers 100/0;Requests/sec: 0.00253; Bytes served/sec: 13>
    Tasks: 213 (limit: 11501)
   Memory: 25.7M
   CGroup: /system.slice/httpd.service
           ├─1736 /usr/sbin/httpd -DFOREGROUND
           ├─1873 /usr/sbin/httpd -DFOREGROUND
           ├─1874 /usr/sbin/httpd -DFOREGROUND
           ├─1875 /usr/sbin/httpd -DFOREGROUND
           └─1876 /usr/sbin/httpd -DFOREGROUND

Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Starting The Apache HTTP Server...
Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Started The Apache HTTP Server.
Feb 07 12:25:08 centos8.ostechnix.lan httpd[1736]: Server configured, listening on: port 80

Como puede ver, el servicio Apache está cargado y ejecutándose. Y está escuchando escuchando en el puerto 80. Para encontrar qué servicio está escuchando en un puerto en particular, consulte esta guía .

Compruebe la versión de Apache:

# httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Dec 23 2019 20:45:34

A continuación, todos los puertos predeterminados del servidor Apache 80 y 443 a través de su cortafuegos y enrutador.

Para permitir el puerto http 80 a través del cortafuegos, ejecute:

# firewall-cmd --permanent --add-service=http

Para permitir el puerto https 443:

# firewall-cmd --permanent --add-service=https

Reinicie el firewall para aplicar los cambios usando el comando:

$ systemctl restart firewalld

1.1. Probar el servidor web Apache

Acabamos de terminar todos los pasos necesarios para implementar un servidor web Apache. Avancemos y verifiquemos si realmente funciona o no. Para hacerlo, abra su navegador web (en cualquier sistema remoto en la red, porque es un servidor mínimo sin GUI) y navegue hasta - http://dirección-ip . Si tiene una GUI instalada en su sistema CentOS, puede navegar a http://localhost o http://dirección-ip/ o http://nombre-de-dominio .

Si todo está bien, verá la siguiente página de prueba en su navegador.

Bueno, ¡el servidor web Apache está funcionando!

El siguiente paso en la configuración de LAMP es instalar el servidor de la base de datos.

2. Instale el servidor de base de datos MariaDB en CentOS 8

Ejecute el siguiente comando desde la Terminal para instalar MariaDB en CentOS 8:

# dnf install mariadb-server mariadb

Una vez que MariaDB esté instalado, habilite e inicie el servicio mariadb usando los comandos:

# systemctl enable mariadb
# systemctl start mariadb

Alternativamente, use el siguiente comando de una sola línea para habilitar e iniciar el servicio mariadb de una vez:

# systemctl enable --now mariadb

Para verificar si el servicio mariadb está iniciado o no, ejecute:

# systemctl status mariadb

Salida de muestra:

● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 14:16:59 IST; 16s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 5447 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 5312 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mariadb.service (code=exited, statu>
  Process: 5288 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 5415 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 11501)
   Memory: 84.6M
   CGroup: /system.slice/mariadb.service
           └─5415 /usr/libexec/mysqld --basedir=/usr

Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Please report any problems at ht>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: The latest information about Mar>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: You can find additional informat>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: http://dev.mysql.com
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Consider joining MariaDB's stron>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: https://mariadb.org/get-involved/
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Note] /usr/libexec/mysq>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Could not incr>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Changed limits>
Feb 07 14:16:59 centos8.ostechnix.lan systemd[1]: Started MariaDB 10.3 database server

¡El servicio Mariadb está cargado y activo ahora!

Compruebe instalar la versión de MariaDB:

# mysql -V
mysql Ver 15.1 Distrib 10.3.17-MariaDB, for Linux (x86_64) using readline 5.1

2.1. Establecer la contraseña del usuario raíz de la base de datos (administrador)

De forma predeterminada, la contraseña del usuario raíz de la base de datos está vacía. Para asegurar el servidor de la base de datos, necesitamos establecer una contraseña para el usuario raíz. Para hacerlo, ejecute el script mysql_secure_installation:

# mysql_secure_installation

Se le harán un par de preguntas. Léalas y respóndalas en consecuencia. Primero, se le pedirá que ingrese la contraseña actual para el usuario raíz. Dado que la contraseña está vacía de forma predeterminada, simplemente presione la tecla ENTER para continuar. A continuación, se le pedirá que responda las siguientes preguntas:

  1. ¿Establecer contraseña de root? - Escriba y para configurar la contraseña e ingrese la contraseña dos veces.
  2. ¿Eliminar usuarios anónimos? - Escriba y para eliminar el usuario anónimo. El usuario anónimo se proporciona con fines de prueba de forma predeterminada. Debe eliminar el usuario anónimo en producción.
  3. ¿Deshabilitar el inicio de sesión raíz de forma remota? - Escriba y para evitar que el usuario raíz acceda al servidor de la base de datos desde cualquier sistema remoto.
  4. ¿Eliminar la base de datos de prueba y acceder a ella? - Escriba y para eliminar la base de datos de prueba.
  5. ¿Recargar tablas de privilegios ahora? - Escriba y para que surtan efecto todos los cambios realizados.

Salida de muestra:

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): #Press 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] y #Type y and press ENTER
New password:  #Enter password
Re-enter new password: #Re-enter password
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] y #Type y and press 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] y #Type y and ress 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] y #Type y and press 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] y #Type y and press 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!

Ahora hemos asegurado la instalación de MariaDB.

2.2. Inicie sesión en el shell de MariaDB

Ejecute el siguiente comando para iniciar sesión en mariadb shell como usuario root:

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Para salir del shell de mariadb, simplemente ejecute:

exit;

3. Instalar PHP en CentOS 8

PHP es el último componente de la pila LAMP. Para instalar php junto con todos los demás módulos de php necesarios, ejecute el siguiente comando como usuario root:

# dnf install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring

3.1. Configurar Apache con PHP-FPM

Una de las formas conocidas más comunes de ejecutar PHP con Apache es el mod_php módulo. Sin embargo, PHP-FPM (FastCGI Process Manager) tiene algunas ventajas sobre mod_php. Para aquellos que se preguntan, PHP-FPM es la implementación FastCGI de PHP. PHP-FPM se ejecuta como un servidor FastCGI independiente y aumenta significativamente el rendimiento de su entorno PHP.

Ya hemos instalado php-fpm, así que habilitemos e iniciemos el servicio php-fpm usando los comandos:

# systemctl enable php-fpm
# systemctl start php-fpm

Alternativamente, use el siguiente comando de una sola línea para habilitar e iniciar el servicio php-fpm de una vez:

# systemctl enable --now php-fpm

Para verificar si el servicio php-fpm se inició o no, ejecute:

# systemctl status php-fpm

Salida de muestra:

● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 17:24:44 IST; 8s ago
 Main PID: 6053 (php-fpm)
   Status: "Ready to handle connections"
    Tasks: 6 (limit: 11501)
   Memory: 22.6M
   CGroup: /system.slice/php-fpm.service
           ├─6053 php-fpm: master process (/etc/php-fpm.conf)
           ├─6054 php-fpm: pool www
           ├─6055 php-fpm: pool www
           ├─6056 php-fpm: pool www
           ├─6057 php-fpm: pool www
           └─6058 php-fpm: pool www

Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Starting The PHP FastCGI Process Manager...
Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Started The PHP FastCGI Process Manager.

Bueno, el servicio php-fpm se ha cargado y está activo ahora.

3.2. Prueba PHP

Para verificar si PHP funciona correctamente o no, cree un archivo de muestra llamado “info.php” en la carpeta raíz web:

# vi /var/www/html/info.php

Agregue las siguientes líneas:

<?php 
phpinfo(); 
?>

Reinicie el servicio Apache para que se apliquen los cambios:

# systemctl restart httpd

Ahora, abra su navegador web y vaya a http://IP_Address/info.php .

Verá la siguiente página de php que enumera todos los módulos instalados y otros detalles como la versión de php, la fecha de compilación y los comandos, etc.

¡Felicidades! En esta etapa, debe tener una pila LAMP en pleno funcionamiento en el servidor CentOS 8.

Ya hemos publicado la instalación de LAMP stack en diferentes plataformas Linux. Consulte el siguiente enlace para saber cómo configurar LAMP en varias distribuciones de Linux.

  • Guías de pila LAMP

Cent OS
  1. Cómo instalar la pila LAMP en CentOS 7

  2. Instalación de la pila LAMP en CentOS 7

  3. Instale Apache, PHP y MySQL en CentOS 7 (LAMP)

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

  5. Instale Zenario con Apache, PHP y MariaDB en CentOS 7

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

Cómo instalar el servidor LAMP en CentOS 8

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

Cómo instalar LAMP Stack en CentOS 6

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