LAMP
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:
Servicios instalados bajo nuestro servidor
- Wordpress - simple sistema de «bloggin»
- Mediawiki - Base de conocimiento abierto.
- Nextcloud - Alternativa a otros servicios como Google Drive o Dropbox.