Inleiding
Ubuntu 16.04 LTS (Xenial Xerus) is een veelgebruikte versie van het Linux-besturingssysteem die sinds 2016 beschikbaar is en een lange termijn-ondersteuning (LTS) biedt. Tijdens de levenscyclus van deze versie heeft Canonical, de ontwikkelaar van Ubuntu, bepaalde pakketten verwijderd uit de standaard repositories, waaronder oudere versies van PHP zoals PHP 5. Dit heeft geleid tot de noodzaak van manuele configuratie voor ontwikkelaars die hun toepassingen op oudere versies moeten draaien.
In dit artikel wordt een technische procedure beschreven voor het inrichten van een Ubuntu 16.04 LTS-server met PHP 5.6. Deze aanpak is relevant voor organisaties of individuen die oudere toepassingen gebruiken die niet compatibel zijn met PHP 7 of nieuwer. De procedure maakt gebruik van de PPA (Personal Package Archive) van Ondrej Sury, een bekende bron voor PHP-pakketten in Ubuntu-omgevingen.
Deze beschrijving is gebaseerd op openbare documentatie en community-gebaseerde instructies, en moet worden gezien als een technische gids voor de installatie en configuratie van PHP 5.6 in een Ubuntu 16.04 LTS-omgeving.
Context en Doel van de Inrichting
Ubuntu 16.04 LTS is een stabiele versie van het besturingssysteem die gedurende vijf jaar ondersteuning ontvangt. Omdat deze versie in 2016 is uitgebracht, zijn er sindsdien belangrijke updates en upgrades doorgevoerd in de open source-wereld, waaronder ook in de PHP-ecosysteem. Canonical heeft in de loop van de levenscyclus van 16.04 LTS bepaalde oudere versies van PHP verwijderd uit de standaard repositories. Dit heeft als gevolg dat gebruikers die PHP 5.6 moeten gebruiken, extra stappen moeten ondernemen om deze versie te installeren.
De redenen om PHP 5.6 te gebruiken kunnen variëren. Sommige oudere webtoepassingen zijn niet getest of compatibel met PHP 7 en kunnen fouten genereren of zelfs volledig falen bij een upgrade. Voor dergelijke gevallen kan het verstandig zijn om een server met PHP 5.6 in te richten, zodat deze toepassingen blijven werken zonder verder te hoeven aanpassen.
Het doel van deze inrichting is het installeren van PHP 5.6 en alle benodigde extensies op een Ubuntu 16.04 LTS-server, met een focus op de benodigde repositories, pakketten en Apache-integratie.
Voorbereiding van de Server
Voordat de installatie van PHP 5.6 kan beginnen, is het noodzakelijk om de server in te richten op een manier die geschikt is voor het installeren van oudere pakketten. Dit betekent dat bestaande versies van PHP (zoals PHP 7) moeten worden verwijderd om eventuele conflicten te voorkomen.
Verwijdering van PHP 7
In Ubuntu 16.04 LTS is PHP 7 standaard beschikbaar in de repositories. De eerste stap in het proces is het verwijderen van alle geïnstalleerde PHP-pakketten, inclusief PHP 5 en PHP 7. Dit kan worden gedaan via het apt-get purge-commando, waarbij dpkg wordt gebruikt om een lijst te genereren van alle geïnstalleerde PHP-pakketten.
Het commando dpkg -l | grep php genereert een lijst van alle geïnstalleerde PHP-pakketten, en apt-get purge verwijdert deze. Het volledige commando ziet er als volgt uit:
apt-get purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
Dit commando moet worden uitgevoerd met root-rechten, wat meestal via sudo su of sudo gebeurt. Het doel is om alle bestaande versies van PHP te verwijderen, zodat er geen conflict ontstaat bij het installeren van PHP 5.6.
Toevoegen van de Ondrej PPA
Daarna wordt de PPA van Ondrej Sury toegevoegd aan de systeem-repositories. Deze PPA bevat oudere versies van PHP, waaronder PHP 5.5 en 5.6, en is een betrouwbare bron binnen de community voor deze pakketten. Het toevoegen van deze PPA wordt gedaan met het volgende commando:
add-apt-repository ppa:ondrej/php
apt-get update
Het add-apt-repository-commando voegt de repository toe aan de lijst van beschikbare repositories, en apt-get update zorgt ervoor dat de pakketlijsten worden bijgewerkt. Dit zorgt ervoor dat het systeem weet waar het naar PHP 5.6 kan zoeken bij de installatie.
Installatie van PHP 5.6 en Benodigde Extensies
Zodra de PPA is toegevoegd en de pakketlijsten zijn bijgewerkt, kan PHP 5.6 worden geïnstalleerd. Dit betreft zowel de basisversie van PHP als de benodigde extensies die voor sommige toepassingen zijn vereist.
Installatie van PHP 5.6
Het installeren van PHP 5.6 zelf kan worden gedaan met het volgende commando:
apt-get install php5.6
Dit commando downloadt en installeert de kernversie van PHP 5.6. Het is echter vaak nodig om aanvullende extensies te installeren, afhankelijk van de vereisten van de webtoepassing.
Aanvullende Extensies
Verschillende extensies zijn beschikbaar voor PHP 5.6. Voor webtoepassingen zijn extensies zoals php5.6-soap, php5.6-gd, php5.6-xdebug, en php5.6-xml vaak nodig. Deze extensies kunnen worden geïnstalleerd via het volgende commando:
apt-get install php5.6-dev php-pear php5.6-soap php5.6-sybase php5.6-gd php5.6-xdebug php5.6-xml
Elke extensie heeft een specifieke functie:
php5.6-dev: Biedt de ontwikkelaarsbibliotheken die nodig zijn voor het maken van aangepaste modules.php-pear: Standaard bibliotheek voor PHP-uitbreidingen.php5.6-soap: Voor SOAP-verbindingen en web services.php5.6-sybase: Voor Sybase-databaseverbindingen.php5.6-gd: Voor afbeeldingsbewerking.php5.6-xdebug: Voor het debuggen van PHP-code.php5.6-xml: Voor XML-afhandeling.
Het is belangrijk om ervoor te zorgen dat alle benodigde extensies zijn geïnstalleerd, omdat sommige webtoepassingen anders niet correct werken.
Apache-integratie
Voor webtoepassingen die via Apache worden gehost, is het noodzakelijk om de Apache-module voor PHP 5.6 te activeren. Dit zorgt ervoor dat PHP-bestanden worden verwerkt door de Apache-server.
Installatie van de Apache-modul
Als Apache als webserver wordt gebruikt, moet de libapache2-mod-php5.6-modul geïnstalleerd worden. Dit kan met het volgende commando:
apt-get install libapache2-mod-php5.6
Deze modul zorgt ervoor dat Apache PHP-bestanden kan interpreteren en uitlezen.
Activeren van de Module
Nadat de modul is geïnstalleerd, moet deze worden geactiveerd in Apache. Dit kan worden gedaan met het a2enmod-commando:
a2enmod php5.6
Dit commando activeert de PHP 5.6-modul in Apache, zodat PHP-bestanden correct worden verwerkt. Na de activatie is het aan te raden om Apache te herstarten om de wijzigingen toe te passen:
systemctl restart apache2
Controle van de Installatie
Nadat PHP 5.6 is geïnstalleerd en geconfigureerd, is het belangrijk om te controleren of de versie correct is en of alle extensies zijn geïnstalleerd.
Controle van de PHP-versie
De versie van PHP kan worden gecontroleerd met het volgende commando:
php -v
Dit commando geeft de versie van PHP weer, inclusief eventuele extensies die zijn geïnstalleerd. Bij een correcte installatie van PHP 5.6 moet de uitvoer deze versie aangeven.
Controle van de Extensies
Om te controleren of alle benodigde extensies zijn geïnstalleerd, kan het php -m-commando worden gebruikt:
php -m
Dit commando geeft een lijst van alle geïnstalleerde modules en extensies. Eventuele ontbrekende modules kunnen extra worden geïnstalleerd via apt-get.
Mogelijke Problemen en Oplossingen
Bij het installeren van oudere versies van software kunnen problemen voorkomen, zoals afhankelijkheidsconflicten of onverwachte fouten.
Conflicten met PHP 7
Een bekend probleem is dat php-pear automatisch PHP 7 kan installeren, wat leidt tot conflicten met PHP 5.6. Dit is in de bronmateriaal genoemd, waarbij php-pear als afhankelijkheid optreedt en PHP 7 opnieuw installeert. Om dit te voorkomen, kan het noodzakelijk zijn om PHP 7 expliciet te verwijderen of te blokkeren voor installatie via apt-mark.
Ondersteuning en Veiligheid
Deze inrichting is voornamelijk bedoeld voor ontwikkelomgevingen en wordt niet aanbevolen voor productieomgevingen. PHP 5.6 is officieel niet langer ondersteund, wat betekent dat er geen veiligheidsupdates meer worden uitgebracht. Voor productieomgevingen is het aan te raden om te upgraden naar een ondersteunde versie van PHP.
Conclusie
Het inrichten van een Ubuntu 16.04 LTS-server voor PHP 5.6 vereist een aantal specifieke stappen, waaronder het verwijderen van oudere PHP-versies, het toevoegen van externe repositories zoals de PPA van Ondrej Sury, en het installeren van benodigde extensies. Deze procedure is handmatig en vereist technische kennis van het Linux-besturingssysteem en de pakketbeheerder apt.
Hoewel deze aanpak geschikt is voor ontwikkelomgevingen, is het belangrijk om rekening te houden met de beperkingen, zoals het ontbreken van ondersteuning en veiligheidsupdates. Voor productieomgevingen is het aan te raden om naar een ondersteunde versie van PHP te upgraden om veiligheidsrisico’s te vermijden.
De procedure die in dit artikel is beschreven is gebaseerd op openbare documentatie en community-informatie. Het gebruik van oudere versies van software moet worden beoordeeld op basis van de specifieke eisen van de toepassing en de beschikbare ondersteuning.