我在虚拟机上运行 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