Comment déployer un programme Symfony
Déployer Symfony peut être une tâche complexe et variée, selon la configuration et les besoins de votre application. Cet article n'est pas un guide étape par étape, mais plutôt une liste d'exigences et de recommandations courantes lors du déploiement.
Bases du déploiement de Symfony ¶
Les étapes typiques qui se produisent lors du déploiement de Symfony incluent :
# 🎜🎜#- Téléchargez votre code sur le serveur de production ;Installez les dépendances tierces (généralement via Composer, et peut être effectué avant de télécharger le programme) ;
- #🎜 🎜#Exécutez une migration de base de données ou une tâche similaire pour mettre à jour les structures de données "modifiées" ;
- Effacez (éventuellement, réchauffez) votre cache. Le processus de déploiement comprend également d'autres tâches, telles que :
- Créez une zone de préparation pour créer vos paramètres mis à jour hors ligne "hors ligne" ;
- Exécutez tous les tests disponibles pour garantir la stabilité du code et/ou du serveur Sex ;# 🎜🎜# Supprimez tous les fichiers inutiles du répertoire
- pour garder l'environnement de production propre ;
- Effacer les systèmes de cache externes (comme
web/
Memcached#🎜 🎜# ou # 🎜🎜#Redis ). Il existe plusieurs façons de déployer des programmes Symfony. Commencez par quelques stratégies de déploiement de base et partez de là. - Transfert de fichiers de base ¶ La manière la plus simple de déployer un programme consiste à copier manuellement des fichiers via FTP/SCP (ou des méthodes similaires) . L’inconvénient est que, par exemple, pendant le processus de mise à niveau, vous n’avez pas de contrôle sur le système. Cette méthode nécessite également que vous effectuiez quelques étapes manuelles après le transfert de fichiers (voir
). Utiliser le contrôle de version
¶Si vous utilisez le contrôle de version (comme Git ou SVN), vous pouvez directement installer l'installation en direct) pour faites une copie de votre référentiel. Lorsque vous êtes prêt à effectuer la mise à niveau, c'est aussi simple que d'extraire la dernière mise à jour de votre système de contrôle de version. Cela facilite la mise à jour de vos fichiers
, mais vous devez quand même envisager d'effectuer des étapes supplémentaires manuellement (voir Tâches post-déploiement courantes).
Utiliser les services de la plateforme ¶
Rarement utilisé Utilisateurs ayant des besoins connexes, veuillez vous référer au texte original du site officiel de Symfony. De plus, les plateformes cloud modernes, telles que Microsoft Azure, peuvent prendre en charge Symfony3+ en une seule étape. Les étapes de déploiement spéciales varient considérablement selon les différents fournisseurs de services, alors trouvez le service de votre choix parmi ces articles autonomes : Après avoir déployé votre véritable code source, vous devez effectuer certaines tâches courantes : Exécutez la commande suivante pour vérifier si le serveur Répondre aux besoins : Ce fichier ne doit pas être déployé, mais est géré par un outil automatique fourni par Symfony. 通过构建一个 "class map" 类映射, 如果在这一步你得到 "class not found" 错误,你可能需要在执行前述命令之前先运行 L'indicateur Si à cette étape vous obtenez l'erreur "classe introuvable", vous devrez peut-être exécuter Tâches courantes après le déploiement ¶
A) Vérification des exigences ¶
1
$ php bin/symfony_requirements
B) Configurer le fichier app/config/parameters.yml ¶
¶
Vos fournisseurs (packages tiers) peuvent être mis à jour avant de télécharger le code source (par exemple, mettre à jour le répertoire vendor/
puis télécharger le code source ) ou La mise à jour est terminée sur le serveur. Quoi qu'il en soit, mettez simplement à jour les fournisseurs comme d'habitude : vendor/
目录,然后再传源代码)或是到服务器上完成更新。不管哪种方式,只需像往常一样来更新vendors:1
$ composer install --no-dev --optimize-autoloader
--optimize-autoloader
旗标大幅改进了Composer的自动加载性能。--no-dev
旗标可确保开发环境的包不被安装到生产环境。export SYMFONY_ENV=prod
以便 post-install-cmd
脚本运行在 prod
1
$ php bin/console cache:clear --env=prod --no-debug
¶ D) Vider le cache Symfony --optimize-autoloader
a été grandement amélioré en créant une "class map" pour les performances de chargement automatique de Composer. L'indicateur --no-dev
garantit que les packages de développement ne sont pas installés en production. export SYMFONY_ENV=prod
avant d'exécuter la commande précédente afin que le script post-install-cmd
s'exécute dans Environnement prod
. Assurez-vous de vider (et de réchauffer) votre cache Symfony.
¶🎜🎜🎜Si vous utilisez Assetic, vous devez supprimer les actifs : 🎜🎜🎜🎜🎜🎜 🎜🎜rrreee🎜🎜🎜🎜rrreee🎜🎜🎜🎜🎜1
E) Supprimer les ressources Assetic $ php bin/console assetic:dump --env=prod --no-debug
F) Autre contenu ! ¶
#🎜 🎜#Cycle de vie du programme : intégration continue, assurance qualité, etc. assets:install
(已经在 composer install
en cours Géré)¶
Bien que cet article couvre les détails techniques du processus de déploiement, le code est complet du développement à production Le cycle de vie peut nécessiter plus d'étapes (pensez au déploiement, au QA [Quality Assurance/Quality Assurance], à l'exécution de tests, etc.)staging, tests, QA, intégration continue (intégration continue), base de données la migration ainsi que la rétrocompatibilité en cas de panne, sont toutes fortement recommandées. Il existe une variété d'outils simples ou complexes, dont l'un rendra le processus de déploiement pour répondre aux besoins de votre environnement plus facile (ou plus sophistiqué). N'oubliez pas que le processus de déploiement implique également la mise à jour des dépendances (généralement via Composer), la migration des bases de données, la suppression des caches et d'autres problèmes potentiels, tels que la publication de ressources sur un CDN (voir #🎜🎜 #Tâche commune post-déploiement