Ga naar de inhoud
agovena.
agovena.
Aan de slag
Community

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:

bash
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

Start de FPM-service voor de PHP-versie die op de server staat:

bash
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:

bash
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:

apache
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:

bash
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:

apache
<FilesMatch "\.php$">
    SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>

Zoek de echte socket met:

bash
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:

bash
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:

bash
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.

Doorzoek de documentatie

Zoek handleidingen, commando’s en API-endpoints

Waar ben je naar op zoek?

Documentatie