Web服务器集群——部署LAMP平台(基于LAMP架构搭建一个论坛)

前言:LAMP架构是目前成熟得企业网站应用模式之一,指的是协同工作得一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或perl、Python)网页编程语言。
本次将以源码编译的方式搭建LAMP环境、以满足企业制订化得需求。
在构建LAMP平台时,各组件得安装顺序依次为Linux、Apache、MySQL、PHP。其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通Web服务器和数据库系统以协同工作。
LAMP流程:

  1. 用户发送http请求到达httpd服务器

  2. httpd解析url获取需要的资源的路径,通过内核空间读取硬盘资源,如是静态资源,则构建响应报文,发回给用户

  3. 如果是动态资源,将资源地址发给php解析器,解析php程序文件,解析完毕将内容发回给httpd,httpd构建响应报文,发回给用户

  4. 如果涉及到数据库操作,则利用php-mysql驱动,获取数据库数据,返回给PHP解析器。

下面我们开始部署。
提前准备好所需要的软件包。
在这里插入图片描述

文章目录

  • 一.安装Apache服务
    • 1.解压工具包
    • 2.安装环境包
    • 3.配置Apache服务
    • 4.检查并开启
  • 二.安装MYSQL服务
    • 1.安装所需要得环境包并解压
    • 2.配置MYSQL服务
    • 3.开启服务并进入数据库
  • 三.安装PHP服务
    • 1.安装环境包并解压
    • 2.配置PHP服务
    • 3.重启服务
    • 4.更改配置文件并验证
  • 四.搭建Discuz论坛
    • 1.解压
    • 2.安装论坛

一.安装Apache服务

1.解压工具包

[root@localhost ~]# tar xf apr-1.6.2.tar.gz -C /opt                        //跨平台工具组件包
[root@localhost ~]# tar xf apr-util-1.6.0.tar.gz -C /opt                   //工具包
[root@localhost ~]# tar xf httpd-2.4.29.tar.gz -C /opt                     //Apache软件包
[root@localhost ~]# cd /opt/
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr                   //将工具包放到Apache软件包中
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

2.安装环境包

[root@localhost ~]# yum -y install \    //安装环境包
gcc \                 //编译器
gcc-c++ \             //编译器
make \                //把源代码文件转换成二进制可执行性文件
pcre-devel \          //语言  (专做正则表达式的工具)
expat-devel \         //让网站能够解析
perl                  //编译器

3.配置Apache服务

[root@localhost opt]# cd httpd-2.4.29
[root@localhost httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \     //安装路径
--enable-so \                   //开启核心模块
--enable-rewrite \              //开启重写功能
--enable-charset-lite \         //字符集设定
--enable-cgi                    //底层通用网关接口  
[root@localhost httpd-2.4.29]# make && make install
[root@localhost ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@localhost ~]# vi /etc/init.d/httpd       //编辑配置文件
# chkconfig: 35 85 21      //35级别自动运行  第85个启动 第21个关闭
# description: Apache is a World Wide Web server
[root@localhost ~]# chkconfig --add httpd //将httpd加入到SERVICE管理器
[root@localhost ~]# vi /usr/local/httpd/conf/httpd.conf
ServerName www.csdn.com      //更改网址名
Listen 192.168.9.147:80      //开启ipv4端口并配置自己得ip
#Listen 80                   //关闭ipv6端口

[root@localhost ~]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/     //建立软连接
[root@localhost ~]# systemctl stop firewalld.service                 //关闭防火墙
setenforce 0                                     //关闭增强型功

4.检查并开启

[root@localhost ~]# httpd -t                     //检查语法是否报错
Syntax OK
[root@localhost ~]# apachectl -t                 //检查语法是否报错
Syntax OK
[root@localhost ~]# service httpd start          //开启服务
[root@localhost ~]# netstat -anpt | grep 80      //查看端口是否开启 
tcp        0      0 192.168.9.130:80        0.0.0.0:*               LISTEN      37260/httpd  

二.安装MYSQL服务

1.安装所需要得环境包并解压

[root@localhost ~]# yum install ncurses-devel autoconf cmake -y
[root@localhost ~]# tar -xzvf mysql-5.6.26.tar.gz

2.配置MYSQL服务

[root@localhost ~]# cd mysql-5.6.26
[root@localhost mysql-5.6.26]# cmake  \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \    //指定安装路径
-DDEFAULT_CHARSET=utf8 \                     //指定字符集
-DDEFAULT_COLLATION=utf8_general_ci \        //指定默认字符集
-DEXTRA_CHARSETS=all \                       //指定拓展字符集
-DSYSCONFIDIR=/etc \                         //指定配置文件目录
-DMYSQL_DATADIR=/home/mysql/ \               //指定数据目录
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock     //定义连接数据库(sock)的文件
[root@localhost mysql-5.6.26]# make && make install
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? yes                                           //复制配置文件
[root@localhost mysql-5.6.26]# cd /etc/init.d/
[root@localhost init.d]# cp support-files/mysql.server /etc/init.d/mysqld    //复制启动脚本
[root@localhost init.d]# chmod 755 /etc/init.d/mysqld                        //赋予权限
[root@localhost init.d]# chkconfig --add /etc/init.d/mysqld                  //添加
[root@localhost init.d]# chkconfig  mysqld --level 235 on                    //开启
[root@localhost init.d]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profilesource /etc/profile                          
                                                         //更改环境变量
[root@localhost init.d]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin:/usr/local/mysql/bin:/root/bin
[root@localhost bin]# useradd -s /sbin/nologin mysql                         //创建程序用户
[root@localhost bin]# chown -R mysql:mysql /usr/local/mysql/                 //赋予权限
[root@localhost mysql]# cd /usr/local/mysql/
[root@localhost mysql]# /usr/local/mysql/scripts/mysql_install_db \          //初始化数据库
--user=mysql \                  //数据库用户
--ldata=/var/lib/mysql \        //函数库
--basedir=/usr/local/mysql \    //工作目录
--datadir=/home/mysql           //存放位置
[root@localhost mysql]# vi  /etc/init.d/mysqld    //更改启动脚本
//46行
basedir=/usr/local/mysql           //指名工作目录
datadir=/home/mysql                //指名数据库存放位置

3.开启服务并进入数据库

[root@localhost mysql]# service mysqld start    //开启服务
Starting MySQL SUCCESS! 
[root@localhost mysql]# netstat -anpt | grep 3306    //查看端口
tcp6       0      0 :::3306                 :::*                    LISTEN      1384/mysqld   
[root@localhost mysql]# mysqladmin -u root -p password "abc123"       //给root账号设 置密码
Enter password:             //原始密码
                                          
[root@localhost mysql]# mysql -u root -p              //进入数据库
Enter password:                                       //输入密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.26 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;               //查看
+--------------------+
| Database           |
+--------------------+
| information_schema |
| chang              |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.09 sec)

mysql> exit    //退出
Bye

三.安装PHP服务

1.安装环境包并解压

[root@localhost mysql]# yum -y install \
gd \      //gd库(处理图像)
libpng \    
libpng-devel \    //所支持的图片
pcre \
pcre-devel \     //正则表达式所用的语言
libxml2-devel \   
libjpeg-devel     //解析标志性语言
[root@localhost ~]# tar xjvf php-5.6.11.tar.bz2 /opt   //解压

2.配置PHP服务

[root@localhost ~]# cd /opt/ cd php-5.6.11/
[root@localhost php-5.6.11]# ./configure \
--prefix=/usr/local/php5 \    //指定安装路径
--with-gd \                           //gd库
--with-zlib \                           //函数库
--with-apxs2=/usr/local/httpd/bin/apxs \      //支持Apache功能模块直接让其执行与加载
--with-mysql=/usr/local/mysql \          //关联数据库
--with-config-file-path=/usr/local/php5 \   //关联PHP配置文件
--enable-mbstring             //功能性模块加载
[root@localhost php-5.6.11]# make && make install
[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini   //放置配置文件
[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/   
[root@localhost php-5.6.11]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/    //建立软连接
vi /etc/httpd.conf    //在Apache配置文件中添加(在合适位置添加)
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps 
DirectoryIndex index.php index.html      //让Apache服务能够识别加载PHP功能模块

3.重启服务

[root@localhost php-5.6.11]# service httpd stop
[root@localhost php-5.6.11]# service httpd start

4.更改配置文件并验证

[root@localhost php-5.6.11]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# vi /usr/local/httpd/htdocs/index.html

[root@localhost htdocs]# mv index.html index.php

验证:Web服务器集群——部署LAMP平台(基于LAMP架构搭建一个论坛)_第1张图片

四.搭建Discuz论坛

1.解压

[root@localhost ~]# unzip Discuz_X2.5_SC_UTF8.zip -d /opt/Discuz
//新建一个数据库bbs,并将论坛的upload组件复制到bbs中
[root@localhost ~]# mysql -u root -p      //进入数据库
mysql>create database bbs;                //创建bbs数据库
mysql> GRANT all ON bbs.* TO 'bbsuser'@'192.168.9.147' IDENTIFIED BY 'admin123';
mysql> flush privileges;                  //刷新数据库
mysql> quit                               //退出
[root@localhost ~]# cd /opt/Discuz
[root@localhost Discuz]# cp -r upload/ /usr/local/httpd/htdocs/bbs
                           //复制upload到httpd站点的bbs目录中
[root@localhost Discuz]# cd /usr/local/httpd/htdocs/bbs/
[root@localhost bbs]# chown -R daemon ./config/
[root@localhost bbs]# chown -R daemon ./data/
[root@localhost bbs]# chown -R daemon ./uc_client
[root@localhost bbs]# chown -R daemon ./uc_server/data        //为各程序用户提升权限

2.安装论坛

配置完成后进入192.168.9.147/bbs/index.php开始安装论坛
Web服务器集群——部署LAMP平台(基于LAMP架构搭建一个论坛)_第2张图片
安装完成后关闭网页,重新输入192.168.9.147/bbs/index.php即可进入论坛
Web服务器集群——部署LAMP平台(基于LAMP架构搭建一个论坛)_第3张图片
总结: LAMP是一个多C/S架构的平台,最初级为web客户端基于TCP/IP通过http协议发起传送,这个请求可能是动态的,也可能是静态的。
所以web服务器通过发起请求的后缀来判断,如果是静态的资源就由web服务器自行处理,然后将资源发给客户端。如果是动态这时web服务器会通过CGI(Common Gateway interface)协议发起给php。
这里但是如果php是以模块形式与Web服务器联系。那么他们是通过内部共享内存的方式。如果是php单独的放置与一台服务器,那么他们是通过sockets套接字监听的方式通信(这又是一个C/S架构)。
这时php会相应的执行一段程序,如果在执行程序时,需要用到数据。那么php就会通过mysql协议发送给mysql服务器(也可以看作是一个C/S架构)。由mysql服务器处理,将数据供给php程序。

你可能感兴趣的:(企业网站架构部署与优化,lamp,linux,apache,php,mysql)