php-cli require_once()在ubuntu上失败可以在mac

时间:2016-11-09 22:40:36

标签: php ubuntu

我正在使用voip.ms php api我想从cli运行一个php脚本,它在我的终端上的Mac上运行正常,但是在ubuntu服务器上它失败了......

脚本:

<?php
require_once("class.voipms.php");
$voipms = new VoIPms();
...

class.voipms.php的开头

<?
class VoIPms{
...

错误

首先从class.voipms.php吐出2000多行然后

PHP Fatal error:  Class 'VoIPms' not found in /root/voipreg/check.php on line 3

显然这个类在class.voipms.php中,并且脚本可以找到class.voipms.php,因为它被打印到cli,并且我的mac上的终端一切正常,所以我很困惑!

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:3)

在Ubuntu系统上可能禁用了PHP短标记(仅<?与完整标记<?php)。我建议不要使用短标签,因为它们没有像全标签那样在任何地方启用。如果未启用,您将获得您所描述的内容。 PHP无法将该文件识别为代码,只是将其作为文本吐出。

虽然您可以在php.ini中启用短标签,但我建议您不要使用它。你不能依赖它在任何地方启用它并不是很难只输出完整的东西。即使禁用了短标签,您仍然可以暂时使用短回声标记<?=

答案 1 :(得分:0)

无法找到指定的类文件。指定文件的方式是,它期望它在运行此脚本的同一目录中,或者PHP中的某个目录包含路径。

如果类文件与此脚本不在同一目录中,则可能在不同环境中配置了不同的包含路径。