Maison développement back-end tutoriel php 解决 Composer 运行时的 Xdebug 冲突

解决 Composer 运行时的 Xdebug 冲突

Sep 08, 2016 am 08:43 AM

composer 对 phper 来说是个福音,但有时,他也会给我们一些小麻烦,比如下面这个报错:

You are running composer with xdebug enabled. This has a major impact on runtime performance. 
See https://getcomposer.org/xdebug
Copier après la connexion

1247.png

这是一个非常常见的冲突,而且这个冲突对 composer 运行的影响还是蛮大的,当我们启用 Xdebug 功能时,将使得我们的 composer 运行放慢 3-4 倍。换句话说:xdebug 对我们程序调试来说非常重要,但对 composer 来说却增加了内存占用和进程时间。

composer 官网给出了 解决方案

下面我讲讲我的排错思路。

方法1:通过 php 配置文件,全局禁用 Xdebug。

首先,这肯定是一个因为启用了 Xdebug 导致的冲突,我们要找到在哪里启用了 Xdebug。

写一个包含 phpinfo() 函数的页面,在浏览器中打开。

1248.png

配置参数
Configuration File (php.ini) Path/usr/local/etc/php/5.6
Loaded Configuration File/usr/local/etc/php/5.6/php.ini
Scan this dir for additional .ini files/usr/local/etc/php/5.6/conf.d
Additional .ini files parsed/usr/local/etc/php/5.6/conf.d/ext-igbinary.ini, /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini, /usr/local/etc/php/5.6/conf.d/ext-redis.ini, /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini

可见 php 调用了 php.ini 配置文件和 conf.d 目录里面的所有 ini 配置文件。

禁用 php.ini 中的 "xdebug" 模块

用分号注释掉调用语句:

;zend_extension = "/path/to/my/xdebug.so"
Copier après la connexion

去除 Xdebug 相关的配置文件

如果 Xdebug 的调用不在主配置文件 php.ini 中,那么有可能在扩展配置文件夹中,比如我的环境就是如此,见上图表:

我们可以将 conf.d/ext-xdebug.ini 重命名为 ext-xdebug.bak 或者删除。这样 php 服务重启就不会调用了。当面,我们也可以参照上面的步骤,在 conf.d/ext-xdebug.ini 中将相应的 Xdebug 语句注释掉,效果相同。

方法2:通过给 composer 设置别名防止调用 Xdebug

设置别名的需要了解你自己在哪个 shell 环境下,我的机子用的是 zsh ,所以编辑 .zshrc 这个文件即可。

➜  ~ cd
➜  ~ vi .zshrc
Copier après la connexion

然后根据下面两种情况选择一种方式设置你的别名,或者设置 两个别名 。

调用不含 Xdebug 模块的配置文件

对于 Xdebug 调用在 php.ini 中的情况,我们可以通过复制一份不含 Xdebug 的配置文件(xdebug-disabled-php.ini),然后建立以下别名:

alias comp='php -c /path/to/xdebug-disabled-php.ini /path/to/composer.phar'
Copier après la connexion

不调用任何 php 配置文件

这种方式可以解决像我一样已经将一些扩展配置路径编译进 php 的情况:

/path/to 为你实际的文件或命令路径

OK ,现在我们执行 composer -V 试试,是否还有错误提示出现。

1249.png

Good,完美解决。

以上就是解决 Composer 运行时的 Xdebug 冲突的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Fonctionnalités avancées de Composer : alias, scripts et résolution de conflits Fonctionnalités avancées de Composer : alias, scripts et résolution de conflits Jun 03, 2024 pm 12:37 PM

Composer fournit des fonctionnalités avancées, notamment : 1. Alias : définissez des noms pratiques pour les packages pour référence répétée ; 2. Scripts : exécutez des commandes personnalisées lors de l'installation/mise à jour de packages, utilisées pour créer des tables de base de données ou compiler des ressources ; 3. Résolution de conflits : utilisez des règles de priorité ; , les contraintes de satisfaction et les alias de package résolvent les différentes exigences de plusieurs packages pour la même version de dépendance afin d'éviter les conflits d'installation.

Quelles sont les méthodes courantes pour convertir des tableaux en objets en PHP ? Quelles sont les méthodes courantes pour convertir des tableaux en objets en PHP ? Apr 28, 2024 pm 10:54 PM

Comment convertir un tableau PHP en objet : utilisez la classe stdClass, utilisez la fonction json_decode(), utilisez une bibliothèque tierce (telle que la classe ArrayObject, la bibliothèque Hydrator)

Développement et exploitation agiles de la conteneurisation de microservices PHP Développement et exploitation agiles de la conteneurisation de microservices PHP May 08, 2024 pm 02:21 PM

Réponse : Les microservices PHP sont déployés avec HelmCharts pour un développement agile et conteneurisés avec DockerContainer pour l'isolation et l'évolutivité. Description détaillée : utilisez HelmCharts pour déployer automatiquement des microservices PHP afin de réaliser un développement agile. Les images Docker permettent une itération rapide et un contrôle de version des microservices. Le standard DockerContainer isole les microservices et Kubernetes gère la disponibilité et l'évolutivité des conteneurs. Utilisez Prometheus et Grafana pour surveiller les performances et l'état des microservices, et créer des alarmes et des mécanismes de réparation automatiques.

Contrôle de version et collaboration du code PHP Contrôle de version et collaboration du code PHP May 07, 2024 am 08:54 AM

Contrôle de version du code PHP : Il existe deux systèmes de contrôle de version (VCS) couramment utilisés dans le développement PHP : Git : VCS distribué, où les développeurs stockent localement des copies de la base de code pour faciliter la collaboration et le travail hors ligne. Subversion : VCS centralisé, la seule copie de la base de code est stockée sur un serveur central, offrant plus de contrôle. VCS aide les équipes à suivre les modifications, à collaborer et à revenir aux versions antérieures.

Comment utiliser le cache Redis dans la pagination des tableaux PHP ? Comment utiliser le cache Redis dans la pagination des tableaux PHP ? May 01, 2024 am 10:48 AM

L'utilisation du cache Redis peut considérablement optimiser les performances de la pagination du tableau PHP. Cela peut être réalisé en suivant les étapes suivantes : Installez le client Redis. Connectez-vous au serveur Redis. Créez des données de cache et stockez chaque page de données dans un hachage Redis avec la clé « page : {page_number} ». Récupérez les données du cache et évitez les opérations coûteuses sur les grandes baies.

Le rôle de PHP CI/CD dans les projets DevOps Le rôle de PHP CI/CD dans les projets DevOps May 08, 2024 pm 09:09 PM

PHPCI/CD est une pratique clé dans les projets DevOps qui automatise les processus de création, de test et de déploiement, améliorant ainsi l'efficacité du développement et la qualité des logiciels. Un pipeline PHPCI/CD typique comprend les étapes suivantes : 1) Intégration continue : chaque fois que le code change, le code est automatiquement construit et testé. 2) Déploiement continu : accélérez la livraison en déployant automatiquement le code testé et intégré dans l'environnement de production. En mettant en œuvre le pipeline PHPCI/CD, vous pouvez augmenter l’efficacité du développement, améliorer la qualité des logiciels, réduire les délais de mise sur le marché et augmenter la fiabilité.

Comment utiliser PHP CI/CD pour itérer rapidement ? Comment utiliser PHP CI/CD pour itérer rapidement ? May 08, 2024 pm 10:15 PM

Réponse : Utilisez PHPCI/CD pour réaliser une itération rapide, y compris la configuration de pipelines CI/CD, de tests automatisés et de processus de déploiement. Configurer un pipeline CI/CD : sélectionnez un outil CI/CD, configurez le référentiel de code et définissez le pipeline de build. Tests automatisés : rédigez des tests unitaires et d'intégration et utilisez des frameworks de test pour simplifier les tests. Cas pratique : Utilisation de TravisCI : Installez TravisCI, définissez le pipeline, activez le pipeline et visualisez les résultats. Mettez en œuvre la livraison continue : sélectionnez les outils de déploiement, définissez les pipelines de déploiement et automatisez le déploiement. Avantages : améliorez l’efficacité du développement, réduisez les erreurs et raccourcissez les délais de livraison.

Technologie de visualisation de la structure des données PHP Technologie de visualisation de la structure des données PHP May 07, 2024 pm 06:06 PM

Il existe trois technologies principales pour visualiser les structures de données en PHP : Graphviz : un outil open source capable de créer des représentations graphiques telles que des graphiques, des graphiques acycliques dirigés et des arbres de décision. D3.js : bibliothèque JavaScript pour créer des visualisations interactives basées sur les données, générer du HTML et des données à partir de PHP, puis les visualiser côté client à l'aide de D3.js. ASCIIFlow : une bibliothèque pour créer une représentation textuelle de diagrammes de flux de données, adaptée à la visualisation de processus et d'algorithmes.

See all articles