Laravel is a free, open source PHP web application framework, designed for the development of model–view–controller (MVC) web applications.
This quickstart was created to make it easy to get started with Laravel 5.6 on OpenShift v3.
The simplest way to install this application is to use the OpenShift quickstart template.
To install the quickstart, read my blog on Medium.
-
Create an OpenShif account
-
Add the Laravel template(s) to your project:
$ oc create -f https://raw.githubusercontent.com/matriphe/laravel-openshift/master/openshift/templates/laravel-mysql.json
or
$ oc create -f https://raw.githubusercontent.com/matriphe/laravel-openshift/master/openshift/templates/laravel-postgresql.json
or
$ oc create -f https://raw.githubusercontent.com/matriphe/laravel-openshift/master/openshift/templates/laravel-sqlite.json
-
Fork this GitHub repo
-
From the your OpenShift image catalog, select Laravel + MySQL (persistent) image
-
Replace the Git Repository URL using this repository or your forked repository
-
Scroll to the bottom of the page and click [ Create ] to deploy your application
-
Follow these instructions to configure automated builds, allowing you to push your code to your GitHub repo and automatically trigger a new deployment
-
Since Laravel 5.6 required PHP 7.1, the default PHP image used in the image was 7.0, so you have to change the base image from the
Builds
page on theBuilds
image and useopenshift/php:7.1
oropenshift/php:latest
image
These are some special considerations you may need to keep in mind when running your application on OpenShift.
This Laravel quickstart provides separate configuration files for both local and remote development. Use .env
for local development, and .s2i/environment
for remote development.
Your application is configured to automatically use an OpenShift MySQL, PostgreSQL, or SQLite database in when deployed on OpenShift using the included templates (see openshift/templates
).
Additionally, your APP_ENV
, APP_URL
, and APP_KEY
can be set by following the installation instructions with the included templates.
The php artisan migrate --force
command is automatically executed during deployment when using any of the included templates (see openshift/templates
).
During the build process, composer install
is automatically executed over the root directory. See the PHP 5.6 builder image for more details, or more specifically see here.
By default, this Quickstart is configured in development mode to make debugging your application easier.
When you develop your Laravel application in OpenShift, you can also enable the production environment by setting environment variables, using the oc
client, like:
$ oc get services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
laravel-mysql-example 172.30.79.234 <none> 8080/TCP 23m
$ oc set env dc/laravel-mysql-example LARAVEL_APP_ENV=production LARAVEL_APP_DEBUG=false OPCACHE_REVALIDATE_FREQ=2
Next, run oc status
to confirm that an updated deployment has been kicked off.
For more information on environment variables impacting PHP behavior on OpenShift, see the PHP 7.1 builder image.
For more information on Laravel environment variables, see the Laravel environment configuration documentation.
Your application is configured to use the OpenShift log directory. You can use the oc logs
command to stream the latest log file entries from your running pod:
$ oc get pods
NAME READY STATUS RESTARTS AGE
laravel-mysql-example-1-build 0/1 Completed 0 26m
laravel-mysql-example-1-hj2k1 1/1 Running 0 23m
$ oc logs laravel-mysql-example-1-hj2k1
To stop tailing the logs, press Ctrl + c.
Documentation for the Laravel framework can be found on the Laravel website. Check out OpenShift's Documentation for help running PHP on OpenShift.