Instalar Apache Server, PHP y MariaDb en Centos 8

Seguro que alguna vez has pensando en dejar Plesk, en aprender a montar tus propias páginas y disfrutar de la libertad. Para empezar tendrás que tener en cuenta muchas cosas referentes a seguridad, configuraciones, etc. Pero si bien, no es tan complicado montar una web desde un servidor no administrado o sin panel de control. Para ello puedes utilizar plataformas como Clouding.io que te permiten virtualizar VPS de forma rápida, clonarlos, configurarlos a tu gusto y costearlo por horas de uso.

Clouding.io ofrece VPS configurados a tu gusto, ideales para tus pruebas

Instalación de Apache Server (httpd)

Teniendo en cuenta que trabajas con privilegios, en mi caso con le usuario root. Lo primero que haremos será un update de los repos:

yum update

Una vez este todo actualizado podemos instalar Apache Server:

yum install httpd

Una vez que la instalación se completa, Apache no se inicia automáticamente en CentOS, por lo que deberá iniciar el proceso de Apache de forma manual:

yum start httpd

Para comprobar que esta funcionando correctamente:

status httpd
Tendrás que observar que Active: active (running)

Consideraciones:

  • Verifique que el puerto 80 (http) esta abierto
  • Si va a utilizar https recuerde abrir el puerto 433

Puedes encontrar más información en este artículo de digitalocean.com

Configuración de hosts virtuales

Si deseas configurar más de un dominio deberás crear host virtuales, en este tutorial puedes encontrar más información.

Instalar PHP 8.0

Para instalar php lo más recomendable es saber si tenemos instalada alguna versión utilizando yum info, sino puedes añadir el repositorio de remi:

yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Siempre después un update:

yum update -y

Desactiva el modulo de la distribución de Centos

yum module disable -y php

Y activa el de la distribución

yum module enable -y php:remi-8.0

Y ya puedes instalar php

yum install -y php

Tras la descarga e instalación del paquete php y sus dependencias se crea un nuevo servicio en nuestro sistema CentOS 8, llamado php-fpm.service, o más brevemente php-fpm.

El servicio php-fpm no se inicia tras la instalación ni está configurado para arrancar automáticamente con cada inicio de CentOS 8, por lo que tendremos que hacer esta primera configuración.

Para arrancar el servicio usaremos systemctl start:

systemctl start php-fpm

Y para que php-fpm inicie automáticamente con CentOS 8 usaremos systemctl enable:

systemctl enable php-fpm

Podemos comprobar que php-fpm está en ejecución y activado con el comando 

systemctl status php-fpm

Y por último reinicia apache:

systemctl restart httpd

Puedes ver que funciona php colocando un archivo .php en directorio var/www/html/ con una funcion phpinfo().

resultado de la funcion phpinfo()

Por último tendrás que configurar php a tu gusto editando el archivo /etc/php.ini

Te recomiendo este tutorial de instalación de PHP en Centos para completar tus conocimientos.

Instalar MariaDB

Para instalar MariaDB en Centos8 empezaremos por comprobar que todo esta actualizado, haremos un update. Después podemos comenzar:

yum install -y mariadb-server

En unos instantes se habrán descargado e instalado el paquete mariadb-server y sus dependencias, tras lo que se creará en nuestro sistema CentOS 8 el servicio mariadb.service.

A continuación tendremos que ejecutar el servicio y ponerlo para que se quede en ejecución en caso de reinicio.

systemctl start mariadb

En mi caso me encontré con un error «/usr/libexec/mysql-prepare-db-dir: line 18: /dev/null: Permission denied» al arrancar el servicio (puedes verlo con systemctl status mariadb).

Error «/usr/libexec/mysql-prepare-db-dir: line 18: /dev/null: Permission denied» al iniciar mariaDB

Lo solucione ejecutando:

rm -f /dev/null; mknod -m 666 /dev/null c 1 3

Y después, solo quedará poner enable el servicio para que se reinicie siempre:

systemctl enable mariadb
systemctl status mariadb demuestra que esta active (running)

Muy recomendable este tutorial de instalación de MariaDB en Centos o este otro de DigitalOcean

Acceder a MaribaDB y configurar su acceso remoto

Al instalar MariaDB en CentOS 8 se crea el usuario root sin contraseña, por lo que cualquier usuario puede acceder como administrador de MariaDB sin problemas. Por tanto la primera acción será crear una contraseña.

mysql_secure_installation
  • Enter current password for root (enter for none): – Dejaremos en blanco, ya que inicialmente root no tiene contraseña.
  • Set root password? [Y/n] – Contestaremos Y, para establecer una contraseña de root. A continuación nos pedirá la contraseña y su confirmación.
  • Remove anonymous users? [Y/n] – Aunque la instalación por defecto no incluye usuarios anónimos, contestaremos Y.
  • Disallow root login remotely? [Y/n] – Contestaremos afirmativamente para impedir conexiones remotas con el usuario root.
  • Remove test database and access to it? [Y/n] – La instalación por defecto tampoco crea bases de datos de pruebas, aun así contestaremos Y.
  • Reload privilege tables now? [Y/n] – Siempre que se hacen este tipo de cambios conviene recargar las tablas de privilegios, así que contestaremos Y.

Si nos interesa poder administrar remotamente MariaDB Server usando algún cliente, crea un usuario con suficientes privilegios y acceso remoto.

Usando el cliente mysql puedes acceder como root, pero especificando la contraseña que has creado anteriormente:

mysql -u root -p

Creamos el usuario y ejecutamos el refresco de la tabla de privilegios:

grant all privileges on *.* to alexmedina identified by 'pass' with grant option;
flush privileges;
exit;

Ahora ya podrás conectarte con el nuevo usuario y por ejemplo crear tu primera base de datos:

mysql -u alexmedina -p
CREATE DATABASE db1;
use db1;
CREATE TABLE .... 

Recuerda que para conexiones remotas tendrás que abrir el puerto TCP 3306 del firewall y es altamente recomendable que lo gestiones con un cliente externo como HeidiSQL o si no prefieres abrir conexiones instalar un PhpMyAdmin.

Si quieres configurar MariaDB en CentOS 8 o realizar cualquier ajuste, la configuración del servicio se reparte entre el archivo /etc/my.cnf y el directorio /etc/my.cnf.d/.

nano /etc/my.cnf.d/mariadb-server.cnf

Para que se apliquen los cambios tendrás que hacer un restart del servicio mariabd.

Deja un comentario