我有一个XAMPP的安装和一个基于Zend Framework构建的应用程序,它在普通的apache2 + php5环境中运行。应用程序驻留在正确配置的虚拟主机内部,作为预防措施,我还添加了.phtml文件以匹配php编译器
<FilesMatch "\.php$|\.php5$|\.php4$|\.php3$|\.phtml$|\.phpt$">
SetHandler application/x-httpd-php
</FilesMatch>
当我访问应用程序的任何页面时,我得到在浏览器中呈现的PHP代码而不是呈现的html。 PHP文件是经过编译的,因此在渲染之前的任何地方都可以按照预期的方式运行die('aaa')。但是当Zend_View在方法_run()中包含脚本文件时,所有内容都会以文本的形式输出到浏览器。
我在测试目录中使用普通的index.phtml文件进行测试,它就像一个php文件。它由php.exe解释,但是当zend包含视图脚本时,我无法弄清楚发生了什么。
有人可以提供帮助吗?
答案 0 :(得分:11)
我发现问题出在哪里,经过3个小时......我不敢相信它花了我那么久,但问题是配置不允许php_short_tag,这是处理模板时的一个很棒的功能。
我在php.ini中启用了短标记并重新启动了apache:
short_open_tag = On
我在这里发布了答案,因为有一天有人可能会遇到我的问题。
答案 1 :(得分:3)
我认为你不必在vhost中创建该指令。默认的xampp安装将为php注册phtml文件。 XAMPP默认传递给PHP的扩展名为:.php .php5 .php4 .php3 .phtml .phpt
检查此配置文件c:/ xampp / apache / conf / extra / httpd-xammp
我有这条线
PHPINIDir "C:/xampp/php"
LoadModule php5_module "C:/xampp/apache/bin/php5apache2_2.dll"
AddType text/html .php .phps .php5 .php4 .php3 .phtml .phpt