Foilen Cloud
English

PHP - Base

Table des matières

Diagramme des applications

Toutes les machines où se trouvent des sites web et/ou des redirections d’URLs, il y a un serveur HA Proxy qui va recevoir toutes les requêtes en HTTP (port 80) et HTTPS (port 443). Ainsi, une seule machine peut s’occuper de plusieurs sites web. Voici quelques raisons pourquoi HA Proxy est ajouté au déploiement:

  • Simplification de la gestion des certificats pour HTTPS en les ayant tous à ce niveau plutôt qu’au niveau applicatif.
  • Permettre de rendre le site disponible sur une ou plusieurs machines (celles avec HA Proxy) tout en partageant la charge sur plusieurs machines en exécutant l’application du site (comme Apache PHP) sur plusieurs machines.

Pour servir des sites en HTTPS, il faut un certificat (qui peut être gratuit ou payant) et comme c’est HA Proxy qui reçoit les requêtes, c’est celui-ci qui possède tous les certificats. Ensuite, la connexion entre HA Proxy et l’application du site web n’est normalement pas cryptée si ces deux applications sont sur la même machine.

Pour les redirections d’URLs, un processus Apache est lancé pour toutes les redirections HTTP et un autre processus pour toutes les redirections HTTPS.

graph LR R[Apache HTTP Redirection] RS[Apache HTTPS Redirection] PHP[Apache PHP] HA[HA Proxy] HA --> R HA --> RS HA --> PHP

Diagramme des ressources à gérer

La ressource Website

  • permet de définir un site web qui est accessible par HTTP ou HTTPS. Pour supporter les deux protocoles, il faut créer deux Website. Ainsi, le site en HTTP pourrait être une redirection à HTTPS et le HTTPS pourrait être le site lui-même.
  • peut être considérée comme l’application HA Proxy et c’est pourquoi toute sa configuration (comme le certificat HTTPS) est présente dessus et elle ne fait que pointer à une application qui répond aux requêtes.

La ressource ApachePhp est l’application qui contient les fichiers PHP et qui répond aux requêtes. Sans un Website qui pointe dessus, le site en tant que tel n’est pas accessible hors de la machine.

graph LR Website -- POINTS_TO --> ApachePhp Website -- USES --> WebsiteCertificate Website -- INSTALLED_ON --> A[Machines HA Proxy] Website -- INSTALLED_ON_NO_DNS --> A[Machines HA Proxy] ApachePhp -- RUN_AS --> UnixUser ApachePhp -- INSTALLED_ON --> Machine ApachePhp -- ATTACHED --> AttachablePart

Diagramme des ressources créées

graph LR Website -. MANAGES -.-> Domain Website -. MANAGES -.-> DnsPointer Website -. MANAGES -.-> U[UnixUser infra_web] DnsPointer -- POINTS_TO --> M[Machine HA Proxy] DnsPointer -. MANAGES -.-> Domain DnsPointer -. MANAGES -.-> DnsEntry

Créer le certificat HTTPS

Si le site est accessible via https, il faut créer un certificat.

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Let’s Encrypt WebsiteCertificate
  2. Choisir le propriétaire
  3. Écrire le nom du domaine
  4. Cliquer sur Créer

Créer les redirections

Si le site est accessible via https, il bon de créer une redirection du http au https.

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Url Redirection
  2. Choisir le propriétaire
  3. Entrer le nom de domaine
  4. Pour rediriger le http://{domaine}
    1. remplir Redirection de url sur http avec https://{domaine}
    2. mettre true dans Redirection permanente pour http
  5. Choisir une machine

Créer la base de données

Choisir une des bases de données disponibles et ne pas oublier de créer un Attachable si disponible.

Créer le site web

Unix user

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Unix User
  2. Choisir le propriétaire
  3. Entrer le nom
  4. Pour Installer sur, choisir une machine
  5. Cliquer sur Créer

Website

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Website
  2. Choisir le propriétaire
  3. Entrer le nom
  4. Le nom de domaine
  5. Pour HTTPS, mettre à TRUE si le site sera accessible via https
  6. Pour Certificat du site web (si HTTPS), choisir le certificat du site web si vous avez choisi “https”
  7. Installer sur une machine
  8. Cliquer sur Créer

Apache et PHP

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Apache PHP
  2. Choisir le propriétaire
  3. Entrer le nom
  4. Mettre la version 7.2.24-3 ou une plus récente (vérifier via le lien dans l’éditeur)
  5. Pour Répertoire de base, mettre le chemin du répertoire de l’utilisateur Unix et y ajouter un sous-répertoire
  6. Pour Utilisateur Unix, choisir l’utilisateur Unix précédemment créé
  7. Pour Sites web qui pointent vers cette application, choisir le site web précédemment créé
  8. Ajouter Parties (pour la base de données), choisir l’attachement de la base de données précédemment créé
  9. Pour Installé sur les machines, choisir la même machine que celle où l’utilisateur Unix est installé
  10. Cliquer sur Créer

Extras

Pour envoyer des courriels

Envoyer des courriels avec PHP est parfois plus compliqué que nécessaire. C’est parce qu’il dépend de l’application Sendmail et de la configuration que l’administrateur place dans “php.ini”. Dans ce fichier, il est possible de mettre plusieurs arguments différents à passer à Sendmail et cela a des impacts différents pour l’application PHP pour choisir certains paramètres comme le courriel qui doit aller dans le champ “From”.

Pour simplifier le tout, Apache PHP incorpore sendmail-to-msmtp qui

  • remplace l’application Sendmail,
  • supporte un courriel “From” à utiliser si aucun n’est spécifié,
  • supporte les différents arguments
  • et supporte les différents en-têtes.

Ce programme envoie le tout à l’application msmtp et c’est pourquoi il faut attacher un fichier de configuration de msmtp en suivant les étapes ci-dessous.

Email Relay

Prérequis: avoir un compte courriel qui permet d’envoyer des courriels en tant que l’adresse “From” que vous désirez. Cela peut être votre compte GMail, AWS SES, Sendgrid, votre compte courriel sur Foilen Cloud ou n’importe quelle autre plateforme qui permet l’envoie en SMTP.

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Email Relay
  2. Choisir le propriétaire
  3. Entrer le nom
  4. Entrer le nom d’hôte, le port, le nom d’utilisateur et le mot de passe.
  5. Cliquer sur Créer

Attachable Email Relay to msmtp Config File

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Attachable Email Relay to msmtp Config File
  2. Choisir le propriétaire
  3. Entrer le nom
  4. Pour Relai de courriels, choisir le relai
  5. Cliquer sur Créer

Ajouter sur Apache et PHP

  1. Éditer la ressource Apache et PHP
  2. Ajouter Parties, choisir l’attachement du relai de courriels
  3. Cliquer sur Éditer