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

举报

相关文章推荐

在win命令行执行python程序

在win命令行执行python程序今天尝试了在windows命令提示符中选择python文件并执行,也发现了一些问题,现在把在win命令行中执行python程序的方法记录一下。 首先,我们需要用cd命...

JAVA程序命令行下的执行

JAVA程序命令行下的执行 IED用惯了,基础都快忘记了 javac 先不说了,环境变量里面设置对了基本没什么问题。关键是java这个命令 java -classpath .class的类路...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

shell 下执行mysql 命令

1、命令行调用单独的SQL文件 [root@SZDB ~]# mysql -uroot -p123456 -e "source /root/temp.sql"   Logging to fil...

PHP下的命令行执行

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

php下的命令行执行

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

在PHP中执行shell命令

PHP作为一种服务器端的脚本语言,象编写简单,或者是复杂的动态网页这样的任务,它完全能够胜任。但事情不总是如此,有时为了实现某个功能,必须借助于操作系统的外部程序(或者称之为命令),这样可以做到事半功...

Oracle 任意命令执行

假如有一天你通过端口扫描+口令暴破的方法拿下了一台Oracle服务器,那么,如何才能扩大战果,实现“任意命令执行”呢?

php ssh2实现远程上传、下载、执行命令

php远程copy以及执行命令 php远程copy文件以及在远程服务器中执行命令时,所用到的模块是ssh2,以后所有的操作都依据ssh2连接句柄完成。 1. SSH2模块的...

php 命令行执行参数详解

为了方便在任意目录下执行php命令行命令,我们把php.exe所在的路径配置到系统的环境变量path。 执行 php -h 命令我们可以看到如下所示命令参数: Usage: php [options]...

pyqt远程批量执行Linux命令程序

写了个小程序: 功能 1.测试远程ssh连接是否成功, 2.批量执行远程ssh命令 效果如下: 代码如下: #-*- coding:utf-8 -*- import sys from PyQt...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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