sridhard
sridhard

Reputation: 129

PHP include_once works in local but call in cron not working

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

Answers (2)

Rikal
Rikal

Reputation: 225

This will create an absolute path, but relative to the file

include_once dirname(__FILE__) . '/../'.project_name.'/references/library.php';

Upvotes: 2

TreblaB
TreblaB

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

Related Questions