[英]Run php from the command line linux
我正在嘗試在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');
}
您可以檢查PHP是否使用正確的配置文件。
這在命令行上和在服務器環境中運行可能有所不同。
輸入以下內容以查看其使用的配置:
php --ini
我真蠢啊。 這行:
require_once __DIR__.'/../Classes/Mail.php';
郵件需要另一個文件,該文件試圖檢查會話cookie。 當然沒有,因為我是從命令行運行它的。 這就是為什么它在瀏覽器中有效的原因(我已登錄)。 如果沒有會話cookie,它將嘗試將我重定向到登錄頁面,該頁面顯然在CL中不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.