![什么原因导致 PHP 页面持续下载而不是正常运行](https://linux22.com/image/533811/%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%E5%AF%BC%E8%87%B4%20PHP%20%E9%A1%B5%E9%9D%A2%E6%8C%81%E7%BB%AD%E4%B8%8B%E8%BD%BD%E8%80%8C%E4%B8%8D%E6%98%AF%E6%AD%A3%E5%B8%B8%E8%BF%90%E8%A1%8C.png)
我在虚拟机上运行 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