PHP 通过 cron 的脚本找不到代码中调用的文件

PHP script via cron is not finding files called in the code

我想要 运行 php 位于服务器上的脚本:

/var/www/my_directory/myfile.php

脚本执行一个使用位于以下位置的证书文件的函数:

/var/www/my_directory/my_cert_dir/cert_file.pem

在 PHP 脚本中它们看起来像这样:

$key="my_cert_dir/cert_file.pem";

我也试过添加$_SERVER["DOCUMENT_ROOT"]:

$key=$_SERVER["DOCUMENT_ROOT"]."/my_cert_dir/cert_file.pem";

在这两种情况下,我的证书文件都显示“找不到文件”。 但是,当 运行 通过 CLI 或浏览器时,它们执行时没有问题。

首先我是这样使用cron的:

13 19 * * * /usr/bin/php /var/www/my_directory/myfile.php >> /var/www/my_directory/my_logs_dir/some_log.txt

cron 执行了脚本但出现了错误,所以我尝试将 cron 更改为从这样的目录执行:

13 19 * * * cd /var/www/my_directory; /usr/bin/php myfile.php >> /var/www/my_directory/my_logs_dir/some_log.txt

然而这次我没有看到脚本执行并且我的日志没有创建。

有什么想法可以解决我的问题,以便执行脚本并找到证书文件吗?

为什么不试试完整路径:

$key="/var/www/my_directory/my_cert_dir/cert_file.pem"