Installeer PHP 8.1 en stel een lokale ontwikkelomgeving in op Ubuntu
Een eerdere versie van deze handleiding is geschreven door alenaholligan.
Inleiding
PHP is een populaire, open-source server-side scripttaal die is ontworpen voor webontwikkeling en een groot deel van het internet aandrijft, van blogs en e-commerce websites tot grootschalige applicaties. Met elke nieuwe release biedt PHP verbeterde prestaties, veiligheid en moderne ontwikkelfunctionaliteiten om ontwikkelaars te helpen robuuste en schaalbare software te bouwen.
PHP 8.1 is een stabiele release met langdurige ondersteuning die merkbare verbeteringen en nieuwe taalfuncties biedt, terwijl de betrouwbaarheid behouden blijft. Het installeren van PHP 8.1 op Ubuntu zorgt ervoor dat je lokale ontwikkelomgeving up-to-date, veilig en compatibel is met veelgebruikte frameworks en platforms zoals WordPress, Laravel en aangepaste PHP-toepassingen.
Deze handleiding begeleidt je bij het installeren van PHP 8.1 op Ubuntu, het configureren ervan met Apache of Nginx, het instellen van essentiële PHP-extensies en het installeren van Composer voor afhankelijkheidsbeheer. Je leert ook hoe je je installatie kunt verifiëren en veelvoorkomende problemen kunt oplossen.
Zet je PHP-applicaties in vanaf GitHub met het App Platform van Linux-Console.net. Laat Linux-Console.net zich richten op het schalen van je app.
Belangrijkste punten
PHP 8.1-installatie op Ubuntu 22.04: Ubuntu 22.04 LTS bevat PHP 8.1 in de standaardrepositories, waardoor je een stabiele, langdurig ondersteunde PHP-versie kunt installeren met
aptzonder externe PPA's. Dit zorgt voor voorspelbare updates, beveiligingspatches en compatibiliteit met moderne PHP-frameworks.Essentiële PHP-extensies voor real-world projecten: De meeste productieklare PHP-toepassingen zijn afhankelijk van extensies zoals
mysql,curl,xml,mbstring,zip,gdenbcmath. Het vroegtijdig installeren hiervan voorkomt runtime-fouten later en zorgt voor compatibiliteit met frameworks zoals Laravel, Symfony en WordPress.Kiezen tussen Apache of Nginx voor PHP-ontwikkeling: Apache kan PHP direct uitvoeren met
mod_php, terwijl Nginx PHP-FPM nodig heeft voor het afhandelen van verzoeken. Beide benaderingen werken goed voor lokale ontwikkeling, maar PHP-FPM lijkt meer op moderne productieomgevingen en schaalt beter bij hoge belasting.Composer als de basis van moderne PHP-workflows: Composer beheert projectafhankelijkheden via
composer.jsonencomposer.lock, waardoor consistente builds op verschillende machines worden gegarandeerd. Het is essentieel voor het installeren van frameworks, het genereren van autoloaders en het onderhouden van betrouwbare afhankelijkheidsversies in collaboratieve PHP-projecten.PHP specifiek voor ontwikkeling configureren: Ontwikkelomgevingen profiteren van uitgebreide foutmeldingen, hogere geheugengrenzen en langere uitvoeringstijden. Het aanpassen van deze instellingen in
php.inihelpt om bugs tijdens de ontwikkeling snel te ontdekken, maar ze moeten altijd teruggezet worden voor productie-implementaties.Probleemoplossing en validatie maken deel uit van de installatie: Het controleren van PHP met
php -v, het controleren van geladen extensies en het bekijken van Apache-, Nginx- of PHP‑FPM-logboeken zijn cruciale stappen. De meeste installatieproblemen worden veroorzaakt door ontbrekende extensies, permissies of verkeerd geconfigureerde webserver-instructies.
Vereisten
Om deze tutorial te voltooien, heb je nodig:
- Een lokale machine of virtuele server die Ubuntu draait (compatibel met Ubuntu 22.04 LTS en latere versies)
- Administratieve (sudo) toegang tot de machine
- Een actieve internetverbinding
- Basiskennis van de opdrachtregel
Als je een nieuwe Ubuntu-server aan het opzetten bent, bekijk dan onze gids over de eerste serverconfiguratie met Ubuntu.
Stap 1 — PHP 8.1 instellen
Je zult je installatie en configuratie via de opdrachtregel voltooien, wat een niet-grafische manier is om met je computer te communiceren. Dat wil zeggen, in plaats van op knoppen te klikken, typ je tekst in en ontvang je ook feedback van je computer via tekst.
De opdrachtregel, ook bekend als een shell of terminal, kan je helpen veel van de taken die je elke dag op een computer uitvoert te wijzigen en te automatiseren en is een essentieel hulpmiddel voor softwareontwikkelaars. Er zijn veel terminalopdrachten om te leren die je in staat kunnen stellen krachtigere dingen te doen. Het artikel Een introductie tot de Linux-terminal kan je beter helpen vertrouwd te raken met de terminal.
Opmerking: Als je nieuw bent met Ubuntu, overweeg dan om onze Ubuntu-documentatie te bekijken voor extra richtlijnen voor systeembeheer.
Op Ubuntu kun je de Terminal-applicatie vinden door op het Ubuntu-pictogram in de linkerbovenhoek van je scherm te klikken en terminal in de zoekbalk te typen. Klik op het Terminal-pictogram om het te openen. Je kunt ook tegelijkertijd op de CTRL, ALT en T toetsen op je toetsenbord drukken om de Terminal-applicatie automatisch te openen.
Opmerking: Op Ubuntu 22.04 LTS is PHP 8.1 beschikbaar in de standaardrepositories. Wanneer je PHP installeert zonder een versie op te geven op Ubuntu 22.04, installeert het systeem standaard PHP 8.1.
Als je meerdere PHP-versies moet beheren of een andere versie wilt installeren, overweeg dan het gebruik van phpenv of phpbrew voor versiebeheer.
Voer de volgende opdrachten uit om je lijst met beschikbare pakketten bij te werken en installeer vervolgens PHP 8.1:
sudo apt updatesudo apt install --no-install-recommends php8.1De --no-install-recommends-vlag zorgt ervoor dat andere pakketten zoals de Apache-webserver niet worden geïnstalleerd.
Controleer uw PHP-versie-informatie met het volgende commando:
php -vJe krijgt output zoals deze:
PHP 8.1.2-1ubuntu2.22 (cli) (built: Jul 15 2025 12:11:22) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.22, Copyright (c), by Zend Technologies
Deze setup is getest op Ubuntu 22.04 LTS met PHP 8.1-pakketten uit de officiële Ubuntu-repositories.
Installeer essentiële PHP-extensies voor webontwikkeling:
sudo apt install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmathDit commando zal de volgende modules installeren:
php8.1-cli- opdrachtinterpreter, handig voor het testen van PHP-scripts vanuit een shell of voor het uitvoeren van algemene shell-scriptingtakenphp8.1-common- documentatie, voorbeelden en veelgebruikte modules voor PHPphp8.1-mysql- voor het werken met MySQL-databasesphp8.1-zip- voor het werken met gecomprimeerde bestandenphp8.1-gd- voor het werken met afbeeldingenphp8.1-mbstring- gebruikt voor het beheren van niet-ASCII-tekensphp8.1-curl- Hiermee kun je HTTP-aanvragen doen in PHPphp8.1-xml- voor het werken met XML-gegevensphp8.1-bcmath- wordt gebruikt bij het werken met precisie-floating point getallen
PHP-configuratiebestanden worden opgeslagen in /etc/php/8.1/. Het hoofdconfiguratiebestand is php.ini, dat afhankelijk van je installatie in verschillende mappen kan staan:
- CLI-configuratie:
/etc/php/8.1/cli/php.ini - Apache-configuratie:
/etc/php/8.1/apache2/php.ini(als Apache is geïnstalleerd) - PHP-FPM configuratie:
/etc/php/8.1/fpm/php.ini(als PHP-FPM is geïnstalleerd)
Controleer geïnstalleerde extensies:
php -mDit geeft een overzicht van alle geladen PHP-modules. Als php -v een andere versie aangeeft dan verwacht, kan het zijn dat er meerdere PHP-versies zijn geïnstalleerd. Gebruik php8.1 -v om specifiek PHP 8.1 te controleren.
Je hebt PHP geïnstalleerd en gecontroleerd welke versie je gebruikt. Je hebt ook alle benodigde PHP-modules geïnstalleerd en kon de modules die je hebt geladen, weergeven.
Stap 2 — PHP configureren met Apache
Installeer de Apache PHP-module:
sudo apt install libapache2-mod-php8.1Schakel de module in en herstart Apache:
sudo a2enmod php8.1
sudo systemctl restart apache2Begrijpen van mod_php: De mod_php-module embed PHP direct in het Apache-proces. Wanneer Apache een verzoek voor een PHP-bestand ontvangt, verwerkt het dit intern met de ingebedde PHP-interpreter. Dit verschilt van Nginx, dat een aparte PHP-FPM-service vereist. Het a2enmod-commando maakt een symbolische link in /etc/apache2/mods-enabled/ om de module te activeren.
Controleer of Apache PHP correct verwerkt door een testbestand aan te maken in de documentroot van Apache (meestal /var/www/html):
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.phpBezoek http://localhost/info.php in je browser. Je zou de configuratiepagina van PHP moeten zien. Verwijder dit bestand na het testen voor de veiligheid:
sudo rm /var/www/html/info.phpProblemen met Apache PHP oplossen
Als Apache niet wil starten na het installeren van mod_php:
Controleer het foutlogboek van Apache:
sudo tail -20 /var/log/apache2/error.logVeelvoorkomende problemen zijn:
- In strijd zijnde PHP-modules: Als je meerdere PHP-versies hebt, schakel dan eerst de andere PHP-modules uit met
sudo a2dismod php7.4(indien aanwezig) - Syntaxisfouten in de Apache-configuratie: Voer
sudo apache2ctl configtestuit om te controleren
Als je localhost bezoekt en “It works!” ziet, maar PHP-bestanden als platte tekst worden weergegeven:
Dit betekent dat Apache PHP niet verwerkt. Controleer:
- Controleer of de module is ingeschakeld:
apache2ctl -M | grep php- Als er niets verschijnt, is de module niet geladen. Schakel deze opnieuw in:
sudo a2enmod php8.1
sudo systemctl restart apache2- Controleer of je PHP-bestand de juiste extensie heeft (
.php) en PHP-code bevat
Als je een 403 Forbidden-fout krijgt:
Controleer de bestandsmachtigingen:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/htmlBeveiligingsnotitie: De phpinfo()-functie geeft gedetailleerde systeeminformatie weer. Laat nooit bestanden met phpinfo() achter op productieservers.
Apache Virtual Host-configuratie
Voor lokale ontwikkeling met aangepaste domeinen, maak een virtuele host aan:
sudo nano /etc/apache2/sites-available/example.local.confVoeg deze configuratie toe:
<VirtualHost *:80>
ServerName example.local
DocumentRoot /var/www/example.local
<Directory /var/www/example.local>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>ServerName: De domeinnaam voor deze virtuele hostDocumentRoot: Waar je PHP-bestanden zich bevindenAllowOverride All: Hiermee kunnen.htaccess-bestanden de Apache-instellingen overschrijven (nodig voor frameworks zoals Laravel)Require all granted: Staat toegang tot de directory toe
Maak de map aan, schakel de site in en herstart Apache:
sudo mkdir -p /var/www/example.local
sudo chown -R www-data:www-data /var/www/example.local
sudo a2ensite example.local.conf
sudo systemctl restart apache2Voeg het domein toe aan je /etc/hosts-bestand voor lokale toegang:
echo "127.0.0.1 example.local" | sudo tee -a /etc/hostsKiezen tussen Apache en Nginx
Voordat u uw webserver configureert, overweeg welke het beste bij uw behoeften past:
| Kenmerk | Apache met mod_php | Nginx met PHP-FPM |
|---|---|---|
| PHP-verwerking | Ingebed in het Apache-proces | Aparte PHP-FPM-service |
| Geheugengebruik | Hoger (PHP in elk Apache-proces) | Lager (apart procespool) |
| Prestatie | Geschikt voor laag tot gemiddeld verkeer | Beter voor veel verkeer en gelijktijdige verzoeken |
| Configuratie | Eenvoudigere initiële installatie | Complexer (vereist PHP-FPM-configuratie) |
| .htaccess Ondersteuning | Native ondersteuning | Niet ondersteund (moet worden geconfigureerd in serverblokken) |
| Productiegebruik | Veelvoorkomend bij gedeelde hosting | Veelvoorkomend in moderne implementaties |
| Leercurve | Gemakkelijker voor beginners | Steilere leercurve |
| Efficiëntie van hulpbronnen | Minder efficiënt bij hoge belasting | Efficiënter bij hoge belasting |
Wanneer kiezen voor Apache:
- Je bent bekend met Apache of hebt
.htaccess-ondersteuning nodig - Een eenvoudige ontwikkelomgeving instellen
- Werken met frameworks die sterk afhankelijk zijn van
.htaccess(sommige WordPress-omgevingen) - Je geeft de voorkeur aan een eenvoudigere initiële configuratie
Wanneer Nginx te kiezen:
- Je hebt betere prestaties nodig bij hoge belasting
- Je wilt moderne productieomgevingen nabootsen
- Je bouwt toepassingen die zullen opschalen
- Je geeft de voorkeur aan een modernere architectuur
Beide werken even goed voor lokale ontwikkeling. De keuze komt vaak neer op persoonlijke voorkeur of bestaande infrastructuur.
Stap 3 — PHP configureren met Nginx
Installeer PHP-FPM (FastCGI Process Manager):
sudo apt install php8.1-fpmStart en schakel PHP-FPM in:
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpmBegrijpen van PHP-FPM en FastCGI: In tegenstelling tot Apache’s mod_php, verwerkt Nginx PHP niet direct. PHP-FPM (FastCGI Process Manager) draait als een aparte service waarmee Nginx communiceert via het FastCGI-protocol. FastCGI is een binair protocol om programma’s te koppelen aan webservers—het is sneller dan traditionele CGI omdat het processen levend houdt tussen verzoeken door.
Wanneer Nginx een verzoek voor een PHP-bestand ontvangt, stuurt het het verzoek door naar PHP-FPM via een Unix-socket (of TCP-verbinding). PHP-FPM verwerkt de PHP-code en stuurt het resultaat terug naar Nginx, dat het vervolgens naar de cliënt verzendt. Deze scheiding stelt PHP-FPM in staat om zijn eigen pool van processen te beheren, wat de prestaties en het resourcebeheer verbetert.
Nginx-serverblokconfiguratie
Maak een serverblokconfiguratie:
sudo nano /etc/nginx/sites-available/example.localVoeg deze configuratie toe:
server {
listen 80;
server_name example.local;
root /var/www/example.local;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}Configuratie uitgelegd:
root: Map waar je PHP-bestanden zich bevindenlocation ~ \.php$: Komt overeen met alle aanvragen die eindigen op.phpmet behulp van regexinclude snippets/fastcgi-php.conf: Voegt Nginx’s standaard FastCGI-configuratie toe (steltSCRIPT_FILENAMEen andere vereiste variabelen in)fastcgi_pass unix:/var/run/php/php8.1-fpm.sock: De Unix-socket waar PHP-FPM naar luistert. Dit is hoe Nginx communiceert met PHP-FPM. Het pad van de socket is gedefinieerd in/etc/php/8.1/fpm/pool.d/www.conf
Schakel de site in en test de configuratie:
sudo mkdir -p /var/www/example.local
sudo chown -R www-data:www-data /var/www/example.local
sudo ln -s /etc/nginx/sites-available/example.local /etc/nginx/sites-enabled/
sudo nginx -tAls de test slaagt, start Nginx opnieuw:
sudo systemctl restart nginxVoeg de domeinnaam toe aan /etc/hosts:
echo "127.0.0.1 example.local" | sudo tee -a /etc/hostsMaak een test PHP-bestand aan:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.local/info.phpBezoek http://example.local/info.php. Je zou de configuratiepagina van PHP moeten zien. Verwijder het testbestand na verificatie:
sudo rm /var/www/example.local/info.phpProblemen met Nginx PHP oplossen
Als je de fout “502 Bad Gateway” krijgt:
Dit betekent dat Nginx niet kan communiceren met PHP-FPM. Controleer:
- Controleer of PHP-FPM actief is:
sudo systemctl status php8.1-fpm- Controleer of het socketpad correct is. De locatie van de socket wordt gedefinieerd in
/etc/php/8.1/fpm/pool.d/www.conf:
grep listen /etc/php/8.1/fpm/pool.d/www.confJe zou iets moeten zien zoals listen=/run/php/php8.1-fpm.sock. Het pad in je Nginx-configuratie moet precies overeenkomen. Let op dat /var/run vaak een symlink is naar /run, dus beide paden werken.
- Controleer de machtigingen van het socketbestand:
ls -la /var/run/php/php8.1-fpm.sockDe socket moet eigendom zijn van www-data of van de gebruiker waaronder Nginx draait. Als de rechten verkeerd zijn:
sudo chown www-data:www-data /var/run/php/php8.1-fpm.sock- Controleer het Nginx-foutlogboek:
sudo tail -20 /var/log/nginx/error.logJe kunt fouten zoals zien:
connect() to unix:/var/run/php/php8.1-fpm.sock failed (2: No such file or directory)Dit geeft aan dat het socketpad onjuist is of dat PHP-FPM niet draait.
Als PHP-bestanden worden gedownload in plaats van uitgevoerd:
Dit betekent dat Nginx PHP-bestanden niet doorstuurt naar PHP-FPM. Controleer:
- Het
location ~ \.php$-blok bestaat in je serverconfiguratie - De
fastcgi_pass-instructie verwijst naar de juiste socket - Je hebt Nginx opnieuw gestart nadat je wijzigingen had aangebracht
Als je 'Bestand niet gevonden'-fouten krijgt:
Controleer of snippets/fastcgi-php.conf bestaat:
ls -la /etc/nginx/snippets/fastcgi-php.confDit bestand stelt SCRIPT_FILENAME in, wat PHP-FPM vertelt welk bestand uitgevoerd moet worden. Zonder dit weet PHP-FPM niet welk bestand verwerkt moet worden.
Stap 4 — PHP configureren voor ontwikkeling
Configureer PHP voor ontwikkeling door de foutmeldingweergave, weergave-instellingen en geheugenlimieten in php.ini aan te passen. Deze instellingen verschillen van productieconfiguraties.
PHP gebruikt aparte configuratiebestanden voor CLI (commandoregel) en webservergebruik. Bewerk het juiste bestand:
Voor CLI (bij het uitvoeren van PHP vanuit de terminal):
sudo nano /etc/php/8.1/cli/php.iniVoor webserver (Apache of Nginx met PHP-FPM):
# For Apache
sudo nano /etc/php/8.1/apache2/php.ini
# For PHP-FPM (Nginx)
sudo nano /etc/php/8.1/fpm/php.iniOpmerking: Als je zowel de CLI als de webserver gebruikt, moet je beide bestanden afzonderlijk configureren. Wijzigingen in cli/php.ini hebben geen invloed op webverzoeken, en wijzigingen in apache2/php.ini of fpm/php.ini hebben geen invloed op CLI-scripts.
Belangrijke ontwikkelingsinstellingen
Zoek deze instellingen en werk ze bij in je php.ini-bestand:
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
date.timezone = America/New_YorkWat elke instelling doet:
display_errors=On: Toont PHP-fouten rechtstreeks in de browser (handig voor het debuggen, gevaarlijk in productie)display_startup_errors=On: Toont fouten die optreden tijdens het opstarten van PHPerror_reporting=E_ALL: Meldt alle soorten fouten (waarschuwingen, meldingen, enz.)log_errors=On: Schrijft fouten naar een logbestanderror_log: Waar PHP foutlogboeken schrijftmemory_limit=256M: Maximale hoeveelheid geheugen die een script kan gebruiken (verhoog dit als je 'memory exhausted'-fouten krijgt)upload_max_filesize=64M: Maximale grootte voor geüploade bestandenpost_max_size=64M: Maximale grootte voor POST-gegevens (moet groter zijn danupload_max_filesize)max_execution_time=300: Maximale tijd dat een script kan draaien (in seconden)date.timezone: Stelt de standaardtijdzone in (gebruik je lokale tijdzone:Asia/Kolkata,Europe/London,UTC, enz.)
Productiewaarschuwing: Gebruik deze ontwikkelinstellingen nooit in productie. Stel altijd display_errors=Off in en gebruik geschikte foutmeldingsniveaus op live servers.
Start uw webserver opnieuw op nadat u wijzigingen hebt aangebracht:
# For Apache
sudo systemctl restart apache2
# For PHP-FPM
sudo systemctl restart php8.1-fpmUw configuratie verifiëren
Controleer of je wijzigingen effect hebben gehad:
# For CLI
php -i | grep display_errors
# For web server (create a test file)
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/test.phpBezoek het testbestand in je browser en zoek naar display_errors. Het zou On moeten tonen. Verwijder het testbestand na verificatie.
Als je wijzigingen niet verschijnen:
- Zorg ervoor dat je het juiste
php.ini-bestand hebt bewerkt (CLI versus webserver) - Controleer de instellingen op typfouten (ze zijn hoofdlettergevoelig)
- Start je webserver opnieuw op na het aanbrengen van wijzigingen
- Sommige instellingen kunnen worden overschreven door
.htaccess(Apache) ofphp.iniin je projectmap
Je zou nu meteen kunnen beginnen met het gebruiken van PHP, maar je zult waarschijnlijk verschillende bibliotheken willen gebruiken om snel PHP-toepassingen te bouwen. Voordat je je PHP-omgeving test, stel eerst een afhankelijkheidsbeheerder voor je projecten in.
Stap 5 — Composer instellen voor afhankelijkheidsbeheer (optioneel)
Bibliotheken zijn een verzameling code die je kunnen helpen bij het oplossen van veelvoorkomende problemen zonder alles zelf te hoeven schrijven. Omdat er veel bibliotheken beschikbaar zijn, helpt het gebruik van een afhankelijkheidsbeheerder je om meerdere bibliotheken te beheren naarmate je meer ervaring krijgt met het schrijven van PHP.
Composer is een hulpmiddel voor het beheer van afhankelijkheden in PHP. Hiermee kunt u de bibliotheken opgeven waarvan uw project afhankelijk is en zal het helpen bij het installeren en bijwerken van deze pakketten.
Hoewel vergelijkbaar, is Composer geen pakketbeheerder in dezelfde zin als yum of apt. Het gaat om "pakketten" of bibliotheken, maar het beheert ze op projectbasis, waarbij ze worden geïnstalleerd in een map (bijvoorbeeld vendor) binnen je project. Standaard installeert het niets globaal. Het is dus een afhankelijkheidsbeheerder. Het ondersteunt echter wel een globaal project voor het gemak via het global-commando.
Dit idee is niet nieuw, en Composer is sterk geïnspireerd door Node’s npm en Ruby’s bundler.
Stel voor :
- Je hebt een project dat afhankelijk is van verschillende bibliotheken.
- Sommige van die bibliotheken zijn afhankelijk van andere bibliotheken.
Componist:
- Stelt je in staat de bibliotheken waarop je afhankelijk bent te declareren.
- Komt erachter welke versies van welke pakketten geïnstalleerd kunnen en moeten worden en installeert ze door ze in je project te downloaden.
- Stelt je in staat om al je afhankelijkheden met één commando bij te werken.
- Stelt je in staat om het hoofdstuk Basisgebruik te bekijken voor meer details over het declareren van afhankelijkheden.
Download de Composer-installatieprogramma:
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.phpControleer de integriteit van de installer door de SHA-384-hash te controleren. Verkrijg de nieuwste hash:
HASH=$(curl -sS https://composer.github.io/installer.sig)Controleer of de hash overeenkomt:
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;"Je zou moeten zien:
Installer verifiedAls je Installer corrupt ziet, was de download onvolledig of is deze aangetast. Download de installer opnieuw en controleer de hash. Als het nog steeds niet lukt, controleer dan je internetverbinding of probeer te downloaden via een ander netwerk.
Installeer Composer wereldwijd:
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composerJe ontvangt een uitvoer die hierop lijkt:
All settings correct for using Composer
Downloading...
Composer (version 2.3.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composerTest uw installatie:
composerJe ontvangt uitvoer zoals de volgende:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.3.5 2022-04-13 16:43:00
Usage:
command [options] [arguments]
Options:
-h, --help Display help for the given command. When no command is given display help for the list command
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question
--profile Display timing and memory usage information
--no-plugins Whether to disable plugins.
--no-scripts Skips the execution of all scripts defined in composer.json file.
-d, --working-dir=WORKING-DIR If specified, use the given directory as working directory.
--no-cache Prevent use of the cache
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
. . .Dit controleert of Composer succesvol op uw systeem is geïnstalleerd en systeembreed beschikbaar is.
Opmerking: Als je liever aparte Composer-uitvoerbare bestanden hebt voor elk project dat je op je server host, kun je het lokaal installeren, per project. Deze methode is ook handig wanneer je systeemgebruiker geen toestemming heeft om software systeemwijd te installeren.
Om dit te doen, gebruik je het commando php /tmp/composer-setup.php zonder enige argumenten. Dit commando genereert een composer.phar-bestand in je huidige map, dat je kunt uitvoeren met php composer.phar.
Stap 6 — Composer gebruiken in een PHP-project
Als laatste stap kunt u uw project optioneel initialiseren met composer init. Dit zal het composer.json-bestand aanmaken dat uw projectafhankelijkheden beheert. Het initialiseren van het project stelt u ook in staat om projectdetails zoals Auteur en Licentie te definiëren en de autoload-functionaliteit van Composer te gebruiken. U kunt nu afhankelijkheden definiëren of ze later toevoegen.
Maak een projectmap aan en initialiseer Composer:
cd ~
mkdir example-project
cd example-project
composer initHet uitvoeren van dit commando zal de setupwizard starten. Details die je in de wizard invoert, kunnen later worden bijgewerkt, dus je kunt gerust de standaardinstellingen laten en gewoon op ENTER drukken. Als je nog niet klaar bent om afhankelijkheden te installeren, kun je nee kiezen. Vul je gegevens in bij elke prompt:
Welcome to the Composer config generator
This command will guide you through creating your composer.json config.
Package name (<vendor>/<name>) [sammy/example-project]: sammy/project1
Description []:
Author [n to skip]: Sammy <sammy@linux-console.net>
Minimum Stability []:
Package Type (e.g. library, project, metapackage, composer-plugin) []: project
License []:
Define your dependencies.
Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no
Add PSR-4 autoload mapping? Maps namespace "Sammy\Project1" to the entered relative path. [src/, n to skip]: n
{
"name": "sammy/project1",
"type": "project",
"authors": [
{
"name": "Sammy",
"email": "sammy@linux-console.net"
}
],
"require": {}
}
Do you confirm generation [yes]? yesVoordat je de generatie bevestigt, zie je een voorbeeld van het composer.json-bestand dat de wizard zal aanmaken. Als alles er goed uitziet, kun je de standaardoptie ja bevestigen. Als je opnieuw wilt beginnen, kies je nee.
De eerste keer dat je een afhankelijkheid definieert, zal Composer een vendor-map aanmaken. Alle afhankelijkheden worden in deze vendor-map geïnstalleerd. Composer maakt ook een composer.lock-bestand aan. Dit bestand specificeert de exacte versie van elke afhankelijkheid en sub-afhankelijkheid die in je project wordt gebruikt. Dit zorgt ervoor dat elke machine waarop je programma wordt uitgevoerd, exact dezelfde versie van elk pakket gebruikt.
Opmerking: De vendor map mag nooit worden gecommit naar je versiebeheersysteem (VCS). De vendor map bevat alleen pakketten die je van andere leveranciers hebt geïnstalleerd. Die individuele leveranciers onderhouden hun eigen code in hun eigen versiebeheersystemen. Je zou alleen de code die je zelf schrijft moeten bijhouden. In plaats van de vendor map te commiten, hoef je alleen je composer.json en composer.lock bestanden te committen. Je kunt meer leren over het negeren van specifieke bestanden in Hoe Gebruik Je Git: Een Referentiegids.
Nu je PHP hebt geïnstalleerd en een manier hebt om je projectafhankelijkheden te beheren met Composer, ben je klaar om je omgeving te testen.
Stap 7 — Het testen van de PHP-omgeving
Maak en voer een basis PHP-script uit om uw installatie te testen:
nano hello.phpVoeg de volgende PHP-code toe:
<?php
echo 'Hello World!';
?>Sla het bestand op en sluit het (druk op CTRL+X, daarna Y en vervolgens ENTER). Voer het script uit:
php hello.phpAls de PHP correct wordt verwerkt, zie je alleen de tekens binnen de aanhalingstekens:
Hello World!PHP heeft het script succesvol verwerkt, wat betekent dat je PHP-omgeving succesvol is geïnstalleerd en dat je klaar bent om je programmeeravontuur voort te zetten.
Stap 8 — Realistische PHP-projecten opzetten
Moderne PHP-frameworks zoals Laravel, Symfony en WordPress vereisen specifieke PHP-extensies en Composer. Installeer het framework met Composer of de installer van het framework en configureer vervolgens je webserver om naar de publieke map van het project te verwijzen.
Laravel installeren
Installeer Laravel met Composer:
composer create-project laravel/laravel my-laravel-app
cd my-laravel-appDit commando downloadt Laravel en al zijn afhankelijkheden. Het proces kan een paar minuten duren.
Laravel vereist deze PHP-extensies (geïnstalleerd in Stap 1):
php8.1-mbstring- Afhandeling van multibyte-stringsphp8.1-xml- XML-parseringphp8.1-curl- HTTP-verzoekenphp8.1-zip- Archiefverwerkingphp8.1-bcmath- Wiskunde met willekeurige precisie
Als Laravel zegt “mbstring ontbreekt” terwijl je het toch hebt geïnstalleerd:
Dit betekent meestal dat de extensie is geïnstalleerd maar niet geladen. Controleer:
- Controleer of de extensie is geïnstalleerd:
php -m | grep mbstring- Als het ontbreekt, installeer het dan:
sudo apt install php8.1-mbstring- Als het is geïnstalleerd maar niet wordt weergegeven, start dan je webserver opnieuw:
# For Apache
sudo systemctl restart apache2
# For PHP-FPM
sudo systemctl restart php8.1-fpm- Controleer welk
php.ini-bestand wordt gebruikt. De installer van Laravel gebruikt CLI PHP, dus controleer:
php --iniZorg ervoor dat de extensie is ingeschakeld in het CLI php.ini-bestand.
Laravel-installatie verifiëren:
Start na voltooiing van de installatie de ontwikkelserver van Laravel:
php artisan serveJe zou moeten zien:
INFO Server running on [http://127.0.0.1:8000]Bezoek http://localhost:8000 in je browser. Je zou de welkomstpagina van Laravel moeten zien.
Voor productielike omgevingen met Apache of Nginx:
Stel je webserver zo in dat deze naar de public-map verwijst (niet naar de hoofdmap van het project). Laravel’s public/index.php is het toegangspunt voor alle verzoeken.
Opmerking: Leer meer over Laravel in onze tutorial over Hoe Laravel op Ubuntu te installeren.
WordPress installeren
Download en pak WordPress uit:
cd /var/www
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo chown -R www-data:www-data /var/www/wordpressWordPress vereist een MySQL- of MariaDB-database. Installeer MySQL indien nodig:
sudo apt install mysql-server
sudo mysql_secure_installationHet mysql_secure_installation script zal je vragen om:
- Stel een root-wachtwoord in
- Verwijder anonieme gebruikers
- Verbied root-login op afstand
- Verwijder testdatabase
- Herlaad bevoegdheidstabellen
Maak een database en gebruiker voor WordPress:
sudo mysql -u root -pIn de MySQL-prompt:
CREATE DATABASE wordpress_db;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT; Vervang secure_password door een sterk wachtwoord. WordPress zal deze gegevens gebruiken om verbinding te maken met de database.
Als WordPress geen verbinding kan maken met de database:
- Controleer of MySQL draait:
sudo systemctl status mysql- Test de databaseverbinding:
mysql -u wpuser -p wordpress_dbAls dit niet lukt, controleer:
- De gebruikersnaam en het wachtwoord zijn correct
- De database bestaat:
SHOW DATABASES; - De gebruiker heeft machtigingen:
SHOW GRANTS FOR 'wpuser'@'localhost';
- Controleer of de MySQL-extensie van PHP is geïnstalleerd:
php -m | grep mysqlAls het ontbreekt, installeer het dan:
sudo apt install php8.1-mysql
sudo systemctl restart apache2 # or php8.1-fpm for NginxWordPress-installatie voltooien:
Configureer uw webserver zodat deze naar /var/www/wordpress wijst (zie Stap 2 voor Apache of Stap 3 voor Nginx). Bezoek de site in uw browser. WordPress zal u vragen om:
- Selecteer uw taal
- Voer de databasegegevens in (gebruik de database, gebruikersnaam en het wachtwoord die u hebt aangemaakt)
- Voltooi de installatie
Opmerking: Voor een gedetailleerde WordPress-installatie, zie Hoe WordPress te installeren met LAMP op Ubuntu.
Symfony installeren
Installeer Symfony met Composer:
composer create-project symfony/website-skeleton my-symfony-app
cd my-symfony-appSymfony vereist dezelfde extensies als Laravel. Start de ontwikkelserver:
symfony server:startOf gebruik de ingebouwde server van PHP:
php -S localhost:8000 -t publicAls de Symfony-installatie mislukt door extensiefouten:
Controleer of alle vereiste extensies zijn geïnstalleerd en geladen:
php -m | grep -E 'mbstring|xml|curl|zip|bcmath'Als er iets ontbreekt, installeer dit dan en start uw webserver opnieuw op.
Stap 9 — Beste praktijken voor lokale ontwikkeling
Beveilig je lokale omgeving, gebruik versiebeheer, configureer de juiste bestandspermissies en stel omgeving-specifieke configuraties in. Deze praktijken voorkomen beveiligingsproblemen en maken ontwikkeling soepeler.
Beveiligingsoverwegingen
Zelfs bij lokale ontwikkeling, volg de beste beveiligingspraktijken:
Schakel gevaarlijke PHP-functies uit in productie: Functies zoals
exec(),system()enshell_exec()moeten worden beperkt in productiephp.ini-bestanden.Gebruik omgevingsvariabelen: Sla gevoelige configuratie op in
.env-bestanden (commit deze nooit naar versiebeheer). Laravel en Symfony ondersteunen dit standaard.Stel de juiste bestandsrechten in: Bestanden van de webserver moeten leesbaar zijn voor de webservergebruiker, maar niet beschrijfbaar:
sudo chown -R www-data:www-data /var/www/your-project
sudo find /var/www/your-project -type d -exec chmod 755 {} \;
sudo find /var/www/your-project -type f -exec chmod 644 {} \;Waarom deze machtigingen belangrijk zijn: Mappen hebben 755 nodig (lezen, schrijven, uitvoeren voor de eigenaar; lezen en uitvoeren voor anderen) zodat de webserver ze kan doorlopen. Bestanden hebben 644 nodig (lezen en schrijven voor de eigenaar; alleen lezen voor anderen) zodat de webserver ze kan lezen maar niet kan wijzigen. Dit voorkomt dat kwaadaardige scripts je bestanden overschrijven.
Versiebeheerintegratie
Gebruik altijd versiebeheer voor je PHP-projecten. Initialiseer Git in je projectmap:
cd /var/www/your-project
git initMaak een .gitignore-bestand om onnodige bestanden uit te sluiten:
/vendor/
/node_modules/
.env
.DS_Store
*.logPrestatieoptimalisatie
Voor betere prestaties bij lokale ontwikkeling:
OPcache inschakelen: OPcache is inbegrepen bij PHP 8.1 en verbetert de prestaties door gecompileerde PHP-code in het cachegeheugen op te slaan.
Gebruik de autoloader-optimalisatie van Composer:
composer install --optimize-autoloader --no-dev- Configureer PHP-FPM-pools voor een beter beheer van middelen bij gebruik van Nginx.
Stap 10 — Problemen oplossen van veelvoorkomende kwesties
Veelvoorkomende PHP-installatieproblemen zijn onder andere ontbrekende extensies, verkeerde bestandsrechten, fouten in de configuratie van de webserver en conflicten tussen versies. De meeste problemen kunnen worden opgelost door te controleren of extensies correct zijn geïnstalleerd, de bestandsrechten te verifiëren en de logbestanden van de webserver te bekijken.
PHP-extensies laden niet
Als php -m een extensie die je net hebt geïnstalleerd niet laat zien:
- Controleer of het daadwerkelijk is geïnstalleerd:
dpkg -l | grep php8.1-extension_name- Controleer of het extensiebestand bestaat:
ls /usr/lib/php/*/extension_name.so- Verifieer of het is ingeschakeld in
php.ini. Sommige extensies moeten expliciet worden ingeschakeld:
grep -i extension_name /etc/php/8.1/*/php.ini- Start uw webserver opnieuw:
# For Apache
sudo systemctl restart apache2
# For PHP-FPM
sudo systemctl restart php8.1-fpm- Controleer welke
php.iniwordt gebruikt:
php --iniZorg ervoor dat je het juiste php.ini-bestand controleert (CLI versus webserver).
Als de extensie nog steeds niet verschijnt:
- Sommige extensies vereisen aanvullende systeembibliotheken. Raadpleeg de documentatie van de extensie
- Controleer of je de juiste versie hebt geïnstalleerd (php8.1-extensie, niet php8.0-extensie)
- Controleer op conflicterende PHP-versies die mogelijk storen
500 Interne Serverfout
Een 500-fout betekent dat de server een fout is tegengekomen, maar de details niet kan tonen. Controleer de foutlogboeken:
# Apache
sudo tail -20 /var/log/apache2/error.log
# Nginx
sudo tail -20 /var/log/nginx/error.log
# PHP-FPM
sudo tail -20 /var/log/php8.1-fpm.logVeelvoorkomende oorzaken en oplossingen:
- Onjuiste bestandspermissies: PHP-bestanden moeten leesbaar zijn voor de webservergebruiker
sudo chown -R www-data:www-data /var/www/your-project
sudo find /var/www/your-project -type f -exec chmod 644 {} \;
sudo find /var/www/your-project -type d -exec chmod 755 {} \;Ontbrekende PHP-extensies: Controleer het foutlogboek op berichten zoals „Oproep naar ongedefinieerde functie”. Installeer de ontbrekende extensie en herstart de webserver.
Syntaxfouten in PHP-bestanden: Het foutlogbestand toont het bestand en het regelnummer. Veelvoorkomende problemen:
- Ontbrekende puntkomma's
- Niet afgesloten haakjes of aanhalingstekens
- Het gebruik van niet-gedefinieerde functies of klassen
Onjuiste webserverconfiguratie:
- Apache: Controleer virtuele hostconfiguratie, moduleladen
- Nginx: Controleer het PHP-FPM socketpad, FastCGI-configuratie
PHP-geheugenlimiet overschreden: Verhoog
memory_limitinphp.inials je de foutmeldingen “Toegestane geheugenlimiet overschreden” ziet
PHP-versieconflicten
Als php -v een andere versie laat zien dan verwacht, heb je meerdere PHP-versies geïnstalleerd.
Controleer welke versies zijn geïnstalleerd:
dpkg -l | grep php | grep -E 'php[0-9]'Gebruik expliciet de juiste versie:
php8.1 -v
php8.1 -mWerk uw webserver bij om PHP 8.1 te gebruiken:
Voor Apache, schakel andere PHP-modules uit en schakel PHP 8.1 in:
sudo a2dismod php7.4 php8.0 # if they exist
sudo a2enmod php8.1
sudo systemctl restart apache2Voor PHP-FPM, stop andere versies en start PHP 8.1:
sudo systemctl stop php7.4-fpm php8.0-fpm # if they exist
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpmStel PHP 8.1 in als de standaard CLI-versie:
sudo update-alternatives --set php /usr/bin/php8.1Geheugenproblemen bij Composer
Als Composer geen geheugen meer heeft, zie je een fout zoals:
Fatal error: Allowed memory size of 134217728 bytes exhaustedLos het op door Composer uit te voeren met meer geheugen:
php -d memory_limit=512M /usr/local/bin/composer installOf verhoog de geheugenlimiet van PHP in php.ini:
memory_limit = 512MAls de installatie van Composer mislukt door een hash-ongelijkheid:
De hash-verificatie kan mislukken als:
- De installer is bijgewerkt sinds je deze hebt gedownload (download opnieuw om de nieuwste hash te krijgen)
- Uw download is beschadigd (probeer het opnieuw te downloaden)
- Je zit achter een proxy die bestanden wijzigt (controleer je netwerkinstellingen)
Database verbindingsproblemen
Als uw PHP-toepassing geen verbinding kan maken met MySQL/MariaDB, kunt u fouten zien zoals:
SQLSTATE[HY000] [2002] No such file or directoryof
Access denied for user 'username'@'localhost'Stappen voor probleemoplossing:
- Controleer of de databaseservice actief is:
sudo systemctl status mysqlAls het niet draait, start het dan:
sudo systemctl start mysql
sudo systemctl enable mysql- Controleer of de MySQL-extensie van PHP is geïnstalleerd:
php -m | grep mysqlAls het ontbreekt, installeer het dan:
sudo apt install php8.1-mysql
sudo systemctl restart apache2 # or php8.1-fpm for Nginx- Controleer de databasegegevens en -machtigingen. Test de verbinding:
mysql -u username -p database_nameAls dit niet lukt, controleer:
- De gebruikersnaam en het wachtwoord zijn correct
- De database bestaat:
SHOW DATABASES; - De gebruiker heeft de volgende rechten:
SHOW GRANTS FOR 'username'@'localhost';
Opmerking: Voor het instellen van MySQL, zie Hoe MySQL te installeren op Ubuntu.
PHP-bestand wordt als gewone tekst weergegeven in plaats van uitgevoerd
Als je PHP-bestand als gewone tekst in de browser wordt weergegeven:
Controleer de bestandsextensie: Het moet
.phpzijn, niet.txtof.htmlControleer of PHP bestanden verwerkt:
- Apache: Controleer of
mod_phpis ingeschakeld:apache2ctl -M | grep php
- Apache: Controleer of
- Nginx: Controleer of PHP-FPM actief is en of het socketpad correct is
Controleer bestandsrechten: De webserver moet het bestand kunnen lezen
Controleer of het bestand PHP-code bevat: Zorg ervoor dat het begint met
<?phpof<?Controleer de webserverconfiguratie:
- Apache: Virtuele host is mogelijk niet correct geconfigureerd
- Nginx: Het
location ~ \.php$-blok kan ontbreken of onjuist zijn
Problemen met het uploaden van bestanden
Als het uploaden van bestanden mislukt, kunt u fouten zien zoals:
The uploaded file exceeds the upload_max_filesize directiveControleer deze php.ini-instellingen:
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300Belangrijk: post_max_size moet groter zijn dan upload_max_filesize. Als je upload_max_filesize=100M instelt, stel dan post_max_size=110M of hoger in.
Als uploads nog steeds mislukken:
- Controleer het foutlogboek op specifieke foutmeldingen
- Controleer of de uploadmap bestaat en beschrijfbaar is:
sudo chmod 755 /path/to/upload/directory
sudo chown www-data:www-data /path/to/upload/directory- Controleer schijfruimte:
df -h - Controleer of het formulier
enctype="multipart/form-data"gebruikt
Start je webserver opnieuw op nadat je wijzigingen in php.ini hebt aangebracht.
Veelgestelde vragen
Hoe installeer ik PHP 8.1 op Ubuntu?
Installeer PHP 8.1 met de pakketbeheerder van Ubuntu: sudo apt update && sudo apt install php8.1. PHP 8.1 is beschikbaar in de standaardrepositories van Ubuntu, dus er zijn geen extra pakketbronnen nodig.
Welke PHP-extensies zijn essentieel voor ontwikkeling?
Essentiële extensies zijn onder andere php8.1-cli, php8.1-mysql, php8.1-curl, php8.1-xml, php8.1-mbstring, php8.1-zip, php8.1-gd en php8.1-bcmath. Deze dekken databaseconnectiviteit, HTTP-verzoeken, stringverwerking en beeldverwerking.
Hoe configureer ik PHP met Apache of Nginx?
Voor Apache, installeer libapache2-mod-php8.1 en schakel het in met sudo a2enmod php8.1. Voor Nginx, installeer php8.1-fpm en configureer Nginx om PHP-verzoeken door te geven aan de PHP-FPM-socket via FastCGI.
Hoe kan ik controleren of PHP correct is geïnstalleerd?
Voer php -v uit om de PHP-versie te controleren. Maak een testbestand met <?php phpinfo(); ?> en open het via je webserver om gedetailleerde PHP-configuratie-informatie te zien.
Kan ik Laravel of WordPress lokaal draaien met deze setup?
Ja. Laravel vereist Composer en de standaard PHP-extensies die hierboven zijn genoemd. WordPress heeft naast PHP ook een MySQL-database nodig. Beide frameworks werken met zowel Apache- als Nginx-configuraties.
Hoe installeer ik Composer voor PHP-projecten?
Download de Composer-installer, controleer de hash en installeer deze wereldwijd: sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer. Controleer met composer --version.
Hoe los ik problemen op met ontbrekende PHP-extensies?
Controleer geïnstalleerde extensies met php -m. Installeer ontbrekende extensies met sudo apt install php8.1-naam_van_extensie en herstart vervolgens je webserver.
Hoe configureer ik PHP-foutmeldingen voor ontwikkeling?
Bewerk php.ini en stel display_errors=On, error_reporting=E_ALL en log_errors=On in. Vergeet niet om foutweergave uit te schakelen in productieomgevingen.
Wat is het verschil tussen Apache en Nginx voor PHP?
Apache gebruikt mod_php om PHP direct te verwerken (PHP is ingebouwd in het proces van Apache), terwijl Nginx PHP-FPM (FastCGI Process Manager) nodig heeft om PHP-verzoeken af te handelen (PHP draait als een aparte service). Zie de sectie “Kiezen tussen Apache en Nginx” hierboven voor een gedetailleerde vergelijkingstabel. Beide benaderingen werken goed; kies op basis van je prestatiebehoeften, vertrouwdheid en bestaande infrastructuur.
Kan ik meerdere PHP-versies op hetzelfde systeem installeren?
Ja, door tools zoals phpenv of phpbrew te gebruiken. Voor de meeste ontwikkelingsscenario's is echter één PHP-versie voldoende. Gebruik versiebeheerders wanneer je applicaties tegen verschillende PHP-versies moet testen.
Conclusie
Je hebt nu een volledig geconfigureerde PHP 8.1-ontwikkelomgeving op Ubuntu met ondersteuning voor zowel Apache- als Nginx-webservers. Je setup bevat essentiële PHP-extensies, Composer voor afhankelijkheidsbeheer en de juiste configuratie voor lokale ontwikkeling.
Voordat je aan je volgende project begint, overweeg om een Geïntegreerde Ontwikkelomgeving (IDE) zoals VS Code in te stellen met PHP-extensies voor syntaxisaccentuering, debuggen en IntelliSense-ondersteuning.
Met je omgeving klaar kun je PHP-ontwikkeling verder verkennen:
- Leer de basisprincipes van PHP met Hoe je met strings werkt in PHP
- APIs bouwen met How To Use Web APIs in PHP
- Begrijp functies in Hoe functies te gebruiken in PHP
- Databases opzetten met Hoe PostgreSQL te installeren en gebruiken op Ubuntu
Voor productie-implementaties kunt u overwegen om Linux-Console.net App Platform te gebruiken om uw PHP-toepassingen rechtstreeks vanaf GitHub te implementeren met automatische schaalverdeling en SSL-certificaten.
Bedankt dat je samen met de Linux-Console.net-community hebt geleerd.

