在命令行下执行php程序

转载 2016年05月31日 00:37:53

问题


安装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

相关文章推荐

利用linux系统命令分析PHP程序

除了使用xdebug或者xhprof等PHP扩展分析PHP程序之外,我们还可以使用linux的命令对PHP程序进行分析。当然,这样也有一定缺陷,就是只能分析CLI执行的PHP程序。 以下是将要分析的...

用Thinkphp写的简单程序在命令行执行(非 Thinkphp 下的cli模式 而是php下的命令模式)

本来是打算用Thinkphp下的cli命令模式 运行程序的,但不知道哪里出错了,没法跑起来 于是就有了下篇代码。 首先 用Thinkphp写个简单的程序,保证页面上访问输出正常。 再在命令行 输入...

PHP命令行执行程序php.exe参数说明

PHP命令行执行程序php.exe参数说明 -f :以命令行方式运行指定的PHP文件,只要指定具体的PHP文件(带绝对路径),php.exe就可以执行PHP文件,所以这个参数单个使用其实有没有都无所谓...

php程序的执行过程

1、客户端发起URL请求。 2、服务器上的 Web Server 接受到客户断的请求,判断是PHP的请求,然后开启一个进程载入PHP解释器(php-cgi),然后Web Server 把客户端的请求交...

Linux实现使用定时任务执行php程序

php程序已经写好了,位置:/data/html/XXX/redis_to_mysql.php,php安装位置为:/app/bin/php,查找php安装位置使用 whereis php ...

PHP程序自动执行

相信不少读者(PHP爱好者)在工作、学习的过程中经常抱怨:在WIN如何让PHP定时自动发信呢??如何让MYSQL实现自动备份而无后顾之忧呢??如 果完全依靠手工进行当然也可以实现,但操作上似乎过于繁琐...

shell脚本定时执行php程序

其实很简单的,在做开发的过程中可能会遇到一些情况需要定时得去跑一些程序,这时呢我们就可以用到这crontab这个定时器来帮助我们完成这些任务。 首先写好你需要执行的php程序 我这...

PHP Yii 命令行程序以及定时任务详解

为啥要编写命令行程序? 命令行程序通常是一个脚本,但是PHP Yii 是web开发语言,如何能开发脚本程序? 所以,首先我们要明白使用PHP Yii 编写脚本语言的目的和原理。 目的 ...

判断PHP程序执行时间

  • 2009年05月15日 11:09
  • 176B
  • 下载

JAVA程序命令行下的执行

  • 2013年04月06日 19:52
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在命令行下执行php程序
举报原因:
原因补充:

(最多只允许输入30个字)