php symfony 和 apache2 - 不提供 .phtml
Posted
技术标签:
【中文标题】php symfony 和 apache2 - 不提供 .phtml【英文标题】:php symfony and apache2 - inst't serving .phtml 【发布时间】:2011-01-28 12:47:13 【问题描述】:我的 apache2 设置有问题(Ubuntu 系统)。 我想在我的本地主机上运行 symfony 项目,但浏览器不提供 .phtml 文件,而是尝试下载文件。
alt text http://www.freeimagehosting.net/uploads/ba9be708fc.gif
这是我的文件 .host:
127.0.0.3 测试
这是 apache2/sites-available/默认文件
ServerName 测试 DocumentRoot "/home/m/Pr/workspace/php/test/web"
DirectoryIndex frontend_dev.php
AllowOverride All Allow from All
别名/sf
/home/m/Pr/workspace/php/test/lib/vendor/symfony/data/web/sf
"/home/m/Pr/workspace/php/test/lib/vendor/symfony/data/web/sf">
AllowOverride All Allow from All </Directory>
这是 /test 中的 .htaccess
RewriteEngine On RewriteRule ^(.*)$
/web/$1 选项 +FollowSymLinks
+ExecCGI AddHandler application/x-httpd-php5 .php .phtml
这是 /test/web 中的 .htaccess
选项 +FollowSymLinks +ExecCGI
重写引擎开启
# 取消注释以下行,如果 你有困难#得到 no_script_name 工作 RewriteBase /
# 我们跳过所有带有 .something 的文件 #RewriteCond %REQUEST_URI ..+$ #RewriteCond %REQUEST_URI !.html$ #RewriteRule .* - [L]
# 我们检查 .html 版本是否为 这里(缓存)RewriteRule ^$ index.html [QSA] 重写规则 ^([^.]+)$ $1.html [QSA] RewriteCond %REQUEST_FILENAME !-f
# 不,所以我们重定向到我们的前面 Web 控制器 RewriteRule ^(.*)$ index.php [QSA,L]
另一个问题是我认为 apache 不读取 .htaccess 文件。
我做错了什么?也许我忘记了什么?请帮帮我,因为我不知道。
【问题讨论】:
【参考方案1】:您需要在 Apache 配置中声明 AddType 指令 - 我不确定将其添加到 .htaccess 是否有效。
将此行添加到/etc/apache2/mods.enabled/php.conf
或/etc/apache2/httpd.conf
:
AddHandler application/x-httpd-php5 .php .phtml
重新启动 Apache 并重试。
【讨论】:
【参考方案2】:检查服务器为 .phtml 文件发送的 Content-Type 标头 - 可能是浏览器无法识别的内容。
【讨论】:
感谢重播,能否请您多谈谈您的建议?在页面的源代码中我只有这个:是的,我不记得 Apache 准备好提供开箱即用的 phtml 文件。
我认为您需要断言 Content-Type 被定义为 text/html 以便浏览器呈现文件。
【讨论】:
以上是关于php symfony 和 apache2 - 不提供 .phtml的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 2 Apache 2.4 php7 升级 Vhost 文件
Symfony 3.1.5 警告:SessionHandler::read():会话数据文件不是由您的 uid 创建的
Apache2 Vhost 不适用于 Symfony 2.8
更新到 php 7 后如何修复 symfony 1.4 错误“Empty response header name, aborting request”