簡體   English   中英

從命令行Linux運行php

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM