我正在使用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上的终端一切正常,所以我很困惑!
任何帮助都会很棒!
答案 0 :(得分:3)
在Ubuntu系统上可能禁用了PHP短标记(仅<?
与完整标记<?php
)。我建议不要使用短标签,因为它们没有像全标签那样在任何地方启用。如果未启用,您将获得您所描述的内容。 PHP无法将该文件识别为代码,只是将其作为文本吐出。
虽然您可以在php.ini中启用短标签,但我建议您不要使用它。你不能依赖它在任何地方启用它并不是很难只输出完整的东西。即使禁用了短标签,您仍然可以暂时使用短回声标记<?=
。
答案 1 :(得分:0)
无法找到指定的类文件。指定文件的方式是,它期望它在运行此脚本的同一目录中,或者PHP中的某个目录包含路径。
如果类文件与此脚本不在同一目录中,则可能在不同环境中配置了不同的包含路径。