是什么导致PHP页面始终下载,而不是正常运行

我正在虚拟机上运行Ubuntu服务器,以testing不同的networking论坛解决scheme。 我已经build立了一个〜/ public_html /可以通过apache2 web服务器访问,而且工作正常。

但是,当我浏览器上的一个.php文件(使用我的虚拟机的IP地址/〜用户名/ 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 

如果有人知道什么可能导致这个/潜在的解决scheme,这将使我非常高兴:)

编辑:结果文件这种行为只是在〜/ public_html /目录中的文件明显。 / var / www /中的所有php文件都可以正常工作。

奖品是否可以解释为什么? :D(奖品我只是说做得好,恐怕没有实际的奖品。)

您可能只有当前安装的cli版本的PHP

sudo apt-get install php5

并重新启动Apache

sudo apache2ctl restart

你也可以检查PHP模块是否被加载到Apache中

sudo apache2ctl -M

如果模块被加载,那么它应该显示类似的东西

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

把这个添加到你的apacheconfiguration中

 AddType application/x-httpd-php .php 

你需要configurationapache,以便在请求.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 

我在用户的public_html目录中遇到了同样的问题,我发现在/etc/apache2/mods-available/php5.conf文件中包含了一些注释行,它们是:

 # To re-enable php in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. 

我做了什么,并重新启动Apache,问题已经消失。

检查AddType行的.htaccess 。 我有一个自定义的AddType导致不良的内容types。 Firefox帮助我debugging了这个问题,但是你也可以使用wget

火狐 wget的

容易忘记,但这种情况发生的一个常见方式是忘记打开和closures<?php ?>标签。

我最近得到了这个问题,并消除了这个线程中的所有其他原因后,我发现mod_php5扩展(在我的系统在/usr/lib64/apache2/mod_php5.so )没有执行pemitions。

chmoding之后,它工作。