在命令行下执行php程序
生活随笔
收集整理的這篇文章主要介紹了
在命令行下执行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文件
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.iniThe 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程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下Vim和Terminal配色
- 下一篇: 堡垒之夜ios端收入突破3亿美元 吸金能