Lancer un client SSH avec l’utilisateur du domaine
Il ne faut pas exécuter composer en root.
Pour accéder à notre serveur, on configure un terminal SSH avec les identifiants de l’utilisateur du domaine. Dans notre exemple, le domaine est "domain" et l’utilisateur est "username".
Note :
les exemples de code correspondent à CentOS.
Il faut vérifier que cet utilisateur appartient au groupe "wheel" des sudoers. Si ce n’est pas le cas, exécuter (en root) :
root@mon.site.com [~]#usermod -aG wheel username
On se place dans le cas d’une installation locale de Composer, c’est à dire dans le dossier racine des documents web (web document root).
username@domain [~]# cd public_html
1° Méthode : avec le script go_xxx.sh
Il existe (à l’heure actuelle) deux scripts, selon que l’on installe OAuthSD avec une base de données PostgreSql ou MySQL : go_pgsql.sh et go_mysql.sh.
Prérequis
un domaine nommé "domain"
un utilisateur nommé "user" est propriétaire du domaine avec le mot de passe "user_pswd"
Contrairement à go_mysql.sh (pour MySQL), le script go_pgsql.sh n’installe pas
PostgreSQL ety ne crée pas la base de données ni l’utilisateur. Il faudra donc :
Installer PostgreSQL
créer une base de données avec les identifiants suivants (exemple) :
Nom de la base de données "database" (oauthsdc_data)
Utilisateur : "database_user" (oauthsdc_user)
Mot de passe : "database_user_pswd" (oautW...!)
Procédure d’installation avec go_xxx.sh
La procédure est la suivante :
dans le répertoire des documents du serveur web du domaine (document root), créer un répertoire /install et y recopier le fichier go_xxx.sh.
1 - Copier le script go_pgsql.sh dans un répertoire /install à la racine web.
2 - ouvrir un client SSH sur "domain" avec l’utilisateur "user" et le mot de passe "user_pswd".
3 - lancer go_pgsql.sh :
(le script fait appel à Composer pour installer le code depuis GitHub)
Si tout va bien, vous devez obtenir quelque chose comme :
"Composer is installed
>>> Updating Composer
You are already using composer version 1.9.0 (stable channel).
>>> Installing OAuthSD
Clearing cache (cache-vcs-dir): /home/oauthsdc/.composer/cache/vcs
Clearing cache (cache-repo-dir): /home/oauthsdc/.composer/cache/repo
Clearing cache (cache-files-dir): /home/oauthsdc/.composer/cache/files
Clearing cache (cache-dir): /home/oauthsdc/.composer/cache
All caches cleared.
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing bdegoy/oauthsd-c (0.1.0): Cloning master from cache
Writing lock file
Generating autoload files
OK"
2° Méthode : installation manuelle
Vérifier l’installation de Composer
Exécuter :
username@domain [~/public_html]# composer diagnose
Retourne :
Checking composer.json: WARNING
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys: FAIL
Missing pubkey for tags verification
Missing pubkey for dev verification
Run composer self-update --update-keys to set them up
Checking composer version: OK
Composer version: 1.9.0
PHP version: 5.6.40
PHP binary path: /opt/cpanel/ea-php56/root/usr/bin/php
Nous avons un problème avec les clés publiques de Composer. Lançons :
username@mon.site.com [~/public_html]# composer self-update --update-keys
Comme indiqué, il faudra naviguer à l’URL https://composer.github.io/pubkeys.html pour copier ces clés et les coller comme demandé :
Open https://composer.github.io/pubkeys.html to find the latest keys
Enter Dev / Snapshot Public Key (including lines with -----): -----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnBDHjZS6e0ZMoK3xTD7f
...
wSEuAuRm+pRqi8BRnQ/GKUcCAwEAAQ==
-----END PUBLIC KEY-----
Stored key with fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952
Enter Tags Public Key (including lines with -----): -----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0Vi/2K6apCVj76nCnCl2
...
TzCFWGk/HM6a4f0IzBWbJ5ot0PIi4amk07IotBXDWwqDiQTwyuGCym5EqWQ2BD95
RGv89BPD+2DLnJysngsvVaUCAwEAAQ==
-----END PUBLIC KEY-----
Stored key with fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642
Public keys stored in /home/user/.composer
Nous pouvons vérifier à nouveau Composer :
username@domain [~/public_html]# composer diagnose
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952
OK
Checking composer version: OK
Composer version: 1.9.0
PHP version: 5.6.40
PHP binary path: /opt/cpanel/ea-php56/root/usr/bin/php
Cette fois-ci c’est bon.
Mettre à jour de Composer
username@domain [~/public_html]# composer self-update
Si Composer était à jour, on obtient :
You are already using composer version 1.9.0 (stable channel).
Installer le code d’OAuthSD ou vérifier l’installation
L’installation ou la vérification se fait en exécutant :
username@mon.site.com [~/public_html]# composer install
Si OAuthSD est déjà installé et complet, on obtient :
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
"Installing dependencies (including require-dev) from lock file" signifie qu’une installation avait déjà été effectuée. La mise à jour conserve les versions des composants (inscrites dans le fichier composer.lock) de la version courante d’OAuthSD. C’est important pour assurer la cohérence de l’ensemble du code par rapport à la dernière version stable.
Mettre à jour le code d’OAuthSD
Attention ! une mise à jour du code avec les dernières versions des composants n’est pas recommandée à moins qu’une nouvelle version stable d’OAuthSD ait été notifiée comme prête pour la mise à jour.
La mise à jour se fait en exécutant :
username@domain [~/public_html]# composer update
Notre application était à jour des derniers développements, ainsi que les composants. On obtient donc :
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
"Updating dependencies (including require-dev)" signifie que les composants auraient été mis à jour dans leur dernière version. Un nouveau fichier composer.lock est créé.
Après l’installation
4 - ouvrir en édition /commons/keepsecret/database.php et inscrire les identifiants
de connexion à la base de données.
5 - Initialiser les données avec le contenu du fichier /install/data.sql
6 - tester le fonctionnement avec https://"domain"/oidc/tests/essai1.php
Echec avec les messages : "remote : Invalid username or password
Ceci signifie que :
Le repository GitHub est privé,
les clés SSH sont manquantes ou erronées.
Se connecter sur le compte GitHub.
Dans Settings -> SSH and GPG Keys, vérifier qu’il existe une SSH Key pour le domaine oauthsd-c
Si c’est le cas :
vérifier qu’il existe un dossier /home/oauthsdc/.ssh/ et contrôler que la clé
publique id_rsa_pub est identique au champ Key (ce n’est probablement pas le cas).
Si ce n’est pas le cas :
Installer une paire de clés dans /home/oauthsdc/.ssh/ (fichiers id_rsa, id_rsa.pub et known_hosts)
générer les clés :
- ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Enter file in which to save the key (/home/oauthsdc/.ssh/id_rsa) : etc...
ouvrir le fichier id_rsa.pub, copier son contenu
côté GitHub, actionner "New SSH Key"
coller le contenu dans le champ Key
Dans le champ Title, indiquer le nom du serveur et le domaine (ex : vpsxxx-domain)