Ik heb een PHP (Laravel) applicatie die ik wil uitrollen met OpenShift.

Openshift is een veelzijdig platform, het uitrollen van applicaties kan op verschillende manieren. In dit scenario gaan we een Laravel applicatie uitrollen die in een private git repository staat via onze eigen PHP(-fpm) templates.
We gaan er vanuit dat je:

  • al toegang hebt tot ons platform
  • weet hoe je moet inloggen op de web-interface
  • bent toegevoegd aan een project


Daarnaast gaan we er vanuit dat je een ssh-keypair hebt aangemaakt om een git clone te kunnen doen van de php code die in Git staat. Volg deze handleiding op Github om een ssh-key toe te voegen aan je Git repository. Onder MacOS en Linux raden wij ssh-keygen aan, voor windows raden wij het linux subsystem en/of openssh aan om alsnog ssh-keygen te kunnen gebruiken. Helaas worden passphrases op dit moment nog niet ondersteund.
Om wille van de veiligheid raden wij af om een bestaand ssh-keypair te hergebruiken die al voor andere doeleinden wordt gebruikt.
Verschillende afhankelijkheden van/voor laravel staan hier ook beschreven op de volgende pagina's:

Optioneel:

Met het uitrollen van onze PHP template worden er een aantal “resources” uitgerold binnen Openshift. Verdere uitleg van deze resources staat onder Community Hosting Platform onder het kopje Resource Definities.

Het uitrollen via de command-line kan via de stappen onder Deploy een PHP omgeving met het NPO Hosting template, als je geen php composer gebruikt hoef je dus alleen een run.sh scriptje toe te voegen in je git repository.

Volg verder deze handleiding om de template uit te rollen via de web-interface. Voor het uitrollen van de Laravel applicatie via onze template is het nodig dat de code in een private git repository staat en dat de repository voorzien is van een run.sh scriptje. Hieronder een voorbeeld:

#!/bin/sh
 
# Start run
echo "Start run.sh"
# Move files to docroot
echo "# Move files to docroot.."
cp -rv /tmp/src/* /var/www/html
cd /var/www/html
# Run migrations
echo "Run migrations"
php artisan migrate --force
# Run cache-commands
echo "Run cache-commands"
php artisan cache:clear
php artisan auth:clear-resets
php artisan route:clear
php artisan route:cache
php artisan config:clear
php artisan config:cache
# Finish run
echo "Finished run.sh"

Download de nginx-phpfpm.template.yml-file uit deze repository: https://github.com/npohosting/openshift-templates/tree/master/php. Klik weer op “add to project” > import YAML/JSON“, browse naar de yaml file of drag&drop deze en klik op create.

Je kan nu meteen je Laravel applicatie deployen als je kiest voor “process this template”.

Parameter betekenis/laravel instelling
NAME De naamgeving van alle objecten die aangemaakt worden door deze template (Default begint alles met: my-app).
SOURCE_REPOSITORY_URL De url van de Git repository waar je Laravel applicatie in staat.
SOURCE_REPOSITORY_REF Hiermee kan je een branch opgeven. Dit is niet verplicht en heeft geen default-waarde
APPLICATION_DOMAIN De url waarmee de applicatie straks beschikbaar is van buitenaf. In OpenShift termen heet dit een route. (Default: $name-$project.npohosting.nl.)
NGINX_VERSION De versie van nginx (npohosting/nginx) die gebruikt gaat worden (Default: latest).
PHPFPM_VERSION De versie van phpfpm (npohosting/php-fpm) die gebruikt gaat worden (Default: latest).
GIT_IDENTITY_KEY De naam van het secret waar je SSH Key in staat voor Git (Default: git-secret).

hoe installeer en gebruik je composer?

Door een deploy.sh script toe te voegen aan je git-repository. Hoe dat moet staat hier beschreven.

Hoe log je in op je container om te zien wat er in draait?

Dat kan via de web-interface en de command-line. Ga via de webinterface naar “applications>pods.
Klik op de pod, klik vervolgens op 'terminal': Via de command-line:

#check eerst hoe je pod heet
oc get pods
#log in via
oc rsh <naam-van-de-pod> 

Hoe kun je met een (grafische) tool connecten met je mysql pod.

Dit kan door lokaal adminer te draaien, bijboorbeeld via docker.

docker run -p 8080:8080 adminer 

Vervolgens moet je met oc port-forward nog een connectie maken naar de database binnen OpenShift:

oc port-forward <mysql-pod> 6001:3306

Nu kun je in je browser naar localhost:8080 gaan en connectie maken met je database via adminer. Geef als database-host vervolgens 'localhost:6001' op

  • chp_laravel-php.txt
  • Last modified: 2020/05/20 05:30
  • (external edit)