我有一个脚本可以在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";
?>
答案 0 :(得分:0)
您没有配置必要的路径,为什么不尝试更简单的方法。 您可以在crontab中执行以下操作:
*/1 * * * * cd <path_to_your_script> & php <script_name>.php
我只使用* / 1 * * * *作为示例。
<path_to_your_script>
是通过控制台成功执行脚本的目录的路径。
如果仍然无法解决您的问题,请在您的php脚本中尝试:
#!/usr/local/bin/php
<?php
.......