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 标头 - 可能是浏览器无法识别的内容。

【讨论】:

感谢重播,能否请您多谈谈您的建议?在页面的源代码中我只有这个: 但我想你还有别的想法? 您需要使用 Firebug(或类似工具)来检查服务器与请求一起发送的“Content-Type”标头 - 这不会显示在页面中。见en.wikipedia.org/wiki/List_of_HTTP_headers#Responses 和php.net/manual/en/function.header.php【参考方案3】:

是的,我不记得 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”

Symfony 4 服务器配置期间出现错误 AH00124

Symfony 5:/lucky/number 应用程序的 404 页面