1. Instalar Nginx
Ejecuta los siguientes comandos para instalar Nginx:
sudo apt update
sudo apt install -y nginx
Habilitar y arrancar Nginx
sudo systemctl enable nginx
sudo systemctl start nginx
Verifica que está corriendo:
systemctl status nginx
Abre el puerto en el firewall (si estás usando ufw
):
sudo ufw allow 'Nginx Full'
2. Instalar PHP-FPM
Instala PHP y sus extensiones necesarias:
sudo apt install -y php-fpm php-cli php-mysql php-curl php-xml php-mbstring php-zip php-gd
Verifica la versión instalada:
php -v
Asegúrate de que PHP-FPM esté corriendo:
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
Verifica el estado:
systemctl status php-fpm
3. Configurar Nginx para PHP
Crea un nuevo bloque de servidor para tu sitio:
sudo nano /etc/nginx/sites-available/tu-dominio.com
Agrega la siguiente configuración:
server {
try_files $uri $uri/ /index.php?$args;
listen 80;
server_name tu-dominio.com www.tu-dominio.com;
root /var/www/tu-dominio.com;
index index.php index.html index.htm;
location / {
# Ajusta según tu versión de PHP
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Guarda y cierra el archivo (Ctrl + X
, luego Y
y Enter
).
Habilita el sitio:
sudo ln -s /etc/nginx/sites-available/tu-dominio.com /etc/nginx/sites-enabled/
Prueba la configuración:
sudo nginx -t
Si no hay errores, reinicia Nginx:
sudo systemctl restart nginx
4. Instalar y Configurar Certbot para SSL
Instala Certbot y el plugin de Nginx:
sudo apt install -y certbot python3-certbot-nginx
Ejecuta Certbot para obtener y configurar automáticamente el certificado SSL:
sudo certbot --nginx -d tu-dominio.com -d www.tu-dominio.com
Certbot modificará automáticamente tu configuración de Nginx para usar HTTPS.
Para renovar certificados automáticamente, añade esto al cron job:
sudo crontab -e
Agrega la siguiente línea al final:
0 3 * * * certbot renew --quiet
5. Pruebas Finales
- Verifica que PHP funciona creando un archivo de prueba:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/tu-dominio.com/info.php
Luego visitahttp://tu-dominio.com/info.php
- Verifica SSL con:
sudo certbot certificates
- Verifica que la renovación de Certbot funciona:
sudo certbot renew --dry-run