Winkelbeheer & operations
Nginx en PHP-FPM
Plaats Agovena achter Nginx en PHP-FPM met de juiste documentroot, socket en beveiligingsregels.
Op deze pagina
Gebruik deze handleiding wanneer je Nginx koos voor een native Ubuntu- of Debian-installatie. Gebruik Apache wanneer je die webserver hebt gekozen. Draai beide nooit op dezelfde HTTP-poorten.
1. Installeer Nginx en PHP-FPM
Heb je de pakketten nog niet geïnstalleerd? Gebruik dan de tab voor jouw besturingssysteem:
sudo apt update
sudo apt install -y nginx php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-intl php-bcmath
sudo systemctl enable --now nginx
sudo apt-get update
sudo apt-get install -y nginx php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-intl php-bcmath
sudo systemctl enable --now nginx
Start de FPM-service die bij jouw PHP-versie hoort:
systemctl list-unit-files 'php*-fpm.service'
sudo systemctl enable --now php8.3-fpm
Gebruik php8.4-fpm in plaats van php8.3-fpm wanneer die versie op de server staat.
2. Maak de Nginx-site aan
Agovena bevat een veilig startsjabloon. Kopieer dit naar Nginx en bewerk de hostname:
sudo cp /var/www/agovena/deploy/nginx.conf /etc/nginx/sites-available/agovena
sudo nano /etc/nginx/sites-available/agovena
Stel deze waarden in:
server_name store.example;
root /var/www/agovena/public;
Schakel de site in en verwijder de standaardsite zodat Nginx niet de verkeerde documentroot gebruikt:
sudo ln -s /etc/nginx/sites-available/agovena /etc/nginx/sites-enabled/agovena
sudo rm -f /etc/nginx/sites-enabled/default
De documentroot moet eindigen op /public. Gebruik nooit /var/www/agovena als root. Het meegeleverde sjabloon blokkeert ook .env, Composerbestanden, het artisan-bestand, verborgen bestanden en PHP-uitvoering onder publieke storage. Behoud deze regels.
3. Stem de PHP-FPM-socket af
Bekijk de sockets die op deze server bestaan:
ls -l /run/php/php*-fpm.sock
Open het Nginx-sitebestand en laat fastcgi_pass overeenkomen met de actieve PHP-FPM-socket:
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
Gebruik de volledige meegeleverde configuratie, niet alleen dit fragment. Installeerde je de optionele Agovena-FPM-pool, gebruik dan deze socket:
/run/php/php8.3-fpm-agovena.sock
Nginx, PHP-FPM, de queueworker en cron moeten hetzelfde applicatiepad en een passende runtimegebruiker gebruiken. Een 502 betekent meestal dat de FPM-service, het socketpad of de socketrechten niet kloppen.
4. Stel rechten en uploadlimieten in
Geef vanuit de applicatiemap de deploymentgebruiker eigenaarschap en geef de groep www-data schrijfrechten voor runtime-mappen:
cd /var/www/agovena
DEPLOY_USER="${SUDO_USER:-$USER}"
sudo chown -R "$DEPLOY_USER":www-data /var/www/agovena
sudo chmod -R ug+rwX storage bootstrap/cache
Het meegeleverde sjabloon gebruikt een Nginx-limiet van 20 MB. Houd die gelijk aan PHP:
upload_max_filesize = 20M
post_max_size = 20M
Gebruik geen chmod 777, publiceer storage/app/private niet en maak geen alias naar private bestanden.
5. Schakel HTTPS in
Laat DNS naar de server wijzen en volg de HTTPS-handleiding. Stel na activering van het certificaat APP_URL in op het HTTPS-adres en stuur HTTP door naar HTTPS. Verzamel geen beheerders- of klantgegevens via gewone HTTP.
6. Test en herlaad Nginx
Test de configuratie altijd voordat je deze herlaadt:
sudo nginx -t
sudo systemctl enable --now nginx
sudo systemctl reload nginx
Mislukt de test? Los dan eerst het gemelde bestand en de regel op. Vervang het volledige beveiligde sjabloon niet door een minimaal voorbeeld.
7. Controleer de winkel
Open deze URL's via de echte hostname:
//login/admin- een publieke productafbeelding onder
/storage - een route die geen fysiek bestand is
Verzoeken naar .env, Composerbestanden, artisan en private storage mogen geen inhoud teruggeven. Rond af met de handleiding voor queueworker en scheduler.