diff options
Diffstat (limited to 'deploiement.txt')
| -rw-r--r-- | deploiement.txt | 88 |
1 files changed, 57 insertions, 31 deletions
diff --git a/deploiement.txt b/deploiement.txt index 5346145..9a83fd2 100644 --- a/deploiement.txt +++ b/deploiement.txt | |||
| @@ -1,58 +1,84 @@ | |||
| 1 | déploiement | 1 | déploiement |
| 2 | 2 | ||
| 3 | => procédure pour un hébergement "normal" avec un accès SSH, | ||
| 4 | ne marche pas sans la formule pro d'OVH | ||
| 5 | - peu de manips (le renommage) peuvent être faites avec filezilla | ||
| 6 | - pour le reste il faut contourner avec des scripts PHP faisant des exec() | ||
| 7 | 3 | ||
| 8 | => pour utiliser PHP-cli il faut utiliser le chemin de PHP /usr/local/php8.3/bin | 4 | => procédure spécifique sur un hébergement "normal" avec un accès SSH. |
| 5 | => avec un hébergement non-pro d'OVH, SSH n'est pas disponible, par contre il y a un phpmyadmin, | ||
| 6 | pour le reste il faut contourner avec des scripts PHP faisant des exec() | ||
| 7 | |||
| 8 | => pour utiliser PHP-cli il faut utiliser le chemin de PHP, quelque chose comme /usr/local/php8.4/bin/ | ||
| 9 | ou l'ajouter au PATH en éditant .bash_profile (facile avec filezilla): | 9 | ou l'ajouter au PATH en éditant .bash_profile (facile avec filezilla): |
| 10 | trouver la ligne PATH=$PATH:$HOME/bin | 10 | trouver la ligne PATH=$PATH:$HOME/bin |
| 11 | et y coller :$HOME/usr/local/php8.3/bin | 11 | et y coller :$HOME/usr/local/php8.4/bin |
| 12 | 12 | ||
| 13 | => utiliser PHP-cli depuis un script web: | 13 | => utiliser PHP-cli depuis un script web: |
| 14 | $param = '-r "echo \'hello world\';"'; | 14 | $param = '-r echo hello world 2>&1'; |
| 15 | $commande = 'php ' . $param; // OU | 15 | $commande = 'php ' . $param; // OU |
| 16 | $commande = '/usr/local/php8.3/bin/php ' . $param; | 16 | $commande = '/usr/local/php8.4/bin/php ' . $param; |
| 17 | $sortie = null; | 17 | $sortie = null; |
| 18 | $code_retour = null; | 18 | $code_retour = null; |
| 19 | exec($commande, $sortie, $code_retour); | 19 | exec($commande, $sortie, $code_retour); |
| 20 | 20 | ||
| 21 | 21 | ||
| 22 | => avec SSH | ||
| 23 | |||
| 22 | 1/ se connecter au serveur en ssh et télécharger les fichiers: | 24 | 1/ se connecter au serveur en ssh et télécharger les fichiers: |
| 23 | cd /var/www | 25 | cd dossier_parent_du_site |
| 24 | git clone git@ordipolo.fr:nageurs | 26 | git clone lien_git |
| 25 | 27 | ||
| 26 | 2/ renommer le dossier du site pour apache | 28 | 2/ renommer le dossier du site pour apache |
| 27 | mv nageurs dossier_du_site | 29 | mv nageurs nom_de_domaine |
| 30 | |||
| 31 | 3/ selon l'hébergement, si apache utilise son propre utilisateur (www-data), | ||
| 32 | changer les permissions parce qu'on veut utiliser composer et la console de doctrine avec cet utilisateur | ||
| 33 | chown -R www-data:www-data dossier_du_site | ||
| 28 | 34 | ||
| 29 | 3/ côté client, envoyer les fichier config.ini et bdd_nageurs.sql en FTP | 35 | on ajoutera ensuite "sudo -u www-data" devant les commandes |
| 30 | placer config.ini à la racine du site | ||
| 31 | 36 | ||
| 32 | retour côté serveur en ssh | 37 | 4/ si nécessaire, trouver PHP-cli! |
| 38 | placer sur le site un fichier php contenant: | ||
| 39 | <?php phpinfo(); | ||
| 33 | 40 | ||
| 34 | 4/ mieux vaut utiliser composer et la console doctrine sans être root, | 41 | un fichier de config devrait être trouvé, du genre: |
| 35 | changer les permissions: | 42 | /usr/local/php8.4/etc/php.ini |
| 36 | chown -R www-data www-data dossier_du_site | 43 | |
| 44 | l'exécutable est donc (à vérifier dans filezilla): | ||
| 45 | /usr/local/php8.4/bin/php | ||
| 46 | |||
| 47 | optionnel: l'ajouter au PATH en éditant .bash_profile (facile avec filezilla): | ||
| 48 | trouver la ligne PATH=$PATH:$HOME/bin | ||
| 49 | et y coller :$HOME/usr/local/php8.4/bin | ||
| 37 | 50 | ||
| 38 | 5/ télécharger les dépendances PHP (dont doctrine) en lisant le composer.json: | 51 | 5/ installer composer, si n'y est pas: |
| 39 | sudo -u www-data php composer.phar update | 52 | php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" |
| 53 | php composer-setup.php | ||
| 40 | 54 | ||
| 41 | 6/ générer l'autoloader | 55 | on appelera donc composer en faisant: php composer.phar |
| 42 | composer dump-autoload -o | ||
| 43 | 56 | ||
| 44 | 7/ se connecter à la BDD et créer la base: | 57 | 6/ installer les dépendances |
| 58 | sudo -u www-data php composer.phar install | ||
| 59 | |||
| 60 | cette commande exécute du PHP écrit dans composer.json qui réalise la copie de fichiers dans /vendor vers /public/js | ||
| 61 | si une erreur se présente, il doit y avoir un problème de permission avec /public/js/tinymce et /public/js/tinymce-langs | ||
| 62 | |||
| 63 | 7/ générer l'autoloader | ||
| 64 | php composer.phar dump-autoload -o | ||
| 65 | |||
| 66 | 8/ se connecter à la BDD et créer la base: | ||
| 45 | mysql/mariadb -u root -p | 67 | mysql/mariadb -u root -p |
| 46 | CREATE DATABASES nageurs CHARACTER SET utf8mb4; | 68 | CREATE DATABASE nageurs CHARACTER SET utf8mb4; |
| 47 | l'utilisateur doit avoir les droits SELECT, INSERT, UPDATE, DELETE, CREATE, DROP et ALTER | 69 | |
| 70 | 9/ droits de l'utilisateur sur la base de données | ||
| 71 | l'utilisateur de la BDD doit avoir les droits SELECT, INSERT, UPDATE, DELETE, CREATE, DROP et ALTER | ||
| 72 | |||
| 73 | 10/ avec FTP, envoyer le fichier config.ini et le placer dans /config | ||
| 74 | ce fichier contient les codes de la BDD | ||
| 48 | 75 | ||
| 49 | 8/ créer les tables: | 76 | 11/ créer les tables avec composer: |
| 50 | sudo -u www-data php bin/doctrine orm:schema-tool:create | 77 | sudo -u www-data php bin/doctrine orm:schema-tool:create |
| 51 | et remplir la base de données: | ||
| 52 | mariadb -D nageurs -u root -p < bdd_nageurs.sql | ||
| 53 | 78 | ||
| 54 | 9/ le 1er chargement d'une page est long, | 79 | 12/ éventuellement: remplir la base de données: |
| 55 | le cache de symfony inclu fait ensuite son job | 80 | => phpmyadmin ou ligne de commande |
| 81 | mariadb -D nageurs -u utilisateur_mysql -p < bdd_nageurs.sql | ||
| 56 | 82 | ||
| 57 | sinon, regarder ici: | 83 | 13/ associer le domaine au dossier du site dans l'espace client de l'hébergeur |
| 58 | https://www.doctrine-project.org/projects/doctrine-orm/en/3.3/reference/caching.html | 84 | par sécurité, choisir comme racine le dossier /public du site et non la vraie racine! |
