PHP在CLI中成功运行,但在CGI中没有显示任何内容


PHP successfully runs in CLI but not show anything in CGI

我正在Dropbox-API php上工作。。

我的php文件刚刚在CLI中工作。。如何使它也能在CGI中工作?

这是我的搜索.php

<html>
<pre>
<?php
echo "123";
require_once "dropbox-sdk/Dropbox/autoload.php";
use 'Dropbox as dbx;
$accessToken = "xxx";
$dbxClient = new dbx'Client($accessToken, "PHP-Example/1.0");
$_SESSION['Dropbox'] = $dbxClient;
$searchMetadata = $dbxClient->searchFileNames( "/", "soemarko.png", null, false );
print_r($searchMetadata);
$file = "search.json";
file_put_contents($file, json_encode($searchMetadata));
$searchUrl = $dbxClient->createShareableLink("/Soemarko.png");
$link = "link.json";
file_put_contents($link, json_encode($searchUrl));

?>
</pre>
</html>

我有一个表格,可以在不同的文件中重定向到那里。。

<form action="search.php" method="POST"> 
<input type="text" name="query"/>
<input type="Submit" value="Submit">
</form>

有人能帮我在浏览器中运行search.php吗?它目前只显示空白页。。

甚至我也试着添加

header(Location: 'display.php')

被忽略,并在search.php 中继续显示空白页

某些代码可以在CGI或CLI中运行而不能在另一个中运行的唯一区别是,系统上安装的每个版本的php都有不同的php.ini。例如,我知道我们的CentOS服务器有两个PHP文件夹、一个CLI和一个APACHE/HTTP,它们都有不同的配置。

我建议你运行

phpinfo()

在web one上,查看加载的模块和PHP的版本。然后,从命令行中,使用以下命令运行CLI版本:

php -v
php -m

并比较版本和模块列表。

您可能会发现json模块没有安装在不工作的模块中,这就是它失败的原因!