Joomla PHP命令行脚本失败

时间:2015-10-27 17:08:11

标签: php joomla

我有一个在本地运行的命令行测试脚本,但是当我尝试通过ssl(使用Putty)在我的主机(Bluehost)上运行它时,它会失败,但不会抛出错误。

我已经检查了错误日志,没有任何迹象表明失败,我在那里打开了E_ALL错误。

在我的本地wamp服务器上运行正常并输出所有提示:

1. environment imported
2. About to execute!
3. Got instance
4. Success
5. Finished executing!

当我在我的主机上用腻子运行时,它只输出前两行。     1.环境进口     2.即将执行!

这是脚本(joomla 3.4.5):

<?php
// Initialize Joomla framework
const _JEXEC = 1;

error_reporting(E_ALL);

// Load system defines
if (file_exists(dirname(__DIR__) . '/defines.php'))
{
require_once dirname(__DIR__) . '/defines.php';
}

if (!defined('_JDEFINES'))
{
define('JPATH_BASE', dirname(__DIR__));
require_once JPATH_BASE . '/includes/defines.php';
}

// Get the framework.
require_once JPATH_LIBRARIES . '/import.legacy.php';

// Bootstrap the CMS libraries.
require_once JPATH_LIBRARIES . '/cms.php';

// Load the configuration
require_once JPATH_CONFIGURATION . '/configuration.php';

require_once JPATH_BASE . '/includes/framework.php';


echo "1. Environment imported\n";

class Test extends JApplicationCli
{
public function doExecute()
    {
         echo "4. Successful execution\n";
    }
}

echo "2. About to execute\n";

$test = JApplicationCli::getInstance('Test');
echo "3. Got instance\n";

$test->execute();
echo "5. Finished executing!\n";

?>

我尝试使用命令行的不同变体运行它:

php jwjtest.php
php54s -c ~/public_html/php.ini ~/public_html/cli/jwjtest.php

我还包围了使用'try'和'catch'执行'getInstance'的行,但没有捕获到错误。

欢迎任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

原来,从命令行我必须使用PHP的命令行版本。在蓝色主机上你必须通过使用php54-cli启动它(php-cli不起作用)..所以例如我的测试用例我跑了

php54-cli jwjtest.php

一切正常。

我不确定为什么只使用php作为命令不起作用(也许它运行错误版本的PHP?)但至少我现在有解决方案。 我从jo1la.stackexchange来自user1104799的回复中找到了正确的轨道