Dankzij containerisatie was het vorig jaar mogelijk om SSH-toegang aan jullie beschikbaar te stellen. Met SSH kun je via een beveiligde verbinding inloggen op ons platform en zo direct via de shell commando’s uitvoeren. Een belangrijk voordeel van SSH? Nou, bijvoorbeeld Composer gebruiken. In dit artikel lees je hoe je met Composer aan de slag gaat!
Al eerder gaf mijn collega Sander enkele voorbeelden van wat je binnen ons platform met SSH kunt doen. Denk aan je website updaten via Git en het via SFTP veilig overzetten van bestanden naar je pakket. Dit is nog maar een tipje van de ijsberg, je zou bijna kunnen zeggen dat de mogelijkheden oneindig zijn. Dit maakt SSH de ideale tool voor techneuten bij het bouwen van een website.
In dit artikel wil ik je graag nader toelichten hoe je via SSH met Composer zogeheten PHP libraries kunt installeren en beheren. Dat is vooral erg handig als je zelf een website aan het bouwen bent met PHP en diverse libraries en frameworks nodig hebt.
Door Composer te gebruiken, kun je een framework (e.g. Symfony Framework) of een library (e.g. PHPMailer) in slechts een paar commando’s installeren. Het scheelt je dus veel up- en downloaden van bestanden. Het opbouwen van een compleet eigen website gaat hierdoor flink sneller!
Daniël, bedankt!
Daniël van der Linden publiceerde eerder op spaggel.nl een handig blog over Composer bij Antagonist. Hij was zo vrij om toe te staan dat we het als basis mochten gebruiken voor dit artikel.
1. Composer installeren
Om Composer te kunnen gebruiken op je webhostingpakket dien je het eerst te installeren via SSH. Voor het gemak ga ik ervan uit dat je al weet hoe je een SSH-verbinding opzet. Anders kun je in deze handleiding terugvinden hoe je dat doet. Nadat je met SSH bent verbonden, kun je Composer downloaden door het volgende commando uit te voeren:
wget https://getcomposer.org/installer -O composer-installer
Gebruik nu het volgende commando om Composer te installeren:
php composer-installer
In je terminal ziet het er dan als volgt uit:
[deb100142@s167 ~]$ php composer-installer
All settings correct for using Composer
Downloading...
Composer (version 1.3.1)
succesfully installed to home/deb100142/composer.phar
Use it: php composer.phar
Composer kan nu worden gebruikt binnen je webhostingpakket. Het is nu belangrijk om ervoor te zorgen dat je het altijd gemakkelijk kunt aanroepen, onafhankelijk van in welke map je werkt via SSH. Je kunt dit doen door de volgende twee simpele commando’s uit te voeren:
mkdir bin
mv composer.phar bin/composer
Na het uitvoeren van deze twee commando’s heb je Composer geplaatst in de /bin/-map van je webhostingpakket. In deze map kun je ‘binaries’ neerzetten, die je met de aanroep van een commando wenst uit te voeren via SSH. Doordat Composer nu in de /bin/-map staat, kun je het altijd aanroepen met het commando ‘composer’. Zo simpel is het.
2. Het inschakelen van proc_get_status()
Binnen ons platform staan standaard diverse onveiligere functionaliteiten van PHP uit. Dankzij de containerisatie van ons platform is het echter mogelijk om het specifiek binnen je webhostingpakket zelf weer in te schakelen.
Om Composer goed te laten werken, is het vereist om bijvoorbeeld de ‘proc_get_status’-functie van PHP toe te staan. Je schakelt dat als volgt in.
- Log in op DirectAdmin.
- Ga naar ‘Select PHP version’ (onder ‘Advanced Features’).
- Klik nu door naar ‘Show PHP Settings’.
- Haal bij ‘disable_functions’ de waarde ‘proc_get_status’ er tussenuit.
- Klik op ‘Apply’.
- Klik ten slotte onderaan op ‘Save’ om de wijzigen op te slaan.
Gebruik je een oudere PHP-versie, zoals PHP 5.3?
Overschakelen naar een nieuwe versie is dan sterk aan te raden. Dat verbetert de prestaties van je website aanzienlijk.
3. Symfony Framework installeren met Composer
Via Composer kun je nu diverse systemen installeren binnen je webhostingpakket. Een overzicht van de ‘packages’ die via Composer te downloaden zijn, kun je vinden op de website van Packagist. Merk op dat Composer de installatie en het beheer automatiseert, maar er vaak nog technische wijzigingen nodig zijn om er verder mee aan de slag te gaan.
In dit voorbeeld zal ik toelichten hoe je het Symfony Framework kunt installeren via Composer. Dit framework kun je gebruiken wanneer je zelf een dynamische website aan het opbouwen bent in PHP. Om Symfony te kunnen gebruiken, heb je een MySQL-database nodig. Maak dus eerst een database aan in DirectAdmin. Daarna kun je het Symfony Framework op een specifieke locatie op je webhostingpakket installeren met het commando:
composer create-project symfony/framework-standard-edition ~/domains/voorbeeld.nl/public_html/symfony
De installatie zal nu nog vragen om de gegevens van je aangemaakte database. Daarna zal in de /public_html/-map van ‘voorbeeld.nl’ nu het complete Symfony Framework geïnstalleerd staan, zodat je het kunt gebruiken bij het bouwen van een eigen website.
Geen techneut, maar wel een eigen website?
Via Installatron installeer je eenvoudig diverse applicaties, zoals WordPress, Drupal en Joomla.
Nog beter je eigen website bouwen!
Composer is ideaal als je als developer zelf een website aan het bouwen bent. Hierdoor scheelt het je veel gedoe met het plaatsen van de juiste libraries en frameworks in je te bouwen website.
Wil je graag SSH en Composer gebruiken bij je website bouwen? Check onze pakketten en begin! Merk op dat Composer relatief veel RAM gebruikt. Voor Composer adviseren we daarom het Plus-pakket of hoger. Zo verzeker je jezelf van de meest optimale ervaring.
P.S. Blijf op de hoogte en volg ons via Facebook, X, Instagram, e-mail en RSS. Heb je vragen, tips of opmerkingen? Laat het achter als reactie. Vond je het artikel nuttig? Deel het dan met anderen!
Hoe actueel is dit artikel dd. juni 2020?
Ik probeer composer te gebruiken, maar bij het uitvoeren van composer install of bijv. composer require laravel/telescope
stopt het proces met een “killed” melding.
Mijn doel is om Laravel in mijn pluspakket te draaien. Ik heb inmiddels al een werkende git koppeling vanuit mijn lokale dev, waarbij middels post-receive script de content van git push naar de laravel mappen wordt gebracht.
nu nog npm en composer goed draaiend krijgen…
De stappen in het artikel zijn nog actueel. Een killed-melding betekent doorgaans dat er onvoldoende werkgeheugen beschikbaar is. Heb je voldoende RAM vrij op je pakket? Composer vereist al snel zo’n 500 MB aan vrij werkgeheugen. Stuur anders gerust een e-mail naar Support met daarin je deb-nummer en een korte probleemomschrijving. We kijken het graag samen met je na.
Een kleine update bij stap 1 (september 2022).
In plaats van:
mkdir bin
mv composer.phar bin/composer
Gebruik de volgende twee stappen om Composer globaal aan te kunnen roepen:
mkdir -p .composer/vendor/bin
mv composer.phar .composer/vendor/bin/composer
Omdat $HOME/bin niet (meer) in $PATH staat, en $HOME/.composer/vendor/bin wel.
Hi Marijn, $HOME/bin zou nog wel in $PATH moeten staan. Graag zouden we daarom willen controleren waarom dat bij jou niet zo is. Zou je hierover een e-mail willen sturen naar support@antagonist.nl? Als je daarin het deb-nummer benoemt van het pakket waarbij je dit ervaart, dan onderzoeken we dit graag gericht voor je. Alvast bedankt!
Typo:
s/proc_get-status/proc_get_status/
Bedankt, Gerrit! Aangepast.