PHP文件下载而不是打开

3
我有一台Windows 7笔记本电脑。我下载了PHP 5.2.8和Apache 2.2。
我运行了PHP安装的MSI,我知道这不被推荐,但我尝试了多次常规路线都没有成功。
我已经启动了Apache并显示“正在运行所有Apache服务”。在安装时,我将其设置为“localhost”。
我在我的控制面板中勾选了CGI复选框。
我将一个简单的文件test.php放置在C:\inetpub\wwwroot中……但是当双击该文件时,它会尝试下载该文件而不是作为网页打开。
我已经谷歌搜索了几个小时,找不到合适的解决方法。我清除了缓存,但仍然没有运气。
我还将apache设置为监听端口8080,只是为了确保之前没有使用80端口的其他东西。
有任何想法吗?
谢谢!
更新-我丢失了php5apache2.dll......我将其放入PHP目录,但结果仍相同。我还尝试通过IE浏览到文件位置,但不幸的是,并没有改变任何东西。
再次更新-我没有意识到是localhost/test.php或下面的答案是什么。当我这样做时,我得到一个服务器错误页面..至少比以前好 :)
Server Error in Application "DEFAULT WEB SITE"

HTTP Error 500.0 - Internal Server Error

An unknown FastCGI error occured

Module FastCgiModule 

Notification ExecuteRequestHandler 

Handler PHP 

Error Code 0x8007010b 

Requested URL http://localhost:80/test.php

Physical Path C:\inetpub\wwwroot\test.php 

Logon Method Anonymous 

Logon User Anonymous 

可能的原因:

•IIS收到了请求,但在处理请求时发生了内部错误。此错误的根本原因取决于哪个模块处理了请求以及发生此错误时工作进程中正在发生什么。

•IIS无法访问Web站点或应用程序的web.config文件。如果NTFS权限设置不正确,则可能会发生这种情况。

•IIS无法处理Web站点或应用程序的配置。

•经过身份验证的用户没有使用此DLL的权限。

•该请求被映射到托管处理程序,但未安装.NET可扩展性功能。

当我尝试启动/运行Apache时,它出现错误。因此,当我运行Apache测试配置时,我会收到以下消息: httpd.exe:C:/Apache/conf/httpd.conf第1行语法错误:无法将C:/php/php5apache2_2.dll加载到服务器中:找不到指定的模块。

然而,当我浏览到该目录时,我确实看到了那个dll文件!嗯...

有什么想法吗?


你能确认Apache的配置文件是否有指令来处理使用php模块的.php文件吗?请尝试按照这里的说明(http://www.php.net/manual/en/install.windows.apache2.php)运行php作为apache处理程序。另外,你说当文件被双击时会提示下载。你需要通过浏览器访问该文件以使php执行它。 - drew010
你必须导航到页面,例如http://localhost/,而不是双击。 - Mob
当我打开IE并输入路径C:/inetpub...等等...myFile.php时,它做的是相同的事情,只是试图下载文件。但我可能已经找到了问题,php5apache2.dll被提到了一些,但我在我的php文件夹目录中没有这个文件。所以我正在浏览互联网,试图找到获取此文件的地方。 - Adam
好的,我下載了那個檔案並將其放置在我的php文件夾中,但是當我使用IE瀏覽器並導航到php文件目錄時,出現了相同的問題.... = \ - Adam
在手动安装apache2和php5后,我遇到了同样的问题。经过长时间的调整,我意识到问题出在文件/目录路径中的大小写敏感性上。显然,Windows上的apache非常重视大小写敏感性。希望能对某些人有所帮助! - shawndreck
3个回答

2
如果你把一个名为test.php的文件放在C:\inetpub\wwwroot目录下,那么你需要在浏览器中打开http://localhost/test.php来尝试执行该文件。 php5apache2.dll文件需要放在你的apache模块目录中,并且你需要添加适当的apache配置行,如下所示:
LoadModule php5_module "c:/path/to/php5apache2.dll"
AddHandler application/x-httpd-php .php SetHandler application/x-httpd-php 在进行这些更改后,你需要重新启动apache。

我尝试了这个,但出于某些原因我无法启动Apache,我更新了我的帖子,请查看。 :) 谢谢。 - Adam
目录是C:/PHP还是C:/php,我认为在Windows上大小写会有影响。此外,从错误消息来看,似乎php安装程序可能尝试将php配置为cgi。我忽视的最大问题是您的服务器正在运行IIS而不是Apache。关闭IIS服务,然后尝试运行Apache。 - drew010
好的发现,有点儿意思 :) 目录名是大写的,所以我将其设置为小写并验证了 httpd.conf 文件也是小写的。我还去了 IIS 管理器关闭了服务器。但是当我尝试启动 Apache 服务器时仍然收到相同的消息...刚刚重启了我的笔记本电脑,但仍然是同样的情况 =\ - Adam

1
假设您已经按照其他答案中提到的正确安装了Apache中的PHP,那么问题可能是.php页面没有发送正确的标头。我有一个.php文件,发出带有Content-Type: text/json的标头,这通常用于为Ajax客户端提供服务。.php页面应该发送Context-Type: text/html。
要确定这是否确实是问题,您可以使用带有-S选项的wget,或使用浏览器中的开发人员工具。请参阅此答案:查看响应标头的工具

0

双击?是指在资源管理器中吗?如果是这样,这不会打开页面。您需要浏览到该页面。如果您在Apache的目录列表中,则不需要双击。

至于设置,如果您是新手,最好使用iis、easyphp、xampp或其他变体

它们将让您轻松运行,无需麻烦。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接