我有一个脚本,它驱动Suite CRM中的一些东西,我可以轻松地从命令行运行,只需键入php script.php。
但是,当我使用cron运行它时,在
行之后失败了echo "Defined sugarEntry'n";
我也试过在require语句中硬编码路径,也试过require_once。
我还在/etc/php.ini中设置了相关的包含路径,这是在cron中使用的php。我还遗漏了什么吗?
<?php
//Don't forget to set the include path in /etc/php.ini
echo "Start 'n";
set_include_path(get_include_path() . PATH_SEPARATOR . $full_path);
echo "Include path set to " . get_include_path()."'n";
//error_reporting(E_ERROR);
if(!defined('sugarEntry'))
define('sugarEntry', true);
echo "Defined sugarEntry'n";
require( 'include/entryPoint.php');
echo "Entry point included'n";
require( 'custom/modules/Accounts/controller.php');
echo "Include file set'n";
$controller = new AccountsController();
echo "AccountsController initialised'n";
//$controller->debug = true;
//Loop through all the Accounts records that are a customer
$controller->sync_all_crm_to_smb();
echo "Finished'n";
?>
与其配置必要的路径,不如尝试用一种更简单的方法。您可以在crontab中执行以下操作:
*/1 * * * * cd <path_to_your_script> & php <script_name>.php
我使用*/1 * * * *只是为了这个例子。
<path_to_your_script>
是通过控制台成功执行脚本的目录的路径。
如果这仍然不能解决你的问题,试试在你的php脚本:
#!/usr/local/bin/php
<?php
.......