无法运行php文件

我刚刚开始研究Ubuntu 16.04 Mini,我只是在研究PHP。 当我创建php文件并放入目录/var/www/ubunturock/dummy.php并运行apache服务器时,当我转到我的地址ubunturock/dummy.php我得到了我的PHP代码文件。 任何的想法?

这是我的PHP代码:

  connect_error); mysql_select_db($schema); $result=mysql_query('SELECT * FROM topics'); echo '

All Topics


'; echo ''; echo ''; while($row = mysql_fetch_assoc($result)){ echo ''; echo ''; echo ''; echo ''; } echo '
IDName
' .$row['id'].'' .$row['name'].'
'; ?>

Apache是​​一个网络服务器,所以它基本上是为那些网络服务器做的:你(或你的浏览器)要求一个文件,它会发送给你那个文件。 Apache本身并不“知道”该文件包含您希望事先执行的代码。

PHP由PHP解释器执行。 您似乎安装了该解释器,但您需要将其与Apache集成。 PHP脚本的生命周期基本上看起来像这样(有点人性化,但更容易得到这样的要点)

  • 客户端请求以.php结尾的.php
  • Apache知道,这些文件需要交给PHP解释器。 它确实如此。
  • PHP解释器执行PHP代码并生成输出,然后将其交还给Apache。
  • Apache将该输出发送到客户端。

在您当前的设置中,Apache并不“知道” .php文件在任何方面都是特殊的或如何处理它们。 所以它就像对待任何其他文件一样,并按原样发送文件。

有几种方法可以将PHP interpeter与Apache集成。 您可以使用Apache模块mod_php ,您可以使用公共网关接口cgi或其较新版本,如fcgiphp-fpm 。 它们在诸如此类方面不同

  • 他们设置起来有多容易
  • 他们提供什么表现
  • 您可以如何广泛地配置它们
  • 您如何确保您的设置安全

如果您只是想要一个服务器玩具并进行实验,只需安装libapache2-mod-php软件包并重新启动Apache即可使用mod_php 。 但是SAPI(服务器API)在性能方面非常糟糕,几乎没有配置选项而且不是很安全(主要是因为默认情况下每个PHP进程都由同一个系统用户运行)。 在生产中或在连接到互联网的服务器上使用它并不是一个好主意(这意味着,从奥斯陆到廷巴克图的所有人都可以参与其中)。

还有两件事:Ubuntu 16.04附带PHP 7.旧的mysql函数,如你正在使用的函数, mysql_connectmysql_querymysql_fetch_assoc等,自PHP 5.0以来已被弃用(意思是,自十二年前以来)。 在PHP 7中,它们已被删除,因此您不能再使用它们了。 你应该使用mysqli或pdo模块。 有关这些的教程很容易找到。

其次, php包中包含基本的解释器。 许多其他模块都打包在自己的包中,比如你已经安装的php-mysql 。 如果要使用它们,则必须安装相应的包。