Winkelbeheer & operations
Apache en PHP-FPM
Plaats Agovena achter Apache en PHP-FPM met een veilige virtual host, PHP-handler en HTTPS.
Op deze pagina
Gebruik deze handleiding wanneer je Apache koos voor een native Ubuntu- of Debian-installatie. Gebruik Nginx wanneer je die webserver hebt geselecteerd. Een native installatie heeft één webserver nodig, niet beide.
1. Installeer Apache 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 apache2 libapache2-mod-fcgid php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-intl php-bcmath
sudo a2enmod rewrite proxy proxy_fcgi setenvif
sudo systemctl enable --now apache2
sudo apt-get update
sudo apt-get install -y apache2 libapache2-mod-fcgid php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-intl php-bcmath
sudo a2enmod rewrite proxy proxy_fcgi setenvif
sudo systemctl enable --now apache2
Start de FPM-service voor de PHP-versie die op de server staat:
systemctl list-unit-files 'php*-fpm.service'
sudo systemctl enable --now php8.3-fpm
Vervang php8.3-fpm door php8.4-fpm wanneer dat jouw geïnstalleerde versie is.
2. Maak de Apache-virtual host aan
Kopieer het startsjabloon van Agovena en bewerk de hostname:
sudo cp /var/www/agovena/deploy/apache.conf /etc/apache2/sites-available/agovena.conf
sudo nano /etc/apache2/sites-available/agovena.conf
Stel de documentroot in op:
ServerName store.example
DocumentRoot /var/www/agovena/public
Het sjabloon blokkeert toegang tot de applicatieroot en staat alleen de publieke map toe. Behoud AllowOverride All, Require all granted voor public/ en Options -Indexes +FollowSymLinks, zodat public/.htaccess van Laravel routes kan afhandelen.
Schakel de site in en de standaardsite uit:
sudo a2ensite agovena.conf
sudo a2dissite 000-default.conf
3. Verbind Apache met PHP-FPM
Voeg deze handler toe binnen de virtual host. Stem de socket af op de actieve PHP-FPM-service:
<FilesMatch "\.php$">
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
Zoek de echte socket met:
ls -l /run/php/php*-fpm.sock
Gebruik /run/php/php8.3-fpm-agovena.sock wanneer je de optionele Agovena-FPM-pool gebruikt. Houd PHP CLI, PHP-FPM, de queueworker en cron op dezelfde minorversie.
Wijs DocumentRoot nooit naar /var/www/agovena. Maak geen alias voor storage/app/private, .env of pakketbroncode.
4. Stel rechten en HTTPS in
Geef runtime-mappen aan de deploymentgebruiker en de groep www-data:
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
Stel APP_URL in op de HTTPS-oorsprong en volg de HTTPS-handleiding voordat je gegevens accepteert. Houd de Apache-requestlimiet en PHP-uploadlimieten op 20 MB, tenzij je bewust elke laag aanpast.
5. Test en herlaad Apache
Test de configuratie voordat je deze herlaadt:
sudo apachectl configtest
sudo systemctl enable --now apache2
sudo systemctl reload apache2
Wordt PHP als tekst gedownload? Stop dan en herstel de PHP-FPM-handler. Een 404 op alleen Laravel-routes wijst meestal naar mod_rewrite, AllowOverride of de documentroot.
6. 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 moeten worden geweigerd. Rond af met de handleiding voor queueworker en scheduler.