PHP 文件由浏览器下载,而不是由本地开发服务器 (MAMP) 处理

2022-08-30 23:08:28

一切都很顺利,直到我添加到本地服务器文档根目录中的.htaccess文件(我经常更改,具体取决于我正在使用的网站)。由于我在访问 http://localhost:8888 时这样做,因此我的浏览器只是下载索引.php并且根本不处理它,只是原始代码。现在我从.htaccess文件中删除了该行,但我仍然遇到这个问题AddHandler application/x-httpd-php5s .php

我发现,如果我在127.0.0.1的hosts文件中添加一个替代条目,则新条目的行为类似于“localhost”。但是,如果我将上面的行添加到我的.htaccess中,它也会击倒新主机。我尝试重新安装MAP并清除其缓存和我能找到的所有临时文件。我浏览了Apache的httpd.conf文件,但无济于事。

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

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

需要明确的是,我在Mac OS Leopard上(但我没有使用内置的Apache设置,而是MAMP)。


答案 1

我遇到过几次类似的问题,重命名文件对我不起作用。使用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

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


答案 2

您正在应用处理程序应有的位置的 mimetype(请参阅有关处理程序的文档)

请尝试以下操作:

AddType application/x-httpd-php5 .php

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


推荐