Deployment-track Les 3 van 8

📦 PHP, Composer & MySQL installeren

De volledige software-stack voor Symfony op je Ubuntu-server installeren.

⏱ 30 min5 stappen Vereist: Les 2 — Server huren & inrichten
Stap 1 / 5

PHP 8.x installeren

Ubuntu's standaard apt-repository bevat soms een verouderde PHP-versie. We voegen de officiële PPA van Ondřej Surý toe voor de nieuwste PHP 8.x.

1. Voeg de PHP PPA toe
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
2. Installeer PHP 8.3 + vereiste extensies voor Symfony
sudo apt install -y \
  php8.3 php8.3-fpm php8.3-cli \
  php8.3-mysql php8.3-xml php8.3-mbstring \
  php8.3-curl php8.3-zip php8.3-intl \
  php8.3-gd php8.3-bcmath

php8.3-fpm = FastCGI Process Manager voor nginx. php8.3-cli = voor php bin/console.

3. Controleer de installatie
php --version
php-fpm8.3 --version
🔁 Komt terug uit de PHP-track

De PHP-extensies die je hier installeert zijn dezelfde als je kent uit de PHP-track: curl, mbstring, xml zijn standaard vereist door Symfony.

Stap 2 / 5

Composer globaal installeren

Composer instaleer je globaal op de server zodat je het vanuit elke map kunt aanroepen met composer.

1. Download het installatiescript
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
2. Voer het installatiescript uit en verplaats naar /usr/local/bin
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
3. Controleer de installatie
composer --version
💡 Globale installatie vs. lokaal

Door Composer in /usr/local/bin te plaatsen is het beschikbaar voor alle gebruikers op de server. Je hoeft nooit meer php composer.phar te typen.

Stap 3 / 5

MariaDB installeren

MariaDB is een drop-in vervanging voor MySQL — volledig compatibel, iets sneller en volledig open source. Symfony werkt er naadloos mee.

1. Installeer MariaDB
sudo apt install mariadb-server -y
2. Beveilig de installatie
sudo mysql_secure_installation

• Root-wachtwoord instellen → Kies een sterk wachtwoord

• Anonymous users verwijderen → Y

• Root-login op afstand uitschakelen → Y

• Test-database verwijderen → Y

• Privilegetabellen herladen → Y

3. Controleer dat MariaDB draait
sudo systemctl status mariadb
Stap 4 / 5

Database en gebruiker aanmaken

Je maakt een aparte database en een aparte gebruiker voor jouw Symfony-app. Gebruik nooit de root-gebruiker in je applicatie — dat is een beveiligingsrisico.

1. Log in als root in MariaDB
sudo mysql -u root -p
2. Maak database, gebruiker aan en geef rechten
CREATE DATABASE symfony_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'symfony_user'@'localhost' IDENTIFIED BY 'SterkWachtwoord123!';
GRANT ALL PRIVILEGES ON symfony_db.* TO 'symfony_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Vervang SterkWachtwoord123! door een echt sterk wachtwoord. Dit sla je straks op in .env.local.

3. Test de verbinding met de nieuwe gebruiker
mysql -u symfony_user -p symfony_db
🔁 Komt terug uit de SQL-track

CREATE DATABASE, CREATE USER en GRANT PRIVILEGES heb je gezien in de SQL-track. Hier pas je het toe op een echte productiedatabase.

Stap 5 / 5

Overzicht: je stack staat klaar

Wat je hebt geïnstalleerd
PHP 8.3 + FPM + alle extensies
Composer (globaal)
MariaDB server
Database symfony_db
Gebruiker symfony_user
Wat nog ontbreekt
nginx (webserver) — les 4
Jouw code op de server — les 5
.env configuratie — les 6
HTTPS certificaat — les 7
Snelle controles
php --version          # PHP 8.3.x
composer --version     # Composer 2.x
systemctl status php8.3-fpm   # active (running)
systemctl status mariadb      # active (running)

Kennischeck

Les 3 afronden

Ga door naar: nginx configureren voor Symfony →