First we need to make sure we have nginx installed
sudo apt install nginx -y
sudo apt install php-fpm -y
Converting a virtual host to nginx block
Apache section:
DocumentRoot "/var/www/html/exemple"
ServerName exemple.eu
<Directory "/var/www/html/exemple">
Allow from all
Require all granted
SSLOptions +StdEnvVars
Include /etc/letsencrypt/options-ssl-apache.conf
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/exemple.eu/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/exemple.eu/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/exemple.eu/chain.pem</
Nginx section:
server { root /var/www/html/exemple/; index index.php; server_name exemple.eu www.exemple.eu; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_index index.php; fastcgi_pass unix:/run/php/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /etc/letsencrypt/live/exemple.eu/cert.pem; ssl_certificate_key /etc/letsencrypt/live/exemple.eu/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_min_length 1024; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; } server { if ($host = www.exemple.eu) { return 301 https://$host$request_uri; } # managed by Certbot if ($host = exemple.eu) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name exemple.eu www.exemple.eu; return 404; # managed by Certbot }
Of course you have to have letsencrypt already installed. This migration was tested on Debian 11.