chp_laravel-php

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

chp_laravel-php [2020/02/20 10:52]
chp_laravel-php [2020/05/20 05:30] (current)
Line 1: Line 1:
 +====== 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 [[https://​help.github.com/​en/​github/​authenticating-to-github/​adding-a-new-ssh-key-to-your-github-account | deze handleiding]] op Github om een ssh-key toe te voegen aan je Git repository. Onder MacOS en Linux raden wij [[glossary:​ssh#​apple_osx_en_linux|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:​
 +    * [[chp:​handleidingen:​Mariadb_laravel| Een Mariadb/​mysql instantie uitrollen en koppelen aan Laravel]]
 +    * [[chp:​handleiding:​configmaps_en_laravel|Laravel configureren met Environment variabelen]]
 +Optioneel:
 +    * [[chp:​handleiding:​redis_laravel|Een redis instance aanmaken binnen Openshift en koppelen met Laravel]]
 +    * [[chp:​concepten:​cronjobs|Cronjobs instellen]]
 +    * [[chp:​concepten:​jobs|Queue-workers instellen]]
 +
 +Met het uitrollen van onze PHP template worden er een aantal "​resources"​ uitgerold binnen Openshift. Verdere uitleg van deze resources staat onder [[:chp]] onder het kopje ''​Resource Definities''​.
 +==== Onze PHP template toevoegen aan OpenShift en daarmee deployen ====
 +
 +Het uitrollen via de command-line kan via de stappen onder [[chp:​handleiding:​nginx-phpfpm]],​ 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: ​
 +\\
 +<code bash>
 +#!/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"​
 +</​code>​
 +
 +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''​.
 +
 +{{::​openshift_import_template.png?​900|}}
 +
 +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). |
 +
 +==== Veelgestelde vragen: ====
 +
 +=== hoe installeer en gebruik je composer? ===
 +Door een ''​deploy.sh''​ script toe te voegen aan je git-repository. Hoe dat moet staat [[chp:​handleiding:​nginx-phpfpm#​deploysh|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.
 +{{:​pasted:​20200214-154631.png|}}
 +\\
 +Klik op de pod, klik vervolgens op '​terminal':​
 +{{:​pasted:​20200214-154709.png|}}
 +Via de command-line:​
 +<code bash>
 +#check eerst hoe je pod heet
 +oc get pods
 +#log in via
 +oc rsh <​naam-van-de-pod> ​
 +</​code>​
 +=== Hoe kun je met een (grafische) tool connecten met je mysql pod.   ===
 +Dit kan door lokaal adminer te draaien, bijboorbeeld via docker.
 +<code bash>​docker run -p 8080:8080 adminer </​code>​
 +Vervolgens moet je met ''​oc port-forward''​ nog een connectie maken naar de database binnen OpenShift:
 +<code bash>oc port-forward <​mysql-pod>​ 6001:​3306</​code>​
 +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