在尝试对API进行身份验证时,我正在使用PECL OAuth.
示例代码:
<?php
$requestUri = 'http://openapi.lovefilm.com/oauth/request';
$consumerKey = 'MYCONSUMERKEY';
$consumerSecret = 'MYSECRET';
$oauth = new OAuth($consumerKey, $consumerSecret);
$oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->setVersion('1.0');
$oauth->setTimestamp(mktime());
$oauth->enableDebug();
try
{
$req = $oauth->getRequestToken($requestUri, 'oob');
var_dump($req);
}
catch(OAuthException $e)
{
print '<pre>';
var_dump($e);
var_dump($oauth->debugInfo);
}
?>
Run Code Online (Sandbox Code Playgroud)
他们提供的规范(http://developer.lovefilm.com/-registration req)说我应该发一个类似下面的请求:
POST/oauth/request_token HTTP/1.1主机:openapi.lovefilm.com授权:OAuth oauth_callback ="http%3A%2F%2Fyour-service.com%2Fsuccess",oauth_consumer_key ="2blu7svnhwkzw29zg7cwkydn",oauth_nonce ="5f38dbc02a97567965f14d",oauth_signature = "sPSVmqN%2FXu9k0wlZxF0PqPZwYGo%3D",oauth_signature_method ="HMAC-SHA1",oauth_timestamp ="1278499295",oauth_version ="1.0"
但是,当我使用该方法时:
$oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
Run Code Online (Sandbox Code Playgroud)
生成的请求始终是GET.
有人可以帮忙吗?
谢谢,
本
Normalizer我在尝试使用该类(特别是该函数)时收到此 PHP 错误Normalizer::normalize:
Fatal error: Class 'Normalizer' not found.
Run Code Online (Sandbox Code Playgroud)
我目前使用的是 PHP 5.3.8,因此根据PHP 文档,它应该默认激活。我唯一能想到的是 PECL intl 扩展的问题。
我检查了php/ext/文件夹,它就php_intl.dll在那里。我检查了php.ini文件,没有extension=php_intl.dll命令,所以我添加了它。但仍然没有运气。除此之外我不知道。有人能告诉我这里到底发生了什么事吗?
谢谢
附加信息:当我运行时phpinfo,没有提及PECL intl 扩展,所以我猜测它没有正确安装。
http://www.tiv.net/2010/12/php-intl-extension-windows-apache.html,卸载 XAMPP 1.77(PECL intl 扩展存在某种内部错误)并安装 XAMPP 1.73。
所以基本上我正在尝试安装APC,但我不能让pecl在Centos 5.8 i686上工作
我有最新的稳定版本的php-fpm,mysql和nginx.一切都在100%工作,一切都很顺利.我正在运行一个没有问题的实时网站.我只是不能去工作.

yum install php-pear:

我正在尝试安装的大多数软件包都存在与php-common(无论是什么)的依赖性问题.
php-common = 5.1.6-32.el5 is needed
Run Code Online (Sandbox Code Playgroud)
非常感谢!
好的,所以pecl ssh2应该是libssh2的包装器.libssh2有libssh2_channel_get_exit_status.有没有办法获取这些信息?
我需要:
-STDOUT
-STDERR
-EXIT STATUS
我得到了所有但退出状态.当ssh出现时,很多人都会在phplibsec周围投掷,但是我认为没有办法让stderr或者频道退出状态:/有没有人能够得到这三个?
在http://xdebug.org/docs/install上,我读到:
Installing with PEAR/PECL is as easy as:
# pecl install xdebug
Run Code Online (Sandbox Code Playgroud)
当我尝试此操作时,出现错误:
$ pecl install xdebug
bash: pecl: command not found
Run Code Online (Sandbox Code Playgroud)
在包含pecl的文件夹中再试一次:
cd /Applications/MAMP/bin/php/php5.5.3/bin/
bash-3.2$ ./pecl install xdebug
No releases available for package "pecl.php.net/xdebug"
install failed
Run Code Online (Sandbox Code Playgroud)
但是,访问pecl.php.net/xdebug会重定向到http://pecl.php.net/package/xdebug,这表明该软件包显然存在。
我还能尝试什么?
我正在尝试将相当大的PHP 5.3代码库升级到PHP 7.它托管在CentOS 6.5上,所以我想将它保留在该操作系统上.我目前在一个处女Vagrant盒子上做 - 我已成功安装PHP 7,以及除Memcache之外的所有模块.
作为root用户,当我运行pecl install memcache它时尝试安装v2.2.7但是我从make获得了一长串错误和警告.最后是:
make: *** [memcache.lo] Error 1
ERROR: `make' failed
Run Code Online (Sandbox Code Playgroud)
根据GoPHP7它应该工作,Memcache应该使用PHP 7 - 它说" github上的php7端口 ".GitHub上确实有一个Memcache PHP 7端口.当我查看Pecl页面上的Memcache页面时,它显示我应该安装v3.0.8,但这是测试版(自2013年以来).
所以我尝试运行pecl install memcache-3.0.8它仍然失败,出现与上面相同的错误:
make: *** [memcache.lo] Error 1
ERROR: `make' failed
Run Code Online (Sandbox Code Playgroud)
那么是否有可能在CentOS 6.5上使用PHP 7的Memcache扩展?
我正在尝试安装以下PHP扩展:http://php.net/manual/en/book.svn.php
但是当我这样做时,pecl install svn-beta我收到一条错误消息,它无法找到该svn_client.h文件.我在网上搜索但找不到任何对这个错误的有用参考.
谢谢您的帮助.
安装结果:
root@myUbuntu:/home/thedp# pecl install svn-beta
downloading svn-0.5.1.tgz ...
Starting to download svn-0.5.1.tgz (23,563 bytes)
.....done: 23,563 bytes
4 source files, building
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
1. Please provide the prefix of Subversion installation : autodetect
1-1, 'all', 'abort', or Enter to continue:
1. Please provide the prefix of the APR installation used with Subversion …Run Code Online (Sandbox Code Playgroud) 所以在MUCH $ head-> desk()之后,我已经解决了.
记住孩子,要警惕你使用的即时客户端版本,这取决于虚拟化设置!
我一直在安装通用的即时客户端(不知道我们的ESX服务器位于AMD处理器上,而不是英特尔),而且内部工作正常(CentOS安装是32位,因为我们的内部ESXi服务器不是64位).好吧,即使您在位于AMD64上的虚拟化服务器上运行32位安装,您安装的即时客户端仍然很重要.
这是我想要检查的最后一件事但是看起来现在一切都运行正常.
我要感谢所有帮助我完成所有可能测试的人,但最终,我没有意识到虚拟化的差异.
更新(2010年5月21日) 当我在内部安装新VM时,我认为这个错误已经逃脱了,但我现在发现了一个缩小的链接.
当我发布这个时,我试图在我们的生产服务器上安装它.经过一周没有进展并且需要重新开发之后,我在我们的内部服务器上配备了一个全新安装的Crap ... CentOS,以及全新安装的即时客户端和oci8.
工作得很完美.
但是,我们只是将VM的精确副本上传到我们的生产服务器,它神奇地不再有效.尝试重新安装一切,无济于事.
所以我唯一可以解决的问题是防火墙问题(虽然我在尝试127.0.0.1时遇到同样的问题)或可能是ESX(我们的生产服务器)服务器问题,但内部服务器正在运行ESXi.
有什么想法吗?
更新(2010年3月8日)我安装了Xdebug并让它跟踪我的代码.这是我得到的输出:
TRACE START [2010-03-08 17:53:05]
0.2090 327864 -> {main}() /data/aims3/http/octest.php:0
0.2091 327988 -> ini_set(string(14), string(1)) /data/aims3/http/octest.php:3
0.2093 327920 -> error_reporting(long) /data/aims3/http/octest.php:4
0.2094 328048 -> oci_connect(string(8), string(8), string(25)) /data/aims3/http/octest.php:6
Run Code Online (Sandbox Code Playgroud)
跟踪在此时停止.
我已经在本地服务器上以相同的方式安装了一切,它工作正常.说我完全失败就会轻描淡写.
*注意:我运行了make test并且在每次测试时都返回了FAIL.我从来没有在我的工作机器上运行它,看它是否报告相同的错误.知道为什么make test会报告FAIL但是make不会报告任何错误吗?
我已经安装了没有报告错误的Oracle Instantclient以及OCI8 PECL软件包而且不知所措.每当我尝试使用oci_connect打开连接时,它都会暂停我的整个PHP脚本.
例:
<?php
ini_set ("display_errors", "1");
error_reporting(E_ALL);
echo "before";
$conn = oci_connect("username", "password", "host");
echo "after";
?>
Run Code Online (Sandbox Code Playgroud)
返回一个完整的空白页面.加载模块(在phpinfo中看到),所有安装都没有错误.
我完全失去了.
CentOS:5.4
Apache:2.2.3
PHP:5.3.1
InstantClient:11.2
oci8:1.4.1
有什么想法吗? …
我不敢相信以前没有人问过这个问题,但这里是:
我正在尝试使用 WAMP 和 PHP 版本 5.3 在 Windows(64 位)上安装 xdiff。
pecl.php.net 不提供此组合的 .dll 文件,因此我尝试下载 5.3 x86 文件和 5.5 x64 版本,但都不起作用。x86 版本在 apache 日志中生成以下警告:
[Thu Jun 05 15:55:47 2014] [警告] Init:会话缓存未配置 [提示:SSLSessionCache] PHP 警告:PHP 启动:无法加载动态库 'c:/wamp/bin/php/php5.3.13 /ext/php_xdiff.dll' - %1 不是有效的 Win32 应用程序。\r\n 位于第 0 行的未知
警告:PHP 启动:无法加载动态库 'c:/wamp/bin/php/php5.3.13/ ext/php_xdiff.dll' - %1 不是有效的 Win32 应用程序。在第0行未知
x64 版本生成此警告:
[Thu Jun 05 15:58:16 2014] [警告] Init:会话缓存未配置 [提示:SSLSessionCache] PHP 警告:PHP 启动:无法加载动态库 'c:/wamp/bin/php/php5.3.13 /ext/php_xdiff.dll' - 无法找到指定的模块。\r\n 位于第 0 行未知
警告 …
我需要将Oauth设置为我将要开发的PHP项目的一部分.
为此,我跑了;
sudo pecl install oauth
Run Code Online (Sandbox Code Playgroud)
这完成了OK,它指示我添加extension=oauth.so到我的php.ini文件中,我做了.
然后我重新启动Apache并运行
php -i | grep oauth
Run Code Online (Sandbox Code Playgroud)
要查看它是否被PHP拾取,它似乎就像我得到的结果一样;
source version => $Id: oauth.c 325799 2012-05-24 21:07:51Z jawed $
Run Code Online (Sandbox Code Playgroud)
但是当我运行(CodeIgniter)应用程序时,我得到错误;
Fatal error: Class 'Oauth' not found in...
Run Code Online (Sandbox Code Playgroud)
我错过了一个至关重要的步骤吗?