在命令行下执行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

yii2.0文件如何在php命令行中运行

有时候有些功能需要做到计划任务中去,因此就需要yii能用php命令去执行。yii2.0是支持php命令行运行的,操作方法如下: 在yii根目录下面有个“yii”文件,这个文件就是入口。然后“co...
  • qq_34625397
  • qq_34625397
  • 2017年04月18日 18:44
  • 1135

iOS命令行执行instruments

instruments -w {deviceId} -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents...
  • WHACKW
  • WHACKW
  • 2015年05月19日 15:27
  • 1699

命令行运行testNG

testNG的执行有2种基本方式: 1、通过指定的XML文件来规定要执行的用例文件和用例【适用于批量】 2、通过命令行参数来指定运行的用例文件和用例【适用于较少的用例文件】 XML模板:【保存为...
  • five3
  • five3
  • 2013年08月29日 19:13
  • 16071

命令行执行java程序

第一:简单的命令行(没有package) c:/temp/bin/GetGreeting.java   [java] view plaincopy public class G...
  • dongnan591172113
  • dongnan591172113
  • 2015年02月10日 16:36
  • 1004

PHP下的命令行执行

以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数。Usage: php [options] [-f] [args.....
  • hevenue
  • hevenue
  • 2017年02月17日 15:33
  • 376

在Windows命令行窗口中输入并运行PHP代码片段(不需要php文件)的方法

有时候只是简单的为了测试某个php函数的效果,以前总是需要建一个php文件,复制这个文件的路径,再通过web访问或者用php命令执行这个php文件。 一直想要怎么才能不用创建文件,才能直接执行PHP代...
  • cuixiping
  • cuixiping
  • 2015年08月03日 16:56
  • 8438

在命令行下执行php程序

问题安装phpredis扩展,在php.ini中添加extension=redis.so后,编写Redis.php文件// Redis.php ...
  • renwotao2009
  • renwotao2009
  • 2015年07月21日 09:29
  • 2261

Linux下命令在命令行执行正常,放到脚本文件执行出错

如果你的脚本文件执行到一个命令时,老是出错,
  • dliteng163com
  • dliteng163com
  • 2014年08月14日 23:31
  • 1381

命令行下传递参数执行PHP文件

有很多时候需要命令行下执行PHP脚本文件,比如Linux下执行定时脚本任务等 网上查找了一下,确实有相关的说明,整理了记录如下: 1. 格式 {PHP安装bin路径} {PHP文件路径} {需要参...
  • wujiangwei567
  • wujiangwei567
  • 2016年11月30日 16:46
  • 1858

命令行方式执行kettle的JOB

kettle中Kitchen是一个作业执行引擎,用来执行作业,这是一个命令行执行JOB的工具。 前提: 配置好JAVA环境变量 打开我的电脑--属性--高级--环境变量  新建系统变量JA...
  • gleiyu
  • gleiyu
  • 2014年07月24日 18:15
  • 3823
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在命令行下执行php程序
举报原因:
原因补充:

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