使用YUM搭建LAMP环境的流程

1 什么是LAMP

搭建LAMP运行环境 - 图1
LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:
Linux,操作系统
Apache,网页服务器
MariaDB或MySQL,数据库管理系统(或者数据库服务器)
PHP、Perl或Python,脚本语言

2 安装Apache httpd Web 服务器程序

2.1 准备工作

准备两台虚拟机,分别是WebServer和DBserver,分别配置好软件仓库(本地软件仓库)
主要步骤如下:

  1. #先放入光盘到光驱中,记得要连接上
  2. [root@dbserver ~]# mkdir /media/cdrom
  3. [root@dbserver ~]# mount /dev/cdrom /media/cdrom
  4. [root@dbserver ~]# cd /etc/yum.repos.d
  5. [root@dbserver yum.repos.d]# mkdir ./backup
  6. [root@dbserver yum.repos.d]# mv *.repo ./backup
  7. [root@dbserver yum.repos.d]# cp ./backup/CentOS-Media.repo ./
  8. [root@dbserver yum.repos.d]# ls
  9. [root@dbserver yum.repos.d]# vi CentOS-Media.repo
  10. #修改如下内容:
  11. gpgcheck=0
  12. enabled=1
  13. #修改完成后保存
  14. [root@dbserver yum.repos.d]# yum clean all
  15. [root@dbserver yum.repos.d]# yum makecache

2.2 在WebServer上安装httpd应用程序

  1. [root@webserver yum.repos.d]# yum -y install httpd*
  2. [root@webserver yum.repos.d]# systemctl start httpd
  3. [root@webserver yum.repos.d]# systemctl enable httpd
  4. [root@webserver yum.repos.d]# firewall-cmd --permanent --add-service=http
  5. #firewall-cmd是CentOS7 默认的防火墙管理命令
  6. #--add-service=http 允许(开放)http(80)端口
  7. #--permanent 表示设置是持久生效的
  8. [root@webserver yum.repos.d]# firewall-cmd --reload
  9. #重新加载防火墙的配置文件
  10. [root@webserver yum.repos.d]# cd /var/www/html
  11. [root@webserver html]# touch index.html
  12. [root@webserver html]# echo "<h1>WELCOME TO MY WebSite.</h1>" > index.html
  13. [root@webserver html]# cat index.html
  14. <h1>WELCOME TO MY WebSite.</h1>

配置完成后在客户端进行测试,能够打开这个网站
image.png

3 安装PHP应用程序服务器

3.1 安装php应用程序

  1. [root@webserver html]# yum -y install php
  2. [root@webserver html]# yum -y install php-mysql
  3. [root@webserver html]# systemctl restart httpd

yum -y install php
# yum -y install php-mysql
# systemctl restart httpd

3.2 写一个测试页,测试PHP

  1. [root@webserver html]# cd /var/www/html
  2. [root@webserver html]# touch info.php
  3. [root@webserver html]# vi info.php

编写测试PHP的页面文件info.php,内容如下:

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

info.php
在客户端浏览器输入http://Web服务器IP地址/info.php进行测试。能看到如下页面,则表示安装成功。
image.png

4 安装MariaDB数据库服务器

4.1 在DBServer上安装mariadb

  1. [root@dbserver ~]# yum -y install mariadb*
  2. [root@dbserver ~]# systemctl start mariadb
  3. [root@dbserver ~]# systemctl enable mariadb
  4. [root@dbserver ~]# firewall-cmd --permanent --add-service=mysql
  5. #开放mariadb的服务端口3306(与mysql一样)
  6. [root@dbserver ~]# firewall-cmd --reload
  7. [root@dbserver ~]# setenforce 0
  8. #关闭SELinux

运行mysql_secure_installation脚本程序,初始化mariadb服务器

  1. [root@dbserver ~]# mysql_secure_installation
  2. #然后按照如下步骤完成配置
  3. Enter current password for root (enter for none):<回车>
  4. Set root password? [Y/n] y
  5. New password:<输入密码>
  6. Re-enter new password: <再次输入密码>
  7. Remove anonymous users? [Y/n] y
  8. Disallow root login remotely? [Y/n]y
  9. Remove test database and access to it? [Y/n] y
  10. Reload privilege tables now? [Y/n] y

4.2 导入employees数据库

(1)下载employees数据库文件(ftp://192.168.179.231/工具软件)employees_db.tar.gz
(2)将employees_db.tar.gz上传到DBServer的/root目录
(3)在DBServer上导入employees数据库

  1. [root@dbserver ~]# cd /root
  2. [root@dbserver ~]# ls
  3. anaconda-ks.cfg employees_db.tar.gz env3.6.10 env3.8.3 perl5
  4. [root@dbserver ~]# tar -xzvf employees_db.tar.gz
  5. [root@dbserver ~]# cd employees_db
  6. [root@dbserver employees_db]# mysql -u root -p
  7. Enter password:
  8. ......
  9. MariaDB [(none)]>
  10. MariaDB [(none)]> source employees.sql

(4)在数据库服务器中创建用户账户devel

  1. MariaDB [employees]> create user devel@'%' identified by "123456";
  2. Query OK, 0 rows affected (0.00 sec)
  3. #创建数据库服务器的访问账户devel@'%'

5 测试数据库的连接

5.1 测试PHP程序和数据库的连接

在WebServer上准备测试数据库连接的PHP程序
在/var/www/html目录中创建testdb.php文件

  1. [root@webserver ~]# cd /var/www/html
  2. [root@webserver html]# ls
  3. index.html info.php
  4. [root@webserver html]# touch testdb.php
  5. [root@webserver html]# vi testdb.php
  6. [root@webserver html]# setenforce 0
  7. #关闭SELinux

内容如下:

  1. <?php
  2. $link=mysql_connect('192.168.8.201','devel','123456');
  3. if(!$link)
  4. {
  5. echo "数据库连接失败!";
  6. die('Could not connect:' . mysql_error());
  7. }
  8. else
  9. echo "数据连接成功!";
  10. mysql_close();
  11. ?>

testdb.php
在客户端浏览器输入”http://192.168.237.201/testdb.php"进行测试。
image.png

5.2 测试PHP程序读取数据库中的数据

在DBServer上为devel@’%’授予emplpyees数据库的访问权限

  1. [root@dbserver ~]# mysql -u root -p
  2. Enter password:
  3. ...
  4. MariaDB [(none)]> grant select on employees.* to devel@'%';
  5. Query OK, 0 rows affected (0.00 sec)
  6. MariaDB [(none)]> show grants for devel@'%';
  7. +------------------------------------------------------------------------------------------------------+
  8. | Grants for devel@% |
  9. +------------------------------------------------------------------------------------------------------+
  10. | GRANT USAGE ON *.* TO 'devel'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
  11. | GRANT SELECT ON `employees`.* TO 'devel'@'%' |
  12. +------------------------------------------------------------------------------------------------------+
  13. 2 rows in set (0.00 sec)

在WebServer上准备测试数据库读取的PHP程序在/var/www/html目录中创建getinfo.php文件,内容如下:

  1. <HTML>
  2. <HEAD>
  3. <TITLE>用PHP从表中读取数据</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <?php
  7. $id=mysql_connect("192.168.237.202","devel","123456");
  8. mysql_select_db("employees",$id);
  9. mysql_query("SET CHARACTER SET gbk");
  10. $query="SELECT dept_no,emp_no FROM dept_manager";
  11. $result=mysql_query($query,$id);
  12. echo "<table border=1 width=200><tr><td>部门编号</td><td>管理员工号</td></tr>";
  13. $datanum = mysql_num_rows($result);
  14. echo "表中共有".$datanum."条数据<br>";
  15. for($i=1;$i<=$datanum;$i++)
  16. {
  17. $info=mysql_fetch_array($result,MYSQL_ASSOC);
  18. echo "<tr><td>".$info['dept_no']."</td>";
  19. echo "<td>".$info['emp_no']."</td></tr>";
  20. }
  21. echo "</table>";
  22. mysql_close($id);
  23. ?>
  24. </BODY>
  25. </HTML>

getinfo.php
在客户端浏览器输入 “http://192.168.237.201/getinfo.php“ 进行测试。
image.png