Maison >développement back-end >tutoriel php >Symfony sur les hacks de performance vagabonds - Study de cas de sulèques

Symfony sur les hacks de performance vagabonds - Study de cas de sulèques

Christopher Nolan
Christopher Nolanoriginal
2025-02-15 13:01:12186parcourir

Symfony on Vagrant Performance Hacks - SuluCMS Case Study

Points clés: Ce tutoriel optimise Sulu, un CMS basé sur Symfony, pour des performances plus rapides dans un environnement vagabond. Il aborde la lenteur inhérente de Symfony sur les machines virtuelles avec des systèmes de fichiers partagés. Les techniques détaillées sont applicables à toute application Symfony.

Ce guide détaille la configuration de Sulu sur Vagrant, y compris le téléchargement de boîtes, la configuration du partage de dossiers, l'installation de Sulu et les améliorations cruciales des performances. Après avoir appliqué ces optimisations, https://test.app/admin et https://test.app devraient être considérablement plus rapides.

Configuration et optimisation de Sulu sur Vagrant

Nous utiliserons Homestead améliorés, mais les principes s'appliquent largement.

1. Configuration initiale:

  • Clone Le référentiel amélioré de la propriété et la configuration du partage des dossiers:
    <code class="language-bash">git clone https://github.com/swader/homestead_improved hi_sulu
    cd hi_sulu; bin/folderfix.sh</code>
  • Définir le partage de fichiers sur NFS (recommandé pour atténuer les problèmes connus).
  • Ajoutez un nouveau site à Homestead.yaml:
    <code class="language-yaml">- map: test.app
      to: /home/vagrant/Code/sulu/web
      type: symfony-sulu</code>

    (La configuration Nginx fournie est cruciale; s'adapter selon les besoins pour les environnements non homosexuels.)

2. Installation Vagrant et Sulu:

  • démarrer la machine virtuelle et SSH dans:
    <code class="language-bash">vagrant up; vagrant ssh</code>
  • Ajouter test.app au fichier /etc/hosts de votre hôte.
  • Installer Sulu:
    <code class="language-bash">cd Code
    git clone https://github.com/sulu-io/sulu-standard sulu; cd sulu
    git checkout master
    composer install</code>

    (aborder les conflits potentiels de la version PHP; mettre à niveau si nécessaire en utilisant sudo apt-get upgrade php7.0-fpm.)

  • Configurer Sulu (Détails de la base de données requis):
    <code class="language-bash">cp app/Resources/webspaces/sulu.io.xml.dist app/Resources/webspaces/sulu.io.xml
    cp app/Resources/pages/default.xml.dist app/Resources/pages/default.xml
    cp app/Resources/pages/overview.xml.dist app/Resources/pages/overview.xml
    cp app/Resources/snippets/default.xml.dist app/Resources/snippets/default.xml
    rm -rf app/cache/*
    rm -rf app/logs/*</code>
  • Exécuter la commande de construction (environnement de développement):
    <code class="language-bash">app/console sulu:build dev</code>
  • générer des actifs:
    <code class="language-bash">app/console assetic:dump</code>
  • Activer le mode Dev dans web/admin.php et web/website.php (changer SYMFONY_ENV par dev).

Symfony on Vagrant Performance Hacks - SuluCMS Case Study

3. Hacks d'optimisation des performances:

  • Optimisation du journal et du cache: Modifier app/AbstractKernel.php S getCacheDir et getLogDir Méthodes à utiliser /dev/shm pour les environnements Dev / Test. Cela déplace les journaux et le cache vers le stockage VM-local.
  • Déplacer le répertoire du fournisseur: Déplacer le répertoire vendor vers un chemin VM-local (par exemple, /home/vagrant/vendors/sulu-test.app). Cela améliore considérablement les performances en évitant l'accès au système de fichiers partagé. (Des étapes détaillées sont fournies dans l'article d'origine pour l'ajustement manuel.) Utilisez le script fourni ~/Code/bin/sulu/vendorfix.sh ou suivez les étapes manuelles. Mettez à jour le chemin d'inclusion de votre IDE en conséquence.
  • Activer la mise en cache APC: CACHING APC APC APC APC CACHING IN web/website.php AT web/admin.php.
  • Optimisations supplémentaires: augmenter realpath_cache_size et realpath_cache_ttl dans /etc/php/7.0/fpm/php.ini. Envisagez d'installer l'extension Twig C et de désactiver xdebug (sudo phpdismod xdebug; sudo service php7.0-fpm restart).

Symfony on Vagrant Performance Hacks - SuluCMS Case Study

4. Dépannage:

résoudre des problèmes communs comme le cache obsolète, des emplacements de classe incorrects (utiliser app/console cache:clear, rm -rf app/cache/*, composer update) et la rupture du cache APC (apc_clear_cache()). Optimiser pour le débogage au besoin.

Conclusion:

Ces optimisations améliorent considérablement les performances de Sulu sur Vagrant. Les techniques, en particulier la relocalisation du répertoire des fournisseurs et l'optimisation du log / cache, sont largement applicables à tout projet Symfony. N'oubliez pas d'adapter les chemins et les configurations à votre configuration spécifique. La section FAQ fournit un contexte supplémentaire et répond aux questions courantes sur Symfony, Sulu et les performances vagabonantes.

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