gpt4 book ai didi

php - CLI 包括通过 cron 运行 zend 框架的路径

转载 作者:搜寻专家 更新时间:2023-10-31 21:18:41 24 4
gpt4 key购买 nike

我使用 Zend Framework 编写了一个命令行实用程序来执行一些夜间报告。它使用大量与随附网站相同的功能。当我手动运行它时效果很好,但是当我在 cron 上运行它时我遇到了包含路径问题。似乎应该可以使用 set_include_path 轻松修复它,但也许我遗漏了什么?

我的目录结构是这样的:

/var/www/clientname/
application
Globals.php
commandline
commandline_bootstrap.php
public_html
public_bootstrap.php
library
Zend

在 public_bootstrap.php 中,我使用 set_include_path 没有问题,相对于当前目录:

set_include_path('../library' . PATH_SEPARATOR . get_include_path());  

如果我理解正确,在 commandline_bootstrap.php 中我需要输入绝对路径,这样 cron 就知道所有内容在哪里。我的文件是这样开始的:

error_reporting(E_ALL);
set_include_path('/var/www/clientname/library' . PATH_SEPARATOR . get_include_path());
require_once "../application/Globals.php";

但是当我通过 cron 运行它时,出现以下错误:

PHP Fatal error: require_once(): Failed opening required '../application/Globals.php' (include_path='/var/www/clientname/library/') in /var/www/clientname/commandline/zfcli.php on line 11

我认为 PHP 正在接受我的新路径,因为当我运行它的命令行并转储 phpinfo 时,我可以看到:

include_path => /var/www/clientname/library/:.:/usr/share/pear:/usr/share/php => .:/usr/share/pear:/usr/share/php

我承认这里的语法看起来有点奇怪,但我不知道如何修复它。任何建议将不胜感激。

谢谢夏天

最佳答案

ZFPlanet 查看 Pádraic 对 zf-cli 的方法.

这是我用来从 shell 执行 php 文件的一个小 shell 脚本,所以我确定 cwd 是什么:

#!/usr/bin/env php
<?php
chdir(dirname(__FILE__));
include('doctrine-cli.php');

还有 a bug in the autoloader's isReadable() 1.10.4 之前,尝试升级。

关于php - CLI 包括通过 cron 运行 zend 框架的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2723261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com