大纲:

1.  LAMP概念

2.  LAMP的原理

3.  LAMP的实现

 

一、LAMP的概念 

   LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库(mariadb),Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台


2.  LAMP的原理

   CGi(Common Gateway Interface)是一种协议,定义了客户端(httpd)与服务器(特定的应用程序服务进程)交换数据的一种规范。


工作的流程:

    LAMP是一个多C/S架构的平台,最初级为web客户端基于TCP/IP通过http协议发起传送,这个请求可能是动态的,也可能是静态的。所以web服务器通过发起请求的后缀来判断

    如果是静态的资源就由web服务器自行处理,然后将资源发给客户端。

    如果是动态这时web服务器会通过CGI(CommonGateway interface)协议发起给php。这里但是如果php是以模块形式与Web服务器联系。那么他们是通过内部共享内存的方式。如果是php单独的放置与一台服务器,那么他们是通过sockets套接字监听的方式通信(这又是一个C/S架构)。这时php会相应的执行一段程序,

    如果在执行程序时,需要用到数据。那么php就会通过mysql协议发送给mysql服务器(也可以看作是一个C/S架构)。由mysql服务器处理,将数据供给php程序。大概流程如图:

 wKiom1f56U7xM_PHAAGC7a-lE-4008.png


3.  LAMP的实现

 

 

根据LAMP结合方式不同,大致可以分成三类:

        1.php以模块modules的形式结合apache 和mysql(把php编译成httpd的模块,效率不高,但稳定,默认的方式)

        2.php以cgi的形式结合 apache 和 mysql,很少用

        3.php以fastcgi的形式结合apache 和 mysql


快速部署lamp:

centos 7:(centos6中是不能使用fastcgi的,因为没有 proxy_fcgi_module (shared)模块)

modules方式:程序包:httpd,php,php-mysql,mariadb-server 

fastCGI:程序包,httpd,php-fpm,php-mysql,mariadb-server

centos  6:

modules方式:程序包:httpd,php,php-mysql,mysql-server 


环境:

      CentOS7.2, 

      php-fpm的方式

     关闭selinux和iptables


 1.安装

[root@centos7-1 ~]# yum -y install httpd php php-mysql mariadb
[root@centos7-1 ~]# systemctl start httpd 
[root@centos7-1 ~]# systemctl start mariadb

2.测试apache和php之间是否可以联通:

[root@centos7-1 ~]# cd /var/www/html/
[root@centos7-1 html]# vim  test.php
<?php
	phpinfo();
?>

wKioL1ggZvOCJ9EPAACbwQZg1zY831.jpg

 3.测试php是否可以和mysql连接:

[root@www html]# cat index.php 
 	<?php
		$conn = mysql_connect('127.0.0.1','root','');
		if ($conn)
			echo 'success';
		else
			echo 'failure';
	?>

wKioL1ggaIKwBH9KAAAp4MbdApg871.jpg

4.安装Discuz应用测试:

[root@centos7-1 ~]# unzip Discuz_X3.2_SC_UTF8.zip 
[root@centos7-1 ~]# cp -a upload/* /var/www/html

1.浏览器中输入:http://10.1.19.1/upload/

2.按要求修改权限

3

.wKioL1ggbTCBQCEeAADBcbPI1Sk694.jpg-wh_50


4.创建数据库文件

[root@centos7-1 html]#mysql

MariaDB [(none)]> create database dz;

Query OK, 1 row affected (0.02 sec)


MariaDB [(none)]> grant all on dz.* to 'dzuser'@'localhost' identified by 'dzpass';

Query OK, 0 rows affected (0.39 sec)


MariaDB [(none)]> grant all on dz.* to 'dzuser'@'127.0.0.1' identified by 'dzpass';

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.09 sec)

4.测试,在右下角有下图即成功

wKiom1ggbp3ihdqqAAALbboFxB4092.jpg