Servidor LAMP en Fedora

Según la información oficial de Fedora, se utiliza Apache como servidor web y MariaDB como servidor de bases de datos, pero eso puede cambiarse por Nginx y MySQL pero a continuación explico cómo instalar y configurar tu servidor LAMP ( Linux + Apache + Mariadb + Php ).

Apache el servidor HTTP

El servidor web disponible en Fedora es el servicio HTTP Apache, httpd, un servicio de código abierto desarrollado por  Apache Software Foundation. Esta sección describe la instalación y configuración básica.

Instalamos todo

sudo dnf install @"Web Server" mariadb-server php-mysqlnd

Esto ya instalará lo mínimo para crear el servicio web, php y base de datos.

Realizamos la configuración de sistema y del cortafuegos:

sudo setsebool -P httpd_can_network_connect_db=1
sudo setsebool -P httpd_can_sendmail=1
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload

Solo queda reiniciar el servicio para hacerlo efectivo:

sudo systemctl restart httpd

Podemos ver el resultado abriendo un navegador y ejecutando la IP del servidor, por ejemplo:

http://192.168.1.240

Para dar un poco más de seguridad podemos generar una llave SSL de autofirmado, aunque este paso lo desarrollaré más adelante mediante letsencrypt, podemos generar nuestra propia llave de certificación con:

sudo openssl genrsa -out mainkivi.info.key 2048
sudo openssl req -new -key mainkivi.info.key -out mainkivi.info.csr -sha512
sudo openssl x509 -req -days 365 -in mainkivi.info.csr -signkey mainkivi.info.key -out mainkivi.info.crt -sha512

El segundo paso genera un asistente donde responderemos con el pais, provincia y algunos datos correspondientes al certificado, la parte donde se pone la contraseña es opcional.

Esto genera las llaves y el certificado correspondientes a, por ejemplo, mainkivi.info, ahora las ubicaremos en el directorio correspondiente y le aplicaremos la configuración (es muy importante aplicar el comando «restorecon«):

sudo mv mainkivi.info.crt /etc/pki/tls/certs/
sudo mv mainkivi.info.key /etc/pki/tls/private/
sudo mv mainkivi.info.csr /etc/pki/tls/private/
sudo restorecon -RvF /etc/pki/

Ahora aplicamos los nuevos certificados modificando en el servidor el fichero:

sudo nano /etc/httpd/conf.d/ssl.conf

Y cambiamos los valores SSLCertificateFile y SSLCertificateKeyFile con la ruta del fichero correspondiente:

SSLCertificateFile /etc/pki/tls/certs/mainkivi.info.crt
SSLCertificateKeyFile /etc/pki/tls/private/mainkivi.info.key

Reiniciamos el servicio para que haga efecto:

sudo systemctl restart httpd

Y podemos acceder al web de manera segura:

https://192.168.1.241

Al ser autofirmado, pedirá que aceptemos los riesgos, pero podremos ver en el certificado de la página todos los datos de nuestro sitio.

Explicando por encima los directorios de HTTPD

Aunque lo desarrollaré más adelante, en Fedora, si vamos a:

/etc/httpd 

Encontraremos tres directorios muy importantes de configuración:

  • conf – donde se encuentra la configuración del servicio.
  • conf.d – donde encontraremos la configuración de diferentes servicios y páginas web, por ejemplo, ssl.conf para configurar la navegación segura o php.conf para la configuración del intérprete php entre muchos.
  • conf.modules.d – directorio donde se ubican los diferentes módulos del servicio, como ssl, proxy o mpm entre otros.

Más adelante explicaré los tipos de configuraciones del servidor apache como <site>, <directory> o <alias>. Pero es importante decir que, por defecto, el directorio donde se ubican las páginas web es en el directorio

/var/www/http

Servidor de bases de datos

Según la documentación oficial haremos uso de MariaDB, un servicio compatible con todos los comandos MySQL, de código abierto y libre y mucho más ligero.

La instalación ya la aplicamos en el comando anterior, por lo que solo nos falta iniciar y habilitar el servicio:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Una vez iniciado, procedemos a la primera instalación para generar la contraseña de root o administrador:

sudo mysql_secure_installation

Responderemos las preguntas que nos da como poner contraseña a «root» y que no sea sencilla, volver a ponerla, que no sea accesible por otros equipos solo local …

Una vez finalizado podemos comprobar con:

sudo mysql -u root -p

Donde nos pedirá la contraseña de root y ya estaremos en su consola, para salir solo hace falta escribir: quit;

A continuación dejo un video explicativo y en la siguiente página explicaré cómo preparar una base de datos e instalar wordpress: