我最近从源代码构建了 XHP 1.5,并将其安装在现有的 Web 服务器上。Web 服务器运行 PHP 5.4.32,Apache 2.2.15 使用 mod_php(不是 fastcgi)调用 PHP,CentOS 6.5。我们所有现有的 PHP 代码(不依赖于新的 XHP 语法)仍然运行良好,包括其他扩展,如 Imagick、curl 和 JSON。
使用基于XHP 安装测试的测试文件:
<?php
echo "XHP!\n";
exit;
echo <a/>;
?>
从命令行运行时,这可以按预期工作。(它打印 XHP! 然后退出。不会导致解析器失败,但也不会显示,因为我们没有加载依赖项。)
当我通过 Apache 获取此脚本时,出现错误
Parse error: syntax error, unexpected '<' in /var/www/html/bloom/play.php on line 4
通过 Apache 获取 phpinfo() 表明 XHP 已加载,通过 Apache 的 extension_loaded("xhp") 返回 true。
什么可能导致 XHP 从命令行工作,但在通过 Apache 运行时无法工作(甚至无法解析)?