⚠️ Importante ⚠️
Los siguientes pasos describen cómo preparar su servidor para la ejecución de Práctico Framework. Tenga en cuenta los siguientes aspectos:
Los pasos pueden variar ligeramente en otras disrtibuciones o configuraciones. Revise y ajuste los mismos si es del caso.
Las versiones aquí indicadas de cada paquete son aquellas disponibles al momento de crear esta guía.
Esta guía no se hace responsable de problemas de configuración asociados a su seguridad, pues asume un entorno específico protegidos por firewalls previos a la instancia, sistemas WAF y otros. Habilite, deshabilite o ajuste dichos sistemas bajo su responsabilidad para que coincidan con las buenas prácticas y protocolos de seguridad manejados por su infraestructura específica.
sudo su
yum -y update
yum -y upgrade
yum -y install mc wget unzip curl
setenforce 0
mcedit /etc/selinux/config
✏️ --> Actualice valor a SELINUX=disabled
systemctl disable firewalld
systemctl stop firewalld
sudo su
yum -y install httpd mod_ssl
systemctl enable httpd
systemctl start httpd
Como servicio web, Apache puede ser configurado mediante directivas agregadas en los archivos ubicados en las siguientes rutas, incluyendo también algunos logs útiles para depuración o seguimiento del servidor (tenga presente dichas rutas para el resto de la guía):
• /etc/httpd/ – Raíz con todos los archivos de configuración
• /etc/httpd/conf/httpd.conf – Archivo principal de configuración
• /etc/httpd/conf.d/ – Archivos que son incluidos a la configuración principal
• /etc/httpd/conf.modules.d/ – Ubicación de archivos de configuración de módulos
• /var/log/httpd/ – Ubicación de los logs del servidor
• /var/log/httpd/access_log – Logs de todos los accesos y peticiones atendidas
• /var/log/httpd/error_log – Logs con todos los posible errores encontrados
Una buena práctica siempre consiste en dejar todos sus datos por fuera del disco de sistema, de manera que puedan ser fácilmente migrados o compartidos hacia otras instancias cuando se requiera. Esta sección asumirá que usted cargó un disco extra [Ver guía] a su instancia o servidor y se encuentra montado sobre /mnt/datos siguiendo las instrucciones de discos adicionales del enlace suministrado durante la creación de la instancia. Ajuste la ruta si lo hizo en otra parte.
sudo su
mkdir -p /mnt/datos/webserver
chmod 777 /mnt/datos/webserver
mv /var/www/html/* /mnt/datos/webserver
mv /var/www/html /var/www/html_old
ln -s /mnt/datos/webserver /var/www/html
mcedit /etc/httpd/conf/httpd.conf
✏️ --> Actualice valor a DocumentRoot "/mnt/datos/webserver"
✏️ --> Actualice valor a <Directory "/mnt/datos/webserver">
systemctl restart httpd
Por defecto apache estará listo para hospedar un sitio, al cual podrían apuntar muchos dominios pues todos compartirán la misma dirección IP. Sin embargo esto sólo permitiría publicar un sólo contenido para todos los dominios.
Si desea hospedar sitios e instalar sus certificados SSL correspondientes es importante que tenga definido el nombre por defecto del servidor con el establecido por su certificado SSL o que agregue el virtualhost correspondiente en caso que gestione varios dominios y certificados diferentes.
Esta configuración le permitirá hospedar múltiples dominios sobre la misma máquina y con diferentes contenidos cada uno.
sudo su
mkdir -p /mnt/datos/webdomains
chmod 777 /mnt/datos/webdomains
mkdir -p /mnt/datos/webdomains/sudominio.com
chmod 777 /mnt/datos/webdomains/sudominio.com
mcedit /etc/httpd/conf/httpd.conf
✏️ --> Agregue al archivo
<VirtualHost *>
ServerName sudominio.con
DocumentRoot /mnt/datos/webserver
<Directory /mnt/datos/webserver>
allow from all
Options None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *>
ServerName www.suotrodominio.com
DocumentRoot /mnt/datos/webdomains/www.suotrodominio.com
<Directory /mnt/datos/webdomains/www.suotrodominio.com>
allow from all
Options none
Require all granted
</Directory>
#Reglas de redirección opcionales para forzar SSL
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.suotrodominio.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Antes de configurar un certificado SSL asegúrese que los dominios para los cuales desea configurar el/los certificados están correctamente configurados para llegar hasta el servidor que los hospeda. Se recomienda hacer una copia de seguridad de toda la carpeta /etc/httpd
sudo su
yum -y install epel-release
yum install certbot python3-certbot-apache
certbot --apache
https://www.ssllabs.com/ssltest/analyze.html?d=www.suotrodominio.com
echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
cat /etc/crontab (para verificar)
sudo su
yum -y install php php-xml php-json php-pear php-pdo php-mysqlnd php-gd php-mbstring php-soap php-pecl-zip php-process
systemctl restart httpd
<?php phpinfo(); ?>
Ingrese ahora a http://DireccionIP/test.php en su navegador para probar que se despliega la página con información del lenguaje, versión y el soporte de sus diferentes módulos.
upload_max_filesize = 16M
max_file_uploads = 20
service httpd restart <-- Para reiniciar Apache
service php-fpm restart <-- Para reinicar PHP (si aplica)
sudo su
yum install mariadb-server
systemctl enable --now mariadb.service
mysql_secure_installation
Siga los pasos de configuración. Indique no cambiar el password del root dentro de las preguntas. Pruebe la conexión mediante mysql -u root -p e ingresando la clave asignada.
Una buena práctica siempre consiste en dejar todos sus datos por fuera del disco de sistema, de manera que puedan ser fácilmente migrados o compartidos hacia otras instancias cuando se requiera. Esta sección asumirá que usted cargó un disco extra [Ver guía] a su instancia y se encuentra montado sobre /mnt/datos siguiendo las instrucciones de discos adicionales del enlace suministrado durante la creación de la instancia. Ajuste la ruta si lo hizo en otra parte.
sudo su
systemctl stop mariadb
mkdir -p /mnt/datos/sqlserver
chmod 777 /mnt/datos/sqlserver
mv /var/lib/mysql/* /mnt/datos/sqlserver
mv /var/lib/mysql /var/lib/mysql_old
ln -s /mnt/datos/sqlserver /var/lib/mysql
mcedit /etc/my.cnf.d/mariadb-server.cnf
✏️ --> Actualice valor a datadir=/mnt/datos/sqlserver
systemctl start mariadb