Winkelbeheer & operations
Agovena installeren
Installeer Agovena op Ubuntu of Debian en configureer daarna webserver, queueworker en cron.
Op deze pagina
Bekijk de ondersteunde omgevingen op de pagina Serververeisten voordat je een route kiest.
Draai Nginx en Apache niet op dezelfde poorten. Een native installatie heeft één van beide nodig als webserver.
1. Bereid de server voor
Native Linux
Gebruik de tab voor jouw besturingssysteem. De onderstaande pakketten installeren de benodigde PHP-extensies, MariaDB, Composer, Git, archieftools en cron.
sudo apt update
sudo apt install -y ca-certificates curl git tar unzip composer cron mariadb-server mariadb-client \
php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-intl php-bcmath
sudo systemctl enable --now mariadb cron
sudo apt-get update
sudo apt-get install -y ca-certificates curl git tar unzip composer cron mariadb-server mariadb-client \
php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-intl php-bcmath
sudo systemctl enable --now mariadb cron
Controleer de PHP-versie voordat je verdergaat. Dit moet PHP 8.3 of PHP 8.4 zijn:
php -v
php -m | grep -E 'bcmath|curl|intl|mbstring|mysql|xml|zip'
Zoek de PHP-FPM-service en start de service voor de geïnstalleerde PHP-versie:
systemctl list-unit-files 'php*-fpm.service'
sudo systemctl enable --now php8.3-fpm
Gebruik je PHP 8.4, vervang dan php8.3-fpm door php8.4-fpm. Houd de versies van PHP CLI en PHP-FPM gelijk.
Maak de database
Maak een aparte MariaDB-database en gebruiker. Gebruik het MariaDB-rootaccount niet in .env:
sudo mariadb
CREATE DATABASE agovena CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'agovena'@'localhost' IDENTIFIED BY 'CHANGE_ME';
GRANT ALL PRIVILEGES ON agovena.* TO 'agovena'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Vervang CHANGE_ME door een wachtwoord dat je in een password manager bewaart. Zet het niet in Git, screenshots of supportvragen.
2. Haal Agovena op
Maak de applicatiemap aan:
sudo mkdir -p /var/www/agovena
sudo chown "$USER":"$USER" /var/www/agovena
Laatste release
De volgende opdracht zoekt via GitHub het nieuwste gepubliceerde Agovena-archief en downloadt het. De opdracht downloadt niet de bewegende main-branch:
cd /var/www
rm -rf /tmp/agovena-release
mkdir -p /tmp/agovena-release
RELEASE_URL="$(curl -fsSL https://api.github.com/repos/milovd/Agovena/releases/latest 2>/dev/null | sed -n 's/.*"browser_download_url": "\(https:[^"]*agovena-[^"]*\.tar\.gz\)".*/\1/p' | head -n 1 || true)"
if [ -z "$RELEASE_URL" ]; then
printf '%s\n' 'Geen passend gepubliceerd release-archief gevonden. Gebruik in plaats daarvan de source checkout.'
exit 1
fi
curl -fL "$RELEASE_URL" -o /tmp/agovena-latest.tar.gz
tar -xzf /tmp/agovena-latest.tar.gz -C /tmp/agovena-release
sudo cp -a /tmp/agovena-release/agovena-*/. /var/www/agovena/
Meldt de opdracht dat geen archief is gevonden? Gebruik dan de Source checkout hieronder. Wanneer een archief beschikbaar is, bevat het de bijbehorende Composer-afhankelijkheden en gebouwde frontend-assets al.
Source checkout
Gebruik een source checkout wanneer je bewust de actuele main-branch uitrolt of zelf de release bouwt:
sudo git clone --depth 1 --branch main https://github.com/milovd/Agovena.git /var/www/agovena
sudo chown -R "$USER":www-data /var/www/agovena
cd /var/www/agovena
composer install --no-dev --optimize-autoloader
npm ci
npm run build
Gebruik voor een latere source-update git pull --ff-only origin main in deze checkout. Gebruik geen composer update; daarmee kunnen andere dependencyversies worden geselecteerd.
3. Configureer de omgeving
Maak .env alleen bij een nieuwe installatie aan:
cd /var/www/agovena
cp .env.example .env
php artisan key:generate
Bewerk .env en vul de echte waarden van je winkel in:
APP_ENV=production
APP_DEBUG=false
APP_URL=https://store.example
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=agovena
DB_USERNAME=agovena
DB_PASSWORD=[REDACTED]
QUEUE_CONNECTION=database
Configureer ook de mailtransport die je winkel gebruikt. Houd .env buiten versiebeheer. Overschrijf tijdens een update of herstel nooit een bestaande .env en genereer geen nieuwe APP_KEY.
4. Stel de bestandsrechten in
De webserver, queueworker en scheduler hebben schrijfrechten nodig voor storage/ en bootstrap/cache/. Laat de deploymentgebruiker eigenaar blijven van de rest van de applicatie:
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
Gebruik geen chmod 777. Houd .env, storage/app/private en de applicatiebron buiten de publieke documentroot.
5. Voer de installer uit
Voer de databasemigraties uit, maak de publieke storage-link en start de Agovena-installer:
cd /var/www/agovena
php artisan migrate --force
php artisan storage:link
php artisan agovena:install
De installer vraagt om de eigenaar, winkelnaam, taal, tijdzone, valuta en het thema. De wachtwoordprompt is verborgen. Je kunt ook /install openen nadat de webserver is ingesteld.
Een geïnstalleerde winkel mag niet opnieuw worden geïnstalleerd. Bewaar de installatiemarkering in storage/app/agovena/.
6. Kies de webserver
Stel de documentroot in op de public/-map:
/var/www/agovena/public
Wijs een webserver nooit naar /var/www/agovena. Kies precies één handleiding:
Kies de webserver nadat Agovena in /var/www/agovena staat en de applicatieomgeving is geconfigureerd. De webserver is het publieke toegangspunt, niet een vervanging voor de Agovena-installer.
Installeer en configureer Nginx met PHP-FPM via de Nginx-handleiding. Stel de root in op /var/www/agovena/public, laad Nginx opnieuw en open de winkel-URL.
Installeer Apache met PHP-FPM via de Apache-handleiding. Schakel de vereiste proxy- en rewritemodules in, stel de root van de virtual host in op /var/www/agovena/public en laad Apache opnieuw.
Stel APP_URL in op hetzelfde HTTPS-adres zodra de webserver werkt. Volg de HTTPS-handleiding voordat je gegevens van klanten of beheerders verzamelt.
7. Start de queueworker
Agovena gebruikt een blijvende queueworker voor e-mail, webhooks, abonnementswerk en provisioning. Installeer de meegeleverde systemd-unit:
cd /var/www/agovena
sudo cp deploy/systemd/agovena-queue.service /etc/systemd/system/agovena-queue.service
sudo systemctl daemon-reload
sudo systemctl enable --now agovena-queue.service
sudo systemctl status agovena-queue.service
De unit voert dit uit:
/usr/bin/php /var/www/agovena/artisan queue:work --sleep=1 --tries=3 --timeout=60 --backoff=5 --max-time=3600
Gebruik je een ander PHP-pad of een andere applicatiemap, pas de unit dan vóór activering aan. Gebruik voor dezelfde worker systemd óf de meegeleverde Supervisorconfiguratie, niet beide.
8. Voeg de scheduler-cronjob toe
Open de crontab van dezelfde runtimegebruiker als PHP-FPM en de queueworker:
sudo -u www-data crontab -e
Voeg deze regel toe:
* * * * * cd /var/www/agovena && /usr/bin/php artisan schedule:run >> /dev/null 2>&1
Deze ene cronjob voert taken uit zodra ze aan de beurt zijn. De regel moet ook na updates blijven staan. Controleer de regel met:
sudo -u www-data crontab -l
php artisan schedule:list
php artisan schedule:run
schedule:run voert taken uit. Het is tijdens het instellen nuttig, maar geen alleen-lezen opdracht.
9. Schakel HTTPS in
Laat je DNS-record naar de server wijzen en open poort 80 en 443. Volg daarna de HTTPS-handleiding. Gebruik HTTPS ook voor APP_URL en controleer certificaatvernieuwing voordat je de winkel opent.
10. Controleer de installatie
Voer de platformcontroles uit en bekijk de echte servicestatus:
cd /var/www/agovena
composer check-platform-reqs --no-dev
php artisan agovena:doctor
sudo systemctl is-active nginx
sudo systemctl is-active mariadb
sudo systemctl is-active agovena-queue.service
Open de publieke store-URL en doorloop de installer als dit een nieuwe installatie is. Controleer daarna een publieke afbeelding, een route die geen fysiek bestand is, e-mailaflevering, één queuejob en de scheduler-heartbeat in Admin.
11. Na de installatie
Ga verder met:
- De winkel configureren.
- Het eerste product toevoegen.
- Betalingen configureren.
- Back-ups instellen.
- Lees updates en databasemigraties voordat je applicatiebestanden vervangt.