当前位置: 首页 > 面试题库 >

相对路径在cron PHP脚本中不起作用

胡鸿远
2023-03-14
问题内容

如果将PHP脚本作为cron脚本运行,则如果使用相对路径,则include常常会失败。例如,如果您有

require_once('foo.php');

在命令行上运行时会找到文件foo.php,但从cron脚本运行时找不到。

一个典型的解决方法是先chdir到工作目录,或使用绝对路径。但是,我想知道导致此行为的cron和shell之间的区别是什么。在cron脚本中使用相对路径时,为什么会失败?


问题答案:

从cron运行时,脚本的工作目录可能不同。另外,关于PHPs require()和include()的理解有些混乱,这引起了关于工作目录确实是问题的困惑:

include('foo.php') // searches for foo.php in the same directory as the current script
include('./foo.php') // searches for foo.php in the current working directory
include('foo/bar.php') // searches for foo/bar.php, relative to the directory of the current script
include('../bar.php') // searches for bar.php, in the parent directory of the current working directory


 类似资料:
  • 问题内容: 我有以下结构 include.php文件具有以下内容 在index.php页面中,我包括了 当我打开页面index.php时,出现以下警告和致命错误。我不明白是什么原因导致此错误。当我给出绝对路径时,它可以工作。但是我相信绝对的路线不是一个好主意。 提前致谢 问题答案: 采用 获取脚本的当前路径,这应该可以解决您的问题。 所以: 这样可以防止您可以从其他文件夹运行PHP脚本的情况,因此

  • 这是我自己的USB驱动器上的程序文件夹: 我想使用启动 我不能使用这个:

  • 我正试图使用MacOS“scheduler”执行一些Java代码。 我的plist文件: 剧本上海: 问题是,我在程序中的所有相对路径(资源路径、属性、日志位置、Springbean文件等)都失败了。 plist文件位于根文件夹下,因此我假设所有路径都是相对于执行器位置的。

  • 问题内容: 首先,这个问题与 Oracle SQL Developer 3.2有关 ,与SQL * Plus或iSQL等无关。我做了很多搜索,但没有找到直接的答案。 我有几个试图自动化的脚本集合(顺便说一句,我的SQL经验很基础,而且大多基于MS)。我遇到的麻烦是通过相对路径执行它们。例如,假设此设置: 我想要一个类似这样的文件: 脚本/A/runAll.sql: 我收集的where表示SQL *

  • 我有一个简单的JavaFX项目。它包括: src/app/main.java src/app/controller/maincontroller.java src/app/controller/secondarywindowcontroller.java src/app/view/main.fxml src/app/view/secondarywindow.fxml 控制器MainControll

  • 我有以下目录结构 现在工具/test.py有一些测试代码,基本上是使用相对路径导入MotorController.py,如下所示 工具/test.py...控制器。电机控制器。MotorController导入* 这会导致一个错误,即不能在非包上使用相对路径。移动测试。py到根目录解决了这个问题,但是我真的希望我的脚本位于Tools目录中。我该怎么做?。 这是一个相关的问题;假设我做了一个包裹。汽