我试图在Ubuntu服务器上从命令行运行一个php文件(我想最终把它放在一个cron作业中)。当我输入命令时似乎没有发生任何事情。我试过了:
php -f foo.php
和
php foo.php
我安装了cli,foo.php设置为可执行文件。
该脚本应该测试它是否仍然可以访问数据库并通过电子邮件发送结果。从Web浏览器访问它时工作正常。
对我做错了什么的想法?
编辑:
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');
}
答案 0 :(得分:0)
您可以检查PHP是否使用正确的配置文件。
在命令行上可能会有所不同,并且在服务器环境中运行。
输入以查看它使用的配置:
php --ini
答案 1 :(得分:0)
require_once __DIR__.'/../Classes/Mail.php';
Mail需要另一个尝试检查会话cookie的文件。当然我没有,因为我是从命令行运行它。这就是它在浏览器中工作的原因(我已登录)。如果没有会话cookie,它会尝试将我重定向到登录页面,这显然不适用于CL。