无法运行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 'ID Name '; while($row = mysql_fetch_assoc($result)){ echo ''; echo '' .$row['id'].' '; echo '' .$row['name'].' '; echo ' '; } echo '
'; ?>
Apache是一个网络服务器,所以它基本上是为那些网络服务器做的:你(或你的浏览器)要求一个文件,它会发送给你那个文件。 Apache本身并不“知道”该文件包含您希望事先执行的代码。
PHP由PHP解释器执行。 您似乎安装了该解释器,但您需要将其与Apache集成。 PHP脚本的生命周期基本上看起来像这样(有点人性化,但更容易得到这样的要点)
- 客户端请求以
.php
结尾的.php
。 - Apache知道,这些文件需要交给PHP解释器。 它确实如此。
- PHP解释器执行PHP代码并生成输出,然后将其交还给Apache。
- Apache将该输出发送到客户端。
在您当前的设置中,Apache并不“知道” .php
文件在任何方面都是特殊的或如何处理它们。 所以它就像对待任何其他文件一样,并按原样发送文件。
有几种方法可以将PHP interpeter与Apache集成。 您可以使用Apache模块mod_php
,您可以使用公共网关接口cgi
或其较新版本,如fcgi
或php-fpm
。 它们在诸如此类方面不同
- 他们设置起来有多容易
- 他们提供什么表现
- 您可以如何广泛地配置它们
- 您如何确保您的设置安全
如果您只是想要一个服务器玩具并进行实验,只需安装libapache2-mod-php
软件包并重新启动Apache即可使用mod_php
。 但是SAPI(服务器API)在性能方面非常糟糕,几乎没有配置选项而且不是很安全(主要是因为默认情况下每个PHP进程都由同一个系统用户运行)。 在生产中或在连接到互联网的服务器上使用它并不是一个好主意(这意味着,从奥斯陆到廷巴克图的所有人都可以参与其中)。
还有两件事:Ubuntu 16.04附带PHP 7.旧的mysql函数,如你正在使用的函数, mysql_connect
, mysql_query
, mysql_fetch_assoc
等,自PHP 5.0以来已被弃用(意思是,自十二年前以来)。 在PHP 7中,它们已被删除,因此您不能再使用它们了。 你应该使用mysqli或pdo模块。 有关这些的教程很容易找到。
其次, php
包中包含基本的解释器。 许多其他模块都打包在自己的包中,比如你已经安装的php-mysql
。 如果要使用它们,则必须安装相应的包。