Reputation: 129
I use include_once to include file in php it will works in localhost but same file run using cron it shows error
File name : cron_all.php
<?php
define('project_name','/cloud');
include_once($_SERVER['DOCUMENT_ROOT'].project_name."/references/library.php");
?>
error:
[root@xx-xxx-xx~]# php /var/www/html/cloud/cloud_ip_automation/cron_all.php
PHP Warning: include_once(/cloud/references/library.php): failed to open stream: No such file or directory in /var/www/html/cloud/cloud_ip_automation/cron_all.php on line 3
Warning: include_once(/cloud/references/library.php): failed to open stream: No such file or directory in /var/www/html/cloud/cloud_ip_automation/cron_all.php on line 3
PHP Warning: include_once(): Failed opening '/cloud/references/library.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/cloud/cloud_ip_automation/cron_all.php on line 3
Warning: include_once(): Failed opening '/cloud/references/library.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/cloud/cloud_ip_automation/cron_all.php on line 3
Upvotes: 3
Views: 1419
Reputation: 225
This will create an absolute path, but relative to the file
include_once dirname(__FILE__) . '/../'.project_name.'/references/library.php';
Upvotes: 2
Reputation: 76
The $_SERVER variable is not set when running from CLI.
You have to use dirname(__FILE__)
and make the paths relative to the current file.
For example in your case, something like:
include_once(dirname(__FILE__).'/../'.project_name.'/references/library.php');
Upvotes: 6