2015-10-04 70 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相对于当前的工作目录中的文件的位置。