被修改
正如我猜测的那样,这是一个php版本问题:
从命令行:
php -v
...
PHP 5.2.17 (cli) (built: Mar 1 2012 16:36:14)
Copyright (c) 1997-2010 The PHP Group
...
网页中的phpinfo:
PHP Version 5.4.20
据我所知,我无法更改命令行版本的配置,因为它位于共享服务器(dreamhost,如果它可以帮助某人做出更好的响应)。
我真的需要使用我的php 5.3依赖库,从头开始复制一些进程会花费我很多天的工作,我必须在2周内开发它。
有人知道运行比命令行定义的更高版本的php的技巧吗?
我遇到了Cron Job的问题。
在我的项目中,几乎每个页面都包含一个包含该文件的文件 以下代码行:
.... $called_class = get_called_class(); $this->error_code = 0; $this->error_string = ""; if ( is_array($parametros) || is_object($parametros) ){ foreach ( $parametros as $key => $value ) { if (!$called_class::isValidKey ( $key ) && !$called_class::isExternalKey( $key ) ) continue; $this->$key = $value; } } ...
从未向我显示任何错误。
但是当我设置一个Cron作业来运行包含相同文件的脚本时, 它向我发送了以下信息给我的电子邮件:
解析错误:语法错误,意外的T_PAAMAYIM_NEKUDOTAYIM 第22行/xxx/xxx/xxx/modelo.php
这一行是指什么:
if (!$called_class::isValidKey ( $key ) && !$called_class::isExternalKey( $key ) )
我猜测在命令行中使用的php版本与 一个用于显示页面的服务,或者其他任何内容 调用。
如果有人能指出我的问题,我会感激,并建议我 解。顺便说一句,我知道我可以使用单独的文件 与cron的早期版本的PHP兼容的说明 工作,但我想避免这样做。
答案 0 :(得分:1)
问题可能是由于在错误的工作目录中运行脚本引起的,请尝试将crontab命令更改为:
cd path/to/script/directory && php script.php
答案 1 :(得分:1)
好的......似乎很容易让我觉得有点惭愧。
更改了命令:
的/ usr / local / bin中/ PHP的
的
的/ usr /本地/ php54 / bin中/ PHP的
这适用于我的dreamhost服务器,但在其他共享服务器中可能类似。 谢谢你的回答。