16

一切都很顺利,直到我添加AddHandler application/x-httpd-php5s .php到本地服务器文档根目录中的 .htaccess 文件(根据我正在使用的站点,我经常更改该文件)。因为我在访问http://localhost:8888时这样做了,所以我的浏览器只下载了 index.php,它根本没有被处理,只是原始代码。现在我从 .htaccess 文件中删除了该行,但我仍然遇到这个问题

我发现,如果我为 127.0.0.1 的主机文件添加一个替代条目,则新条目的行为就像过去的“本地主机”一样。但是,如果我将上面的行添加到我的 .htaccess 中,它也会淘汰那个新主机。我尝试重新安装MAMP并清除它的缓存和我能找到的所有临时文件。我浏览了 Apache 的 httpd.conf 文件都无济于事。

所以,要明确一点:http://localhost:8888遇到了上述问题。如果我为 127.0.0.1 向我的主机文件添加一个新条目,例如“goomba”,并且上面的行不在根 .htaccess 中(并且从未用于该主机/别名/任何内容),那么我可以访问http:/ /goomba:8888就好了。但是,如果我确实将该行添加到 .htaccess 中,那么即使我从 .htaccess 文件中删除该行,我也必须在我的 hosts 文件中添加另一个条目以绕过它。

我可以使用不同的 127.0.0.1 别名(主机?这叫什么?)但它仍然让我烦恼。

为了清楚起见,我在 Mac OS Leopard 上(但我没有使用内置的 Apache 设置,而是 MAMP)。

4

12 回答 12

16

我有几次类似的问题,重命名文件对我不起作用。使用 OS X Lion,我发现正确的配置是这样的:

<IfModule php5_module>
    AddType application/x-httpd-php .php
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.php index.html
    </IfModule>
</IfModule>

让它为我工作的魔力是它的SetHandler application/x-httpd-php一部分。

当然编辑<IfModule php5_module>到您的 php 版本。

于 2012-05-07T21:37:57.890 回答
6

您正在应用一个处理程序应该位于的 mimetype(请参阅有关处理程序的文档

试试这个:

AddType application/x-httpd-php5 .php

编辑:正如您已指示缓存模块已加载,您可以阅读缓存htcacheclean(以清除磁盘缓存)。您也可以临时使用CacheDisable指令。您还可以尝试的另一件事是重命名您请求的文件(例如 index.php -> index.bak),在浏览器中再次请求该文件(现在应该是 404),然后恢复并重试。

于 2010-02-23T13:22:08.130 回答
4

请注意,请确保您的实时环境中没有与其他文件一起意外下载的 htaccess 文件。此外,请确保在编辑 htaccess 时匹配您的 PHP 版本。错误的版本会导致相同的问题错误设置。

下面是一个运行 PHP7 的示例:

应用程序/x-httpd-ea-php71 .php .php7 .phtml

我希望这些信息能有所帮助 - 它发生在我创建票 8 年后 :)

于 2018-10-04T20:30:31.700 回答
2

也许你想要application/x-httpd-php5而不是application/x-httpd-php5s? s(注意末尾缺少一个。)

于 2010-02-23T08:23:17.763 回答
2

在我的情况下,删除或注释掉我的根目录中涉及的 htacces 文件中的“AddHandler php56-cgi .php”解决了它

最好的

于 2017-04-12T18:39:55.167 回答
2

如果有人再次遇到这种问题,请先做一些最重要的事情。我的意思是,使用私人导航(没有缓存)。我因此浪费了时间。

GLHF

于 2019-06-07T05:38:30.993 回答
1

对于同样的问题,我删除了 '5' AddType application/x-httpd-php .php .htm .html

它工作正常!尝试

于 2011-10-04T01:05:38.887 回答
0

首先检查您的 apache 服务器是否正在运行。开始->运行->cmd,然后执行命令:

网络统计 -abn

查找如下行的结果:

TCP 0.0.0.0:8888 0.0.0.0:0 监听 600 [apache.exe]

如果您在端口 8888 上找不到任何监听(没有 0.0.0.0:8888 行),那么您的 apache 无法启动。要找出它无法启动的原因,您应该找到 apache 日志目录并检查 error.log(可能是您最近更新了 php?)。如果你发现 0.0.0.0:80 监听线路但其他一些软件正在那里监听(你有运行 IIS 吗?)那么你应该删除/重新配置该软件以释放端口 80。如果你有 apache 在端口 80 上监听但仍然无法打开您的网站,您无法通过检查 apache 日志文件找出导致问题的原因,那么它就是数据库问题。检查您的 mysql 是否正在运行并使用相同的命令进行侦听,但您应该寻找

TCP 0.0.0.0:3306 0.0.0.0:0 监听 [mysqld-nt.exe]

如果你找不到这样的行,那么你的 mysql 服务器没有运行 - 检查 mysql 日志文件是否有错误。如果两台服务器都在运行并且您无法在浏览器中获得任何输出,请检查您的防火墙和防病毒软件 - 它们可能会阻止您的请求。希望这可以帮助 ;)

于 2010-02-23T08:19:17.063 回答
0

我实际上有一个非常相似的问题。当我尝试测试 php 和 apache 是否一起工作时,我所有的 php 文件都在下载。原来他们没有一起工作。

我必须卸载 php,我会推荐相同的操作过程,然后仅使用 php.net 上下载的 zip 文件重新安装 php,而不是使用 MAMP 安装它。我认为我的问题是我使用了 php 安装程序。我不建议使用它。

这个网站对我帮助很大,我遇到了 apache 无法启动的问题,虽然这不是你的问题,但这个网站解决了 apache 无法启动和下载 php 文件的问题,即使你在 Mac 上也可能会有所帮助你也是http://forums.phpfreaks.com/topic/185771-problem-starting-apache-2214-after-installing-php-5212

希望一切正常!祝你好运!

于 2013-06-06T18:45:28.693 回答
0

我遇到了同样的问题,这是因为在此文件夹中,您隐藏了一些自定义代码的 .htaccess 文件,对我来说是因为我从正在运行的网站服务器复制。尝试重命名文件,您将看到您的项目。然后根据您的需要自定义文件。

于 2020-04-16T19:14:05.883 回答
0

只需删除评论

<IfDefine PHP>
   LoadModule php_module        modules/libphp.so
</IfDefine>

在 etc/extra/httpd-xampp.conf

于 2021-04-13T04:45:54.480 回答
0

就我而言,在克隆了一个 repo 并尝试设置项目后,我不得不运行 composer update以安装所有依赖项,然后它打开页面而不是下载文件

于 2021-11-04T10:15:14.830 回答