PHP: Premiers pas
Comment débuter avec PHP sur Stackhero
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une solution PHP cloud prête à l'emploi qui offre de nombreux avantages, notamment :
- Déployez votre application en quelques secondes avec un simple
git push.- Utilisez votre propre nom de domaine et bénéficiez de la configuration automatique des certificats HTTPS pour une sécurité renforcée.
- Profitez de la tranquillité d'esprit avec des sauvegardes automatiques, des mises à jour en un clic, et une tarification simple, transparente et prévisible.
- Obtenez des performances optimales et une sécurité robuste grâce à une VM privée et dédiée.
Gagnez du temps et simplifiez-vous la vie : il ne faut que 5 minutes pour essayer la solution PHP cloud hosting de Stackhero !
Mettre votre application PHP en ligne sur Stackhero est à la fois simple et puissant. En seulement quelques étapes, votre projet sera en ligne et prêt à fonctionner. Ce guide vous accompagne étape par étape pour créer, configurer et déployer votre service PHP de façon conviviale.
Démarrer un service PHP
Pour commencer, vous pouvez créer un service PHP sur Stackhero directement depuis le tableau de bord. L’interface est conçue pour rendre ce processus rapide et simple.
Prérequis
Avant de commencer, assurez-vous d’avoir les outils suivants :
- Git. Vous pouvez le télécharger à partir de https://git-scm.com/downloads.
- Windows Terminal (optionnel pour les utilisateurs Windows). Ce terminal peut offrir une expérience améliorée. Il est disponible via le Microsoft Store.
Configurer votre service
La configuration principale requise est votre clé publique SSH. Vous pouvez récupérer votre clé publique en exécutant l’une des commandes suivantes :
cat ~/.ssh/id_rsa.pub
ou
cat ~/.ssh/id_ed25519.pub
Si vous n’avez pas encore de paire de clés SSH, vous pouvez en générer une avec ssh-keygen sous Linux et macOS ou ssh-keygen.exe sous Windows.
Une fois votre clé publique obtenue, rendez-vous sur le tableau de bord Stackhero, sélectionnez votre service PHP, accédez à la page de configuration et collez votre clé dans le champ prévu à cet effet.
Tip: Si vous souhaitez définir votre clé publique SSH pour tous vos futurs services, vous pouvez le faire globalement. Cliquez simplement sur votre photo de profil en haut à droite du tableau de bord, allez dans « Votre profil » et collez votre clé publique SSH à cet endroit.
Cloner l’exemple
Pour vous aider à démarrer, nous avons préparé une application PHP d’exemple. Vous pouvez cloner le dépôt avec :
git clone https://github.com/stackhero-io/phpGettingStarted.git stackhero-php-getting-started
cd stackhero-php-getting-started
Configurer le dépôt distant du serveur
Stackhero facilite le déploiement de votre application via Git. Copiez la commande git remote fournie sur la première page de votre service PHP dans le tableau de bord. Elle ressemblera à ceci :
git remote add stackhero ssh://stackhero@<XXXXXX>.stackhero-network.com:222/project.git
Déployer votre code PHP
Vous êtes maintenant prêt à déployer votre application. Vous pouvez pousser votre code avec :
git push stackhero main
Lors de votre premier push, il vous sera demandé d’accepter l’empreinte de la clé. Tapez simplement « yes » lorsque cela vous est demandé. Après quelques instants, votre application devrait être en ligne. Vous pouvez vérifier son statut à l’URL indiquée dans votre tableau de bord Stackhero (généralement https://<XXXXXX>.stackhero-network.com).
Pour mettre à jour votre application, modifiez simplement le fichier www/index.php (ou tout autre fichier nécessaire), puis redéployez vos modifications avec :
git add -A .
git commit -m "Update www/index.php"
git push stackhero main
Déployer une application existante
Si vous avez déjà une application PHP que vous souhaitez déployer, il vous suffit d’ajouter le dépôt distant à votre projet (voir Configurer le dépôt distant du serveur). Ensuite, vous pouvez pousser vos modifications avec :
git push stackhero main
Par défaut, Stackhero recherche votre code PHP et vos fichiers statiques dans le dossier www. Par exemple, lorsqu’un visiteur accède à yourdomain.com/myphoto.jpg, le fichier sera servi depuis www/myphoto.jpg. Si votre application utilise un autre dossier public, vous pouvez modifier ce paramètre dans la configuration de votre service PHP.
Gérer l’erreur « failed to push some refs to '[...]' »
Si vous rencontrez une erreur de ce type lors du déploiement :
error: failed to push some refs to '[...]'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Ce message signifie que le dépôt Git distant contient des modifications qui ne sont pas présentes dans votre copie locale. Si vous êtes certain de vouloir écraser le dépôt distant avec votre version locale, vous pouvez forcer le push avec :
git push -f stackhero main
Gérer l’erreur « src refspec main does not match any »
Si vous voyez cette erreur :
error: src refspec main does not match any
error: failed to push some refs to 'ssh://<XXXXXX>.stackhero-network.com:222/project.git'
Cela signifie généralement que la branche main n’existe pas localement. Dans ce cas, vous pouvez pousser la branche master à la place :
git push stackhero master
Gérer l’erreur « Everything up-to-date » lors du push
Si Git affiche Everything up-to-date et que vous ne voyez pas vos modifications déployées, il est probable que vous ayez oublié de valider vos changements. Vous pouvez corriger cela en exécutant :
git add -A .
git commit -m "Votre message de commit"
git push stackhero main
Si vous n’avez pas modifié de code mais souhaitez tout de même déclencher un déploiement, vous pouvez utiliser un commit vide :
git commit --allow-empty -m "Force update"
git push stackhero main
Déployer une branche autre que main
Si vous souhaitez déployer une autre branche (par exemple, production), vous pouvez utiliser :
git push stackhero production:main
Déployer un tag
Pour déployer un tag particulier (comme v1.0), vous pouvez exécuter :
git push stackhero 'v1.0^{}:main'
Le ^{} permet de s’assurer que le commit associé au tag est bien poussé.
Revenir en arrière ou déployer un commit spécifique
Si vous devez déployer un commit spécifique, commencez par trouver son hash avec git log. Ensuite, vous pouvez forcer le push de ce commit avec :
git push -f stackhero <HASH>:main
Déployer sur plusieurs environnements
Il est courant d’avoir des services distincts pour différents environnements, comme la production et le staging. Vous pouvez gérer cela en renommant et en ajoutant des dépôts distants.
Pour renommer votre dépôt distant actuel de stackhero à stackhero-staging, exécutez simplement :
git remote rename stackhero stackhero-staging
Ensuite, vous pouvez créer un nouveau service PHP pour la production via le tableau de bord, puis l’ajouter avec :
git remote add stackhero-production ssh://stackhero@<XXXXXX>.stackhero-network.com:222/project.git
Vous pouvez maintenant déployer sur l’environnement de votre choix avec :
git push stackhero-production main
ou
git push stackhero-staging main
Enregistrer le mot de passe de votre clé privée SSH dans le trousseau de clés macOS
Si vous êtes sur macOS et que l’on vous demande le mot de passe de votre clé SSH à chaque push, il n’est pas nécessaire de retirer le mot de passe de votre clé SSH. Vous pouvez stocker ce mot de passe de façon sécurisée dans le trousseau macOS. Exécutez simplement :
/usr/bin/ssh-add --apple-use-keychain ~/.ssh/id_rsa
Après cela, macOS ne vous demandera plus le mot de passe de votre clé lors du push de votre code.
Gérer les secrets
Pour les environnements de production et de staging, il est important de stocker les données sensibles, comme les tokens et mots de passe, de façon sécurisée. Plutôt que d’intégrer ces secrets dans votre dépôt, privilégiez l’utilisation de variables d’environnement. Vous pouvez ajouter ces variables dans le tableau de bord Stackhero, puis les récupérer dans votre code. Par exemple, si vous créez une variable d’environnement appelée mySecret, vous pouvez la récupérer en PHP ainsi :
getenv("mySecret")
Gérer les dépendances PHP
Lorsque vous poussez votre code, les scripts de déploiement Stackhero liront votre fichier composer.json et installeront automatiquement les dépendances spécifiées via Composer.
Stocker des fichiers
Si votre application doit stocker des fichiers (comme des photos téléchargées par les utilisateurs), il est souvent recommandé d’utiliser une solution d’object storage. Cette approche facilite le partage de fichiers entre plusieurs services et sépare vos fichiers téléchargés de votre code. Vous pouvez par exemple explorer MinIO pour une solution rapide, fiable et compatible S3.
Si vous préférez utiliser le stockage local, profitez du stockage persistant inclus avec votre instance PHP. Ce stockage est accessible à l’emplacement /persistent/storage/.
Par exemple, pour enregistrer un fichier téléchargé, vous pouvez utiliser la fonction move_uploaded_file comme ceci :
move_uploaded_file($_FILES['image']['tmp_name'], '/persistent/storage/image.jpg');
Pour plus d’informations sur l’upload de fichiers en PHP, vous pouvez consulter la documentation officielle : https://www.php.net/manual/en/features.file-upload.php.
ATTENTION : Stockez toujours vos données dans le dossier
/persistent/storage/.Si votre instance redémarre ou si vous poussez des modifications de code, toute donnée stockée en dehors du stockage persistant risque d’être perdue.