2015-10-04 28 views
0

我的腳本文件路徑是phpsec庫路徑不是從cron作業工作

/var/www/html/MyProject/index.php 

當我運行該腳本

~/./Myproject$ php index.php其運行完美

當我運行腳本

~$ php /var/www/html/MyProject/index.php 

它不讀取phpseclib文件路徑

我的index.php文件是

<?php 

include("crud.php"); 
include("functions.php"); 

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib'); 
include('Net/SFTP.php'); 

... 

?> 

錯誤:

PHP Warning: include(Net/SFTP.php): failed to open stream: No such file or directory in /var/www/html/MyProject/index.php on line 6 
PHP Warning: include(): Failed opening 'Net/SFTP.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear.:/usr/share/php:/usr/share/pear/phpseclib') in /var/www/html/MyProject/index.php on line 6 
PHP Fatal error: Class 'Net_SFTP' not found in /var/www/html/MyProject/index.php on line 186 

如何運行PHP腳本的形式cron作業?

+0

你在錯誤日誌中看到了什麼錯誤?我非常確定你的問題是你包含了具有相對路徑的文件(include(「crud.php」);)並且當你從另一個文件夾運行腳本時,它看不到你包含的文件。如果這真的是問題,那麼錯誤日誌將會有關於無法找到包含的錯誤。 – enkrates

+0

EDITED的問題,crud和functions.php工作正常,phpseclib在/ MyProject /文件夾 – atjoshi

回答

2

從錯誤消息中,您可以看到phpseclib未正確添加到包含路徑中。試試這個爲通過set_include_path代替:

set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . DIRECTORY_SEPARATOR . 'phpspeclib'); 

__DIR__會考慮到你執行,而不是試圖找到phpspeclib相對於當前的工作目錄中的文件的位置。