PHP composer xdebug 警告
PHP composer xdebug warning
PHP 的新手。在 PHP 项目上工作并启用 xdebug 以便能够调试我的 php 应用程序。生产服务器没有启用 xdebug,因为它由另一个团队处理。在我的本地机器上,当我 运行 composer 时,它会给我一个警告说
You are running composer with xdebug enabled. This has a major impact on
runtime performance.
我不想在开发时禁用 xdebug。只是想确认开发环境中的 运行ning xdebug 应该 对在生产服务器上安装 libraries/performance 应用程序的作曲家没有影响。
与网络脚本一样,预计 CLI 脚本也会 运行 变慢。
如果您需要增加的 运行 时间性能,您可以仅在 CLI 上禁用 XDebug。设置您的 PHP 安装,以便它为 CLI 和您的服务器使用不同的 ini 文件,as this answer suggests.
I do not want to disable xdebug when I am developing. Just wanted to confirm that running xdebug in dev environment should have no impact on the composer installing libraries/performance of the app on the production server.
仅仅加载 Xdebug 就会产生巨大的影响。即使未启用分析功能,它也会使 Composer 运行 减慢 3 倍或 4 倍。
换句话说:xdebug 对于调试来说是无价的,但是会增加 Composer 使用的内存和处理时间。
如何为 Composer 运行s 禁用 Xdebug?
我的建议是为 运行ning Composer 编写一个小的调用助手。
助手是一个 bash 或批处理脚本调用 PHP 自定义 php.ini
,特别为 Composer 配置。让我们称之为:php.ini-composer
.
您可以复制当前 php.ini
并针对 Composer 运行 进行调整,方法是删除 xdebug 或将其注释掉,如下所示:;zend_extension = "/path/to/my/xdebug.so"
。
当你在做的时候:设置 memory_limit=-1
也很有帮助。
完整的命令在 Windows 上看起来像这样:php.exe -c php.ini-composer composer.phar %*
只需克隆 bash 脚本的想法。
您可以在 Composer FAQ 中找到问题的完整答案。
https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer
几个小时前 added/updated。
还提到了一些替代方案(而不是使用单独的 ini 文件)here。
在某处创建一个名为 php-composer.ini
的文件,其中包含以下内容(composer 的最小 php 配置):
extension_dir = "D:/php/ext/" ;according to your system
extension=php_openssl.dll
memory_limit=-1 ;optional
现在创建一个名为 cmz.bat
的文件,其中包含以下内容。 (相应地编辑路径)
@ECHO OFF
php -c "D:\php-composer.ini" "C:\ProgramData\ComposerSetup\bin\composer.phar" %*
将此文件添加到您的系统路径或项目根目录。
现在使用 cmz
而不是 composer
,您将不会看到该消息,希望作曲家的速度会提高。
注意:某些包需要特定的 php 扩展。您需要将它们添加到 php-compsoer.ini
文件或将 --ignore-platform-reqs
开关附加到 cmz.bat
文件
在全新下载的 Symfony 3.1 和 PHP 7.0 中,您可以 运行 以下内容(已对其进行编辑以包含 composer.phar 文件的路径):
php -n -d extension=json.so -d extension=phar.so -d extension=pdo.so -d extension=ctype.so /path/to/composer update
如果您的 composer.json
文件中有任何额外的供应商,您可能会发现它们依赖于扩展,因此您需要通过将 -d extension=name_of_extension.so
添加到列表中来包含它。
这里发生的是 -n
标志与 PHP 默认值一起使用 - 它不会加载任何 ini
PHP 配置文件,因此永远不会加载 XDebug。然后每个 -d
标志允许您动态设置配置值,因此您可以包含扩展。
现代版本的 Composer 可以解决默认为 CLI SAPI 启用 XDebug 的问题。它会生成一个新的 PHP 进程,并在检测到它时禁用 XDebug 扩展。
您可以通过设置以下环境变量来禁用此行为:
COMPOSER_ALLOW_XDEBUG=1
在文档中找到:https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer
要解决此问题,在 PHP 之前,有 7 个人会建议从您的 php.ini 文件中注释掉扩展名。
然而,在 PHP 7 他们已经不在了。
相反,我们使用 phpdismod
命令。
sudo phpdismod -s cli xdebug
-s 标志告诉它为 CLI SAPI (/etc/php/7.0/cli) 而不是 FPM 禁用 Xdebug。
就这样,警告消息应该消失了。无需重启 PHP.
除此之外,还有一个plugin并行下载包以加快安装过程。
PHP 的新手。在 PHP 项目上工作并启用 xdebug 以便能够调试我的 php 应用程序。生产服务器没有启用 xdebug,因为它由另一个团队处理。在我的本地机器上,当我 运行 composer 时,它会给我一个警告说
You are running composer with xdebug enabled. This has a major impact on
runtime performance.
我不想在开发时禁用 xdebug。只是想确认开发环境中的 运行ning xdebug 应该 对在生产服务器上安装 libraries/performance 应用程序的作曲家没有影响。
与网络脚本一样,预计 CLI 脚本也会 运行 变慢。
如果您需要增加的 运行 时间性能,您可以仅在 CLI 上禁用 XDebug。设置您的 PHP 安装,以便它为 CLI 和您的服务器使用不同的 ini 文件,as this answer suggests.
I do not want to disable xdebug when I am developing. Just wanted to confirm that running xdebug in dev environment should have no impact on the composer installing libraries/performance of the app on the production server.
仅仅加载 Xdebug 就会产生巨大的影响。即使未启用分析功能,它也会使 Composer 运行 减慢 3 倍或 4 倍。
换句话说:xdebug 对于调试来说是无价的,但是会增加 Composer 使用的内存和处理时间。
如何为 Composer 运行s 禁用 Xdebug?
我的建议是为 运行ning Composer 编写一个小的调用助手。
助手是一个 bash 或批处理脚本调用 PHP 自定义 php.ini
,特别为 Composer 配置。让我们称之为:php.ini-composer
.
您可以复制当前 php.ini
并针对 Composer 运行 进行调整,方法是删除 xdebug 或将其注释掉,如下所示:;zend_extension = "/path/to/my/xdebug.so"
。
当你在做的时候:设置 memory_limit=-1
也很有帮助。
完整的命令在 Windows 上看起来像这样:php.exe -c php.ini-composer composer.phar %*
只需克隆 bash 脚本的想法。
您可以在 Composer FAQ 中找到问题的完整答案。
https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer
几个小时前 added/updated。
还提到了一些替代方案(而不是使用单独的 ini 文件)here。
在某处创建一个名为 php-composer.ini
的文件,其中包含以下内容(composer 的最小 php 配置):
extension_dir = "D:/php/ext/" ;according to your system
extension=php_openssl.dll
memory_limit=-1 ;optional
现在创建一个名为 cmz.bat
的文件,其中包含以下内容。 (相应地编辑路径)
@ECHO OFF
php -c "D:\php-composer.ini" "C:\ProgramData\ComposerSetup\bin\composer.phar" %*
将此文件添加到您的系统路径或项目根目录。
现在使用 cmz
而不是 composer
,您将不会看到该消息,希望作曲家的速度会提高。
注意:某些包需要特定的 php 扩展。您需要将它们添加到 php-compsoer.ini
文件或将 --ignore-platform-reqs
开关附加到 cmz.bat
文件
在全新下载的 Symfony 3.1 和 PHP 7.0 中,您可以 运行 以下内容(已对其进行编辑以包含 composer.phar 文件的路径):
php -n -d extension=json.so -d extension=phar.so -d extension=pdo.so -d extension=ctype.so /path/to/composer update
如果您的 composer.json
文件中有任何额外的供应商,您可能会发现它们依赖于扩展,因此您需要通过将 -d extension=name_of_extension.so
添加到列表中来包含它。
这里发生的是 -n
标志与 PHP 默认值一起使用 - 它不会加载任何 ini
PHP 配置文件,因此永远不会加载 XDebug。然后每个 -d
标志允许您动态设置配置值,因此您可以包含扩展。
现代版本的 Composer 可以解决默认为 CLI SAPI 启用 XDebug 的问题。它会生成一个新的 PHP 进程,并在检测到它时禁用 XDebug 扩展。
您可以通过设置以下环境变量来禁用此行为:
COMPOSER_ALLOW_XDEBUG=1
在文档中找到:https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer
要解决此问题,在 PHP 之前,有 7 个人会建议从您的 php.ini 文件中注释掉扩展名。 然而,在 PHP 7 他们已经不在了。
相反,我们使用 phpdismod
命令。
sudo phpdismod -s cli xdebug
-s 标志告诉它为 CLI SAPI (/etc/php/7.0/cli) 而不是 FPM 禁用 Xdebug。
就这样,警告消息应该消失了。无需重启 PHP.
除此之外,还有一个plugin并行下载包以加快安装过程。