什么原因导致 PHP 页面持续下载而不是正常运行

什么原因导致 PHP 页面持续下载而不是正常运行

我在虚拟机上运行 Ubuntu 服务器,以测试不同的网络论坛解决方案。我已设置 ~/public_html/ 以便通过 apache2 网络服务器访问,并且运行正常。

但是当我在浏览器上访问 .php 文件时(使用我的 VM 的 ip 地址/~username/phpfile.php),它并没有按应有的方式显示它。相反,它建议保存到文件/询问使用什么程序打开它。有趣的是,该对话框确实识别出它是一个 php 文件。


我在系统上安装了以下版本的 php:

PHP 5.3.2-1ubuntu4.5 with Suhosin-Patch (cli) (built: Sep 17 2010 13:49:46)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

以及以下服务器:

Server version: Apache/2.2.14 (Ubuntu)
Server built:   Nov 18 2010 21:19:09


如果有人知道可能导致这种情况的原因/潜在的解决方案,我会非常高兴:)

编辑:事实证明,此行为仅在 ~/public_html/ 目录中的文件中出现。/var/www/ 中的所有 php 文件都可以正常工作。

谁能解释原因,谁就能获得奖品?:D(我所说的奖品只是表示做得好,恐怕没有实际的奖品。)

答案1

你可能只安装了 PHP 的 CLI 版本,请尝试

sudo apt-get install php5

并重新启动 apache

sudo apache2ctl restart

您还可以通过以下方式检查 PHP 模块是否已加载到 Apache 中

sudo apache2ctl -M

如果模块已加载,则应该显示类似

Loaded Modules:
 ...
 php5_module (shared)
 ...
Syntax OK

答案2

将其添加到你的 apache 配置中

AddType application/x-httpd-php .php 

答案3

您需要配置 apache,以便它在请求 .php 文件时启动 php 解释器,而不是仅仅返回文件的内容。

这需要在相关目录的 httpd.conf 中完成。它看起来类似这样:

# Use for PHP 5.x:
LoadModule php5_module        modules/libphp5.so
AddHandler php5-script php 

# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php

AddType text/html       php

答案4

检查.htaccessAddType 行。我有一个自定义 AddType,它导致了错误的内容类型。Firefox 帮助我调试了这个问题,但你也可以使用wget

火狐 获得

相关内容