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

通过cron的PHP脚本找不到代码中调用的文件,cron,cron-task,Cron,Cron Task,我想运行位于以下位置的服务器上的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"; 13 19 * * * /usr/bin/php /var/www/my_directory/myfile.php &

我想运行位于以下位置的服务器上的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";
13 19 * * * /usr/bin/php /var/www/my_directory/myfile.php >> /var/www/my_directory/my_logs_dir/some_log.txt
13 19 * * * cd /var/www/my_directory; /usr/bin/php myfile.php >> /var/www/my_directory/my_logs_dir/some_log.txt
我还尝试添加
$\u服务器[“DOCUMENT\u ROOT”]

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

首先,我像这样使用cron:

$key="my_cert_dir/cert_file.pem";
13 19 * * * /usr/bin/php /var/www/my_directory/myfile.php >> /var/www/my_directory/my_logs_dir/some_log.txt
13 19 * * * cd /var/www/my_directory; /usr/bin/php myfile.php >> /var/www/my_directory/my_logs_dir/some_log.txt
cron执行了脚本,我遇到了错误,所以我尝试将cron更改为从目录执行,如下所示:

$key="my_cert_dir/cert_file.pem";
13 19 * * * /usr/bin/php /var/www/my_directory/myfile.php >> /var/www/my_directory/my_logs_dir/some_log.txt
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\u directory/my\u cert\u dir/cert\u file.pem”

为什么不尝试完整路径
$key=“/var/www/my\u directory/my\u cert\u dir/cert\u file.pem”在php脚本中?@Roadowl感谢您简单有效地处理了我的案例。如果你写一个答案,我会将你标记为解决方案:)