在命令行下执行php程序

问题


安装phpredis扩展,在PHP.ini中添加extension=redis.so后,编写Redis.php文件

<code class="language-php hljs  has-numbering"><span class="hljs-comment">// Redis.php</span>
<span class="hljs-preprocessor"><?php</span>
    <span class="hljs-variable">$client</span> = <span class="hljs-keyword">new</span> Redis();
    <span class="hljs-variable">$client</span>->set(<span class="hljs-string">'key'</span>, <span class="hljs-string">'value'</span>);
    <span class="hljs-keyword">echo</span> <span class="hljs-variable">$client</span>->get(<span class="hljs-string">'key'</span>);
    ....</code><ul style="opacity: 0.0587674;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul>

使用php命令行执行Redis.php,但是确遇见一下问题

<code class="language-php hljs  has-numbering">$ php Redis.php
$ ....<span class="hljs-string">" Fatal error: Class 'Redis' not found in Redis.php"</span>...</code><ul style="opacity: 0.0587674;" class="pre-numbering"><li>1</li><li>2</li></ul><ul style="" class="pre-numbering"><li>1</li><li>2</li></ul>

但是,在浏览器中可以显示echo $client->get('key');的值,这是为什么?

解决过程


网上搜索


网上查找Fatal error: Class 'Redis' not found in Redis.php关键词。

终于在stackoverflow找到相似提问:phpredis errors Class Redis not found in Linux

仅有的一个回复,命令行和web server可能使用不同的php.ini文件
redis answer

php命令行和web Server使用相同的php.ini吗?


<code class="language-php hljs  has-numbering"><span class="hljs-comment">// 去找php的doc</span>
$ man php

<span class="hljs-comment">// 终于找到相关信息</span>
...
FILES
    /etc/php5/cli/php.ini
        The configuration file <span class="hljs-keyword">for</span> the CLI version of PHP
    /etc/php5/cgi/php.ini.
        The configuration file <span class="hljs-keyword">for</span> the CGI version of PHP
    /etc/php5/apache2/php.ini.
        The configuration file <span class="hljs-keyword">for</span> the version of PHP that apache2 uses.        
...</code><ul style="opacity: 0.0587674;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li></ul><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li></ul>

解决方案


修改的php.ini准确的说是/etc/php5/apache2/php.ini,因此仅web server可以使用phpredis扩展。
在/etc/php5/cli/php.ini中添加extension=redis.so后,执行$ php Redis.php,测试成功。


来源:http://blog.csdn.net/renwotao2009/article/details/46981037

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

在命令行下执行php程序

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭