簡體   English   中英

為什么 Xdebug 3 profiler 在 CLI 中觸發而不在 Apache 中觸發?

[英]Why Xdebug 3 profiler triggers in CLI but not in Apache?

我可以觸發 PHP 調試會話(對於 CLI 和 Apache),但是在嘗試分析時,它僅在 CLI 模式下而不是在 Apache2 下工作。

這是我的 Xdebug 配置(xdebug.ini):

zend_extension=xdebug.so

xdebug.remote_handler=dbgp;
xdebug.mode=debug,profile;
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1;
xdebug.client_port=9003;
xdebug.discover_client_host = 1;
#xdebug.log_level=0;

#problems about xdebug profile itself
xdebug.log="/tmp/xdebugprofile/xdebug.log"

xdebug.output_dir = "/tmp/xdebugprofile";
xdebug.profiler_output_name = "cachegrind.out.%u.%H_%R";

對這種不一致的行為有任何想法嗎?

(Linux Mint 20、PHP 8.0、Apache2)

我有同樣的問題。 解決方案如下:

在服務單元文件中,變量 PrivateTmp 設置為 true:

 PrivateTmp=true

我將上述設置為 false,然后重新啟動 php-fpm

文件的可能位置:

/usr/lib/systemd/system/php-fpm.service

/usr/lib/systemd/system/php72-php-fpm.service

您可能會發現它使用:

sudo find /usr/ -name php-fpm.service

現在 cachegrind 文件是在 /tmp 中創建的

解決方案取自: xdebug only profile php process not php-fpm process

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM