本文主要介绍Ubuntu16.04系统下Apache、Php和Mysql的安装以及验证过程,最终采用一个php测试代码来验证三者是否可以协同工作。

1.安装apache:

sudo apt-get install apache2

验证是否安装成功,只需要在浏览器中输入127.0.0.1,成功与否决定于是否出现apache2的默认页面:

图1 Apache2的默认页面

另外,也可以查看service的状态:service –status-all,从中可以看到”apache2” service的存在。停止,启动,重启apache2的命令如下:

1
2
3
sudo /etc/init.d/apache2 stop 
sudo /etc/init.d/apache2 start
sudo /etc/init.d/apache2 restart
2.安装mysql数据库;

sudo apt-get install mysql-server

安装后如何确定是否成功安装?

命令:netstat –tap查看mysql是否开始监听。

让php访问mysql,则需要安装:sudo apt-get install php7.0-mysql

这样php才能访问mysql。

3.安装php:

sudo apt-get install php

让apache支持php需要安装libapache2-mod-php7:sudo apt-get install liaapache2-mod-php7

       如何测试安装成功?

       思路:将一个php文件放到apache默认的工作目录,然后通过浏览器访问,如果能正常访问,就说明安装成功。根据apache2的默认页面,可以知道默认的工作目录是:var/www/html;所以我们写的php测试文件要放到var/www/html目录下,然后浏览器中来访问。(如何修改默认路径?见参考文献)我们写的测试php文件为test.php:

1
2
3
<?php
phpinfo();
?>

这条语句主要目的是输出当前使用的php的一些配置信息。

图2 php的信息页

4、测试Apache、Mysql和Php的安装:

撰写一个测试用例,将mysql,php和apache2三个工具串联起来。

主要步骤:

  1. 在mysql数据库中创建一个关于学生成绩的数据库,其中有多个学生,并且每个学生对应一个分数;
  2. 书写php文件,访问数据库中的学生成绩,并且显示出来;

具体操作:

  1. 登录数据库:

mysql –u root –p

  1. 创建新用户:test,密码为:12345

Create user “test” identified by “12345”

  1. 创建scores数据库:create database scores;

使用scores数据库:use scores;

创建table: create table scorename( name char(20) not null, score int not null)DEFAULT CHARSET=UTF8;(注意大小写);

在表中插入三个学生:insert into scorename(name, score) values(‘张三’, 78), (‘李四’, 87), (‘王五’, 98);

将scores数据库的所有权限赋给test用户:grant all privileges on scores.* to test identified by “12345”;

最后退出:quit

  1. 以test用户登录;

选择scores数据库;use scores;

查看scores数据库中的信息:show tables; 发现只有scorename;

再查看表中的信息:select * from scorename;

图3 mysql数据表信息

  1. 书写一个php文件,通过浏览器访问后,可以在浏览器端显示上述的信息;那么这个php怎么写呢?(注意不同的php版本语法会有区别,请自行根据使用的版本调整,如下是针对php7.0)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
       $con=new mysqli("127.0.0.1","test","12345");
       if(!$con){
              die('cound not connect: ' . mysql_error());
       }else{
              $con->query("SET NAMES 'utf8'");
              $con->select_db("scores");
              $result=$con->query("SELECT * FROM scorename");
              while($row=$result->fetch_assoc())
              {
                     echo $row['name'] . " " . $row['score'];
                     echo "<br />";
              }
       }
       mysql_close($con);
?>

浏览器中访问上述: 127.0.0.1/test.php,如果成功,则出现如下的页面:

图4 浏览器呈现的mysql数据信息

参考文献:

https://blog.csdn.net/whd526/article/details/68966961?utm_source=blogxgwz1