所以我跟着these instructions来找我的流浪盒,一切似乎都很好,我的意思是它的运行。它已配置了服务器ID和服务器令牌。
然后按照同一页面上的说明安装了PHP Probe,并在完成后重新启动了apache2。然后我做了composer require
blackfire/php-sdk
,最后在我的代码中做了:
$probe = $blackfire->createProbe();
// some PHP code you want to profile
$blackfire->endProbe($probe);
dd('End here.'); // Laravels die and dump function.
据我所知,我做的一切都是正确的。然后,在我的控制台中,我做了:
vagrant@scotchbox:/var/www$ php artisan fetch_eve_online_region_type_history_information
[Blackfire\Exception\ApiException]
401: while calling GET https://blackfire.io/api/v1/collab-tokens [context: NULL] [headers: array (
0 => 'Authorization: Basic xxxxxx=',
1 => 'X-Blackfire-User-Agent: Blackfire PHP SDK/1.0',
)]
// where xxxx is some kind of authentication token that looks different from what I gave as my server id and token.
呃....好的,所以如果出现问题,文档会说明检查日志:
vagrant@scotchbox:/var/www$ cat /var/log/blackfire/agent.log
vagrant@scotchbox:/var/www$
日志中没有任何内容......
我做错了什么?
答案 0 :(得分:3)
不是一个真正的解决方案,而是一个解决方法,直到我们听到更多关于如何实际解决它。
我已直接在代码中手动添加了客户端凭据,它解决了我的问题:
$config = new \Blackfire\ClientConfiguration();
$config->setClientId('...your _client_ id...');
$config->setClientToken('...your _client_ token...');
$blackfire = new \Blackfire\Client($config);
我在错误中看到的字符串是Authorization: Basic Og==
,而Og==
只是一个base64编码的字符串:
,它提示用户名/密码(或者在这种情况下为id / token) ?)自动查找失败,授权是不可能的。这就是为什么手动提供细节的原因。
答案 1 :(得分:1)
有点晚了但也许有人将来需要它。 将HOME环境变量添加到apache的vhost文件中,以便blackfire找到〜/ .blackfire.ini解决它。
<VirtualHost hostname:80>
...
SetEnv HOME /Users/me #i'm running macOS, on linux would be /home/me
...
</VirtualHost>
答案 2 :(得分:0)
考虑到您的探针配置正确(server_id和server_tokens),并且可以从浏览器进行概要分析,要使用PHP SDK(与blackfire进行phpunit集成),您必须配置客户端:
apt-get install blackfire-agent
blackfire config
,您将提示输入 BLACKFIRE_CLIENT_ID 和 BLACKFIRE_CLIENT_TOKEN 。
您还可以登录此api/v1/collab-tokens来测试您的客户端凭据用户名=> BLACKFIRE_CLIENT_ID ,密码=> BLACKFIRE_CLIENT_TOKEN
客户端的配置文件位置:/root/.blackfire.ini