Maison >développement back-end >tutoriel php >Comment déployer des applications Symfony avec Capify

Comment déployer des applications Symfony avec Capify

William Shakespeare
William Shakespeareoriginal
2025-02-19 11:22:13535parcourir

How to Deploy Symfony Apps with Capifony

Déployer votre application Symfony ne devrait pas être une corvée manuelle. Ce guide vous montre comment rationaliser le processus à l'aide de Capify, un puissant outil de déploiement construit sur Capistrano (familier aux développeurs Ruby). Nous couvrirons l'installation, la configuration et le dépannage.

Concepts clés:

  • Capifony: automatise les déploiements d'application Symfony, les tâches de traitement comme l'installation de dépendance, la compensation du cache et la gestion de l'autorisation.
  • Capistrano: Le cadre sous-jacent de Capify, fournissant les capacités robustes d'automatisation des serveurs distants.
  • Stratégies de déploiement: Choisissez entre autoriser l'accès à SCM direct à votre serveur ou utiliser votre machine locale pour récupérer et transférer le référentiel.

Comment fonctionne Capifony:

Capifony exécute une série de commandes pendant le déploiement. Surtout, il utilise une disposition du répertoire structuré:

  • releases: Chaque déploiement crée un nouveau répertoire ici, contenant une nouvelle copie de votre application.
  • shared: stocke les fichiers et les répertoires (par exemple, les téléchargements, les journaux, le fournisseur) qui persistent entre les déploiements.
  • current: Un lien symbolique pointant vers la dernière version réussie, en veillant à ce que votre serveur Web sert toujours la version correcte. Votre serveur Web doit pointer vers ce lien symbolique.

Installation:

  1. Assurez-vous que le rubis est installé.
  2. Installez le gemme Capify: gem install capifony
  3. Initialisez Capify dans votre projet: Accédez à votre répertoire de projet Symfony et exécutez capifony .. Cela génère Capfile et deploy.rb. Choisissez une stratégie de déploiement (l'accès SCM côté serveur est détaillé ici).

Configuration du projet (deploy.rb):

Le fichier deploy.rb a besoin de personnalisation. Voici un exemple de configuration, expliquant les paramètres clés:

<code class="language-ruby">set :application, "YourAppName"
set :domain,      "yourdomain.com"
set :deploy_to,   "/var/www/yourdomain.com"
set :app_path,    "app" # Adjust if your app directory is different

set :repository,  "git@yourgitrepo.com:yourusername/YourAppName.git" # Your Git repository URL
set :scm,         :git

set :model_manager, "doctrine" # Or "propel"

role :web,        domain
role :app,        domain, :primary => true

set  :keep_releases,  3

set :dump_assetic_assets, true
set :use_composer, true

set :shared_files,      ["app/config/parameters.yml"]
set :shared_children,     [app_path + "/logs", web_path + "/uploads", "vendor", app_path + "/sessions"] # Adjust paths as needed

# Server Configuration (adjust user and paths as necessary)
set :use_sudo,      false
set :user, "yourusername"
set :writable_dirs,       ["app/cache", "app/logs", "app/sessions"]
set :webserver_user,      "www-data" # Your web server user
set :permission_method,   :acl
set :use_set_permissions, true

ssh_options[:forward_agent] = true # Often needed for Git access
default_run_options[:pty] = true # Helpful for troubleshooting

# Example: Add a task to run Bower before Assetic
before 'symfony:assetic:dump', 'bower:install'

namespace :bower do
  task :install do
    run "cd #{latest_release} && bower install"
  end
end
</code>

Déploiement:

  1. Préparez le serveur: cap deploy:setup (crée releases et shared répertoires).
  2. Déployer: cap deploy

Dépannage:

  • Erreurs d'autorisation: Assurez-vous que l'utilisateur de votre serveur Web a les autorisations correctes sur les répertoires en écriture.
  • Problèmes d'accès GIT: Vérifiez les clés SSH et considérez ssh_options[:forward_agent] = true.
  • Problèmes de dépendance: Vérifiez vos fichiers composer.json et bower.json.
  • Dogging verbeux: Ajouter logger.level = Logger::MAX_LEVEL à deploy.rb pour une sortie détaillée.
  • Rollback: cap deploy:rollback

Questions fréquemment posées (FAQ):

La section FAQ de l'article d'origine fournit des réponses complètes aux questions de déploiement de la capify courantes, couvrant des sujets tels que les mises à jour de dépendance, la compensation du cache et les procédures de recul. Reportez-vous à cette section pour un dépannage détaillé et les meilleures pratiques.

Cette réponse révisée fournit une explication plus concise et organisée du déploiement de Capify, tout en conservant les informations essentielles et en résolvant les problèmes potentiels. N'oubliez pas d'adapter la configuration à votre environnement de projet et de serveur spécifique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn