Fork me on GitHub

Déployer un site PHP sur OpenShift

OpenShift est une plate-forme de publication d’applications de type PaaS concue par la société RedHat.

Elle permet de déployer grauitement jusqu’à trois applications et supporte de nombreux environnements : Java, Ruby, Python, PHP, Node.js, etc.

Nous allons l’utiliser pour déployer un site PHP d’exemple utilisant Bootstrap et MySQL.

Création du projet local

create database if not exists presidents character set utf8 collate utf8_unicode_ci;
use presidents;

grant all privileges on presidents.* to 'presidents_user'@'localhost' identified by 'secret';
drop table if exists president;

create table president (
    pres_id integer primary key auto_increment,
    last_name varchar(100) not null,
    first_name varchar(100) not null,
    year_birth integer not null
) engine=innodb character set utf8 collate utf8_unicode_ci;
insert into president values (1, 'De Gaulle', 'Charles', 1890);
insert into president values (2, 'Pompidou', 'Georges', 1911);
insert into president values (3, "Giscard d'Estaing", 'Valéry', 1926);
insert into president values (4, 'Mitterrand', 'François', 1926);
insert into president values (5, 'Chirac', 'Jacques', 1932);
insert into president values (6, 'Sarkozy', 'Nicolas', 1955);
insert into president values (7, 'Hollande', 'François', 1954);

Vous devez obtenir le résultat suivant.

Création d’une nouvelle application sur OpenShift

#LOCALE = Encoding.find(Encoding.locale_charmap)
LOCALE = Encoding::UTF_8
$ rhc setup

Lien avec le projet local

Une application OpenShift correspond à un dépôt Git hébergé chez OpenShift. Pour pouvoir déployer une application existante, il faut lier son dépôt Git local au dépôt distant OpenShift.

$ git remote add openshift <url_depot_openshift>
$ git fetch openshift
$ git merge openshift/master -s recursive -X ours

Le répertoire .openshift contient maintenant tous les paramètres liés à OpenShift.

<?php

// MySQL config for OpenShift
$dbHost = getenv('OPENSHIFT_MYSQL_DB_HOST');
$dbName = getenv('OPENSHIFT_GEAR_NAME');
$dbUser = getenv('OPENSHIFT_MYSQL_DB_USERNAME');
$dbPassword = getenv('OPENSHIFT_MYSQL_DB_PASSWORD');
$ git push openshift master

Il ne reste plus qu’à implanter le schéma de la base de données sur OpenShift.

Modifications ultérieures

Une fois la configuration initiale effectuée, le déploiement de nouvelles modifications se fait en les committant dans le dépôt local, puis en lançant la commande :

$ git push openshift master

Il faudra jongler entre les configurations “BD locale” et “BD OpenShift” pour pouvoir tester localement puis déployer sur OpenShift.

Exercice