📦 PHP, Composer & MySQL installeren
De volledige software-stack voor Symfony op je Ubuntu-server installeren.
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.
sudo add-apt-repository ppa:ondrej/php -y sudo apt update
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.
php --version php-fpm8.3 --version
De PHP-extensies die je hier installeert zijn dezelfde als je kent uit de PHP-track: curl, mbstring, xml zijn standaard vereist door Symfony.
Composer globaal installeren
Composer instaleer je globaal op de server zodat je het vanuit elke map kunt aanroepen met composer.
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer --version
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.
MariaDB installeren
MariaDB is een drop-in vervanging voor MySQL — volledig compatibel, iets sneller en volledig open source. Symfony werkt er naadloos mee.
sudo apt install mariadb-server -y
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
sudo systemctl status mariadb
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.
sudo mysql -u root -p
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.
mysql -u symfony_user -p symfony_db
CREATE DATABASE, CREATE USER en GRANT PRIVILEGES heb je gezien in de SQL-track. Hier pas je het toe op een echte productiedatabase.
Overzicht: je stack staat klaar
symfony_dbsymfony_userphp --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 →