[英]PHP : chdir('../') not working from command line
我正在开发一个PHP cron脚本,以检查服务器是否已启动(Ping)。
这是我的代码:
// Remonte d'un dossier
chdir('../');
// Inclusion du header pour avoir les infos de connexion à la db, fonctions, etc ...
require_once('./includes/header.php');
// Requête pour récupérer toutes les IP à pinger (Non-exclues donc)
$sReqGetAllServers = " SELECT
*
FROM
host
WHERE
exclude_machine = :exclude_machine";
// Préparation de la requête
$oDatabase->Prepare($sReqGetAllServers);
// On bind la valeur au paramètre dans le WHERE
$oDatabase->BindValue(':exclude_machine', 'n', PDO::PARAM_STR);
// Exécution de la requête
$oDatabase->Execute();
// On associe les données dans un tableau à deux dimensions associatif
$aServers = $oDatabase->Assoc();
因此,在第一行中,我需要创建一个chdir('../');
包括必要的文件( header.php
)。
我使用Chrome浏览器测试了脚本,并且一切正常,但是当我使用命令行执行脚本时,PHP删除了此错误:
[14:40] root@dev.company.local / >> php -f /web/dev/company/public_html/dasPing/cron/cron.php
PHP Warning: require_once(./includes/header.php): failed to open stream: No such file or directory in /var/www/html/dev/diadeis/public_html/dasPing/cron/cron.php on line 7
Warning: require_once(./includes/header.php): failed to open stream: No such file or directory in /var/www/html/dev/diadeis/public_html/dasPing/cron/cron.php on line 7
PHP Fatal error: require_once(): Failed opening required './includes/header.php' (include_path='/usr/share/php') in /var/www/html/dev/diadeis/public_html/dasPing/cron/cron.php on line 7
Fatal error: require_once(): Failed opening required './includes/header.php' (include_path='/usr/share/php') in /var/www/html/dev/diadeis/public_html/dasPing/cron/cron.php on line 7
我搜索了为什么PHP删除了此内容,但找不到任何答案。
有人知道为什么会这样吗?
谢谢 !!
当前工作目录将是您从中执行脚本的位置,而不是脚本所在的位置。 您可以使用常量__DIR__
获得包含脚本的目录。
chdir(__DIR__ . '/../');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.