首先,您需要知道有不同的方式可以配置您的网络服务器以使用 PHP。我个人有使用 mod_php 和 FastCGI 的经验,所以我可以简要介绍一下这两个。这些被称为处理程序,它们极大地影响了您如何配置 PHP。
mod_php
如果您已将 PHP 作为 Apache 的模块安装,php.ini
则在 Apache 启动时会读取该文件。在这种情况下,所有主要的 PHP 指令zend_extension
都extension
将在 Apache 启动时应用,因此它们不能在.htaccess
文件中设置。根据我的经验,SetEnv PHPRC
in the.htaccess
也不起作用。
快速CGI
在这种情况下,php.ini
每次请求到达时都会加载文件。所以如果你改变了 PHP 的配置,你不需要重启 Apache。然而,您不能在文件中设置主要的 PHP 指令,例如和zend_extension
,它们需要在文件中设置。这是因为在应用时,PHP 扩展已经列出并加载,更改这些指令将无效(也不会导致错误)。但好消息是,在这种模式下,您可以在文件中使用。因此,您可以指向一个确实会加载 xdebug 的自定义文件。extension
.htaccess
php.ini
.htaccess
SetEnv PHPRC
.htaccess
php.ini
还有另一种方法可以加载用户特定的php.ini
文件。但我还没有测试它,所以我不能评论它对你的情况是否有用。也许你可以自己看看。但是页面中提到它也只能在 CGI / FastCGI 中工作。
底线
如果您使用的是 mod_php,您别无选择,只能修改原始php.ini
文件以加载 xdebug。但是您可以为每个虚拟主机启用它,将启用命令放在适当的.htaccess
文件中。
如果您使用的是 FastCGI,您可以加载原始的 xdebug,php.ini
或者您可以拥有自己的php.ini
文件并在文件中指向它.htaccess
(但无论哪种情况,xdebug 都会加载到php.ini
文件中)。但是,如果您使用后一种情况,php.ini
则根本不会应用您的原件。因此,您需要在自己的php.ini
文件版本中提及您想要的任何指令。同样,您可以为文件中的每个虚拟主机打开/关闭 xdebug .htaccess
。
无论您选择哪种解决方案,您都需要在php.ini
文件中输入此内容以加载 xdebug:
zend_extension = /path/to/your/xdebug.so
而这个在你的虚拟主机.htaccess
中启用调试:
php_value xdebug.profiler_enable 1
[更新]
如何检查您的服务器是否在 mod_php 或 FastCGI 中运行 PHP:
在的输出中查找服务器 API 。phpinfo
如果它Apache 2.0 Handler
在 FastCGI 中读取它是 mod_php,它将读取CGI/FastCGI
.