0

我正在尝试在 Ubuntu 服务器上从命令行运行一个 php 文件(我想最终将其放入 cron 作业中)。输入命令时似乎没有任何反应。我试过了:

php -f foo.php

php foo.php

我已经安装了 cli 并且 foo.php 设置为可执行文件。

该脚本应该测试它是否仍然可以访问数据库并通过电子邮件发送结果。从网络浏览器访问时它工作正常。

知道我做错了什么吗?

编辑:

php -v 的输出

Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Suhosin v0.9.33, Copyright (c) 2007-2012, by SektionEins GmbH

编辑:脚本:

    <?php


require_once __DIR__.'/../Classes/DBConnection.php';
require_once __DIR__.'/../Classes/Mail.php';

$dbSlave = DBConnection::getSlaveDB();
$db = DBConnection::getDB();

$unique = uniqid();
try{
    $query = 'INSERT INTO tblzzTestSlave (token) VALUES (:token)';
    $statement = $db->prepare($query);
    $statement->bindValue(':token', $unique);
    $statement->execute();

    $slaveQuery = "SELECT id FROM tblzzTestSlave WHERE token=:token";
    $slave = $dbSlave->prepare($slaveQuery);
    $slave->bindValue(':token', $unique);
    $slave->execute();
    $result = $slave->fetch();

}catch (Exception $e){
    $result = null;

}

if(!$result){
    Mail::smtpMailer('email', 'email', 'from','Slave Not Working', 'The Slave has stopped       working');
}
4

2 回答 2

0

您可以检查 PHP 是否使用了正确的配置文件。

这在命令行和在服务器环境中运行可能会有所不同。

键入此以查看它使用的配置:

php --ini
于 2013-03-14T16:09:16.907 回答
0

我真蠢啊。这一行:

require_once __DIR__.'/../Classes/Mail.php';

邮件需要另一个试图检查会话 cookie 的文件。当然我没有,因为我是从命令行运行它的。这就是它在浏览器中工作的原因(我已登录)。当没有会话 cookie 时,它​​会尝试将我重定向到登录页面,这显然不适用于 CL。

于 2013-03-16T19:54:43.113 回答