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

don*_*nut 14 php apache macos configuration mamp

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

我发现如果我在127.0.0.1的hosts文件中添加一个替代条目,那么新条目就像'localhost'一样.但是,如果我将上面的行添加到我的.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).

Mat*_*ary 14

我有几次类似的问题,重命名该文件对我不起作用.使用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>
Run Code Online (Sandbox Code Playgroud)

使它适用于我的魔力就是这个SetHandler application/x-httpd-php部分.

当然编辑<IfModule php5_module>你的PHP版本.

  • 应该放在哪里? (4认同)

Cez*_*Cez 5

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

尝试以下方法:

AddType application/x-httpd-php5 .php
Run Code Online (Sandbox Code Playgroud)

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