LAMP项目部署——8day

LAMP项目部署

课程目标

  1. 掌握LAMP项目的特点

  2. 完成Discuz!论坛系统部署(yum安装)

  3. 完成wordpress博客系统部署(源码安装)

课程实验

  1. LAMP系统概述

  2. Discuz!论坛系统部署

  3. wordpress博客系统部署

课堂引入

运维最本质的工作就是将开发好项目部署到服务器上面,并保证服务器的正常运行。

授课进程

一、LAMP概述
1、概述

LAMP架构是目前应用最为成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP这个词是一个缩写,具体包括:Linux操作系统、Apache网站服务器、MySOL数据库服务器,PHP (或PerI、Python)网页编程语言。

2、组件作用
  • (平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。

  • (前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。

  • (后台)MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。

  • (中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

3、构建顺序
  • 在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP

  • 其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作

4、其它形式

除了LAMP架构之外,目前还存在一些其它形式的架构,比如:

LNMP:Linux + Nginx + MySQL + php-fpm (目前比较主流的架构方式)

LNTMJ: Linux + Nginx + Tomcat + Mysql + JDK + JAVA

LNMPA:Linux + Nginx + MySQL + PHP + Apache

二、Discuz!论坛系统部署
1、环境准备

1)准备一台新的服务,最小化安装,配置好网络及设置好IP

复制代码
systemctl stop NetworkManager
systemctl disable NetworkManager
​
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO="dhcp"     dhcp - static
ONBOOT="no"          no - yes
# 在下面手动绑定IP地址
IPADDR=192.168.217.132
GATEWAY=192.168.217.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
​
systemctl restart network   # 重启网络
ping www.baidu.com

2)设置主机名

复制代码
hostnamectl set-hostname server01.com           #  修改主机名
su - root                                       #  切换用户

3)关闭防火墙

复制代码
# 关闭firewalld防火墙
systemctl stop firewalld                                   # 关闭firewalld防火墙
systemctl disable firewalld                                # 关闭开机自启动
​
# 关闭selinux防火墙
setenforce 0                                               # 临时关闭selinux
vim /etc/selinux/config                                    # 修改配置文件,永久关闭selinux
# 修改的内容:SELINUX=disabled

4)配置yum源

备份文件

复制代码
cd /etc/yum.repos.d/
tar -zcvf repo.tar.gz *.repo                 # 将所有的.repo文件打包压缩成repo.tar.gz
rm -rf *.repo                                # 删除所有的repo文件

配置阿里云镜像源

复制代码
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo   # 下载文件
yum clean all                                                # 清除缓存
yum makecache                                                # 重新建立缓存索引

配置扩展镜像源

复制代码
yum install epel-release -y
2、安装Apache

1)检查Apache是否安装

使用rpm命令检查Apache是否安装

复制代码
命令:rpm
作用:查询软件的安装情况
语法:rpm [选项] | grep 软件名称
参数选项:
-q:查询,query
-a:全部,all
-e:卸载
-i:install,安装
-v:显示进度条
-h:表示以"#"形式显示进度条
-U:upgrade,升级
​
rpm -qa | grep httpd

2)yum安装Apache

使用yum命令安装httpd软件包

复制代码
yum install httpd -y

3)修改配置文件

配置/etc/httpd/conf/httpd.conf文件

复制代码
vim /etc/httpd/conf/httpd.conf

# 搜索ServerName,在下面添加一行(指定访问的端口号是80端口):
ServerName localhost:80

修改完成之后,一定要重启httpd服务

复制代码
systemctl restart httpd

4)查看监听端口

使用netstat -ntlp命令,查看是否有80端口监听

复制代码
netstat -ntlp | grep 80

-bash: netstat: 未找到命令

yum install net-tools -y

5)设置为开机启动

设置为开机自启动,这样就不用每次开机都需要重启httpd服务

复制代码
systemctl enable httpd

6)访问测试

查看服务器的IP,打开浏览器,在浏览器中输入以下地址:http://192.168.217.132/

3、安装MySQL

1)检查MySQL是否安装

使用rpm命令检查MySQL是否安装

复制代码
rpm -qa | grep mysql

2)下载mysql的yum源

由于yum源上默认没有mysql-server。所以必须去官网下载后在安装

复制代码
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

3)安装MySQL

安装mysql的客户端

复制代码
rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装MySQL服务端

复制代码
yum -y install mysql-community-server

4)启动MySQL

复制代码
systemctl restart mysqld

启动之后,可以监听3306端口

复制代码
netstat -ntlp | grep mysql

5)初始化MySQL

  • 初始化数据库

    默认情况下,数据库没有密码,也没有任何数据,必须要初始化,mysql自己带的初始化程序:mysql_secure_installation

复制代码
mysql_secure_installation

输入root账号旧密码

设置超级管理员root密码,注:默认为空,直接回车即可

移除匿名账户

不禁用root远程连接

不移除默认数据库(测试用例)

重新加载权限

  • 添加为开启自启动
复制代码
systemctl enable mysqld
  • 连接MySQL

可以通过mysql命令连接MySQL数据库。也可以通过外部的MySQL客户端工具进行连接

复制代码
mysql -uroot -p123456
#含义
# mysql : mysql客户端连接MySQL服务
# -uroot : 指定连接使用的账号为root
# -p123456 : 指定连接账号的秘密为123456
  • 查看数据库
复制代码
show databases;                                    # 查看数据库中的所有的库,注意后面一定要带上分号
exit                                               # 退出MySQL客户端
4、安装PHP

1)检查PHP是否安装

复制代码
rpm -qa | grep php

2)yum命令安装php

复制代码
yum -y install php

3)重启httpd服务

更改php配置一定要重启httpd服务

复制代码
systemctl restart httpd

4)测试LAMP环境是否可以使用

  • 使用cd命令进入/var/www/html目录
复制代码
cd /var/www/html/
  • 使用vim命令创建index.php文件
复制代码
vim index.php
  • 编写php代码
复制代码
<?php
    echo 'cloud';
?>

4)测试

在浏览器中输入地址:http://192.168.217.132/

5、部署Discuz!论坛

1)Discuz论坛概述

Discuz! 超过300万站长使用,全球成熟度最高、覆盖率最大的建站系统之一,拥有超过7000款应用。站长可以方便的通过 Discuz! 搭建社区论坛、知识付费网站、视频直播点播站、企业网站、同城社区、小程序、APP、图片素材站,游戏交流站,电商购物站、小说阅读、博客、拼车系统、房产信息、求职招聘、婚恋交友等等绝大多数类型的网站。Discuz!自2001年6月面世以来,已有22年的历史,Discuz!性能优异、功能全面、安全稳定,在社区论坛(BBS)软件领域全球市场占有率第一

2)下载源代码

下载地址:https://gitee.com/Discuz/DiscuzX

3)上传代码

将下载的压缩包文件上传到服务器的家目录中

4)解压缩

安装zip解压缩的应用:unzip

复制代码
yum install unzip -y

解压缩文件

复制代码
unzip DiscuzX-v3.5.zip

5)将源码移动到/var/www/html目录中

复制代码
mv upload/* /var/www/html
6、安装Discuz!论坛

1)升级php版本

复制代码
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --enable remi-php73
yum install -y php
systemctl restart httpd

2)设置目录的写权限

复制代码
chmod -R a+w /var/www/html/

3)安装MySQL的插件

复制代码
yum -y install php-mysqli
systemctl restart mysqld
systemctl restart httpd

4)安装php的插件

复制代码
yum install php-xml -y
systemctl restart httpd

5)指定安装方式

6)配置数据库

7、访问测试

1)访问网站

2)访问后台

http://192.168.217.132/admin.php?frames=yes&action=styles

三、wordpress博客系统部署
1、环境准备

1)准备一台新的服务,最小化安装,配置好网络及设置好IP

复制代码
systemctl stop NetworkManager

2)设置主机名

复制代码
hostnamectl set-hostname server01.com

3)关闭防火墙

复制代码
systemctl stop firewalld                                   # 关闭firewalld防火墙
systemctl disable firewalld                                # 关闭开机自启动
setenforce 0                                               # 临时关闭selinux
vim /etc/selinux/config                                    # 修改配置文件,永久关闭selinux
# 修改的内容:SELINUX=disabled

4)配置yum源

备份文件

复制代码
cd /etc/yum.repos.d/
tar -zcvf repo.tar.gz *.repo                                # 将所有的.repo文件打包压缩成repo.tar.gz
rm -rf *.repo                                               # 删除所有的repo文件

配置阿里云镜像源

复制代码
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo        # 下载文件
yum clean all                                                # 清除缓存
yum makecache                                                # 重新建立缓存索引

配置扩展镜像源

复制代码
yum install epel-release -y
2、上传安装包

将素材中的源码包上传到root账号的家目录中

3、编译安装MySQL

1)安装需求

软件版本 安装目录 数据目录 端口
mysql-5.6.31 /usr/local/mysql /usr/local/mysql/data 3306

2)创建mysql用户

复制代码
useradd -r -s /sbin/nologin mysql

-r : 表示创建一个系统用户

-s : 表示指定执行的shell

3)解压软件

复制代码
tar -zxvf mysql-5.6.31.tar.gz                              # 解压缩mysql
cd mysql-5.6.31                                            # 进入到mysql目录

4)源码配置

在配置之前,需要安装一些必要的插件,如:gcc``cmake

复制代码
yum install gcc-c++ -y
yum install cmake -y
yum -y install ncurses-devel
yum -y install autoconf

配置选项说明:

复制代码
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \                 # 安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data \                    # 数据目录
-DENABLED_LOCAL_INFILE=1 \                                 # 开启加载外部文件功能;1开启,0关闭
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                         # 将InnoDB存储引擎静态编译到服务器
-DMYSQL_TCP_PORT=3306 \                                    # 端口
-DDEFAULT_CHARSET=utf8mb4 \                                # 字符集
-DDEFAULT_COLLATION=utf8mb4_general_ci \                   # 字符校验规则
-DWITH_EXTRA_CHARSETS=all \                                # 扩展字符集
-DMYSQL_USER=mysql                                         # 用户身份mysql

编写一个cmake.sh脚本,用于执行配置选项,不然直接执行,容易出错(换行之类的)

复制代码
vim cmake.sh

# 将以下内容复制到脚本中

#!/bin/bash

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_USER=mysql

给脚本添加可执行的权限,执行脚本

复制代码
chmod a+x cmake.sh
./cmake.sh

5)编译并安装

复制代码
make && make install

整个编译安装的过程大约持续10-15分钟左右

6)更改数据目录权限

复制代码
chown -R mysql.mysql /usr/local/mysql/

7)初始化数据库

前提:

复制代码
# 清空环境
rm -f /etc/my.cnf
# 删除mysql相关的进程
ps -ef|grep mysqld
# pkill -9 mysqld

初始化数据库

复制代码
cd /usr/local/mysql/
./scripts/mysql_install_db --user=mysql

8)拷贝启动脚本

复制代码
pwd                                                    # 确认自己是否已经处于mysql的安装目录中
cp support-files/mysql.server /etc/init.d/mysql        # 拷贝文件

9)启动数据库

复制代码
# 启动前确认3306端口没有被占用,如果3306端口被占用,请kill掉之前的mysqld程序,如果没有被占用,此步省略
netstat -nltp|grep 3306
# 启动mysql(注意,此处不用systemctl命令)
service mysql start

10)设置密码

复制代码
/usr/local/mysql/bin/mysqladmin -u root password '123456'

11)测试验证

复制代码
cd /usr/local/mysql/bin                            # 切换到mysql的二进制目录中
./mysql -uroot -p123456

问:如果想要任何地方都可以执行MySQL命令,该怎么处理?

答:配置环境变量

临时解决:export PATH=/usr/local/mysql/bin/:$PATH

永久解决:

复制代码
vim /etc/profile

在文件的最后追加:export PATH=/usr/local/mysql/bin/:$PATH

配置文件生效:source /etc/profile

4、编译安装Apache

1)安装需求

版本 安装路径
httpd-2.4.37 /usr/local/

2)安装依赖

  • 安装apr软件
复制代码
yum -y install bzip2                                           # 安装bzip2
tar -xf apr-1.5.2.tar.bz2                                      # 解压缩软件
cd apr-1.5.2                                                   # 进入目录
./configure                                                    # 配置
make && make install                                           # 编译并安装
  • 安装apr-util软件
复制代码
tar -xf apr-util-1.5.4.tar.bz2                                # 解压缩软件
cd apr-util-1.5.4                                              # 进入目录
./configure --with-apr=/usr/local/apr/bin/apr-1-config         # 配置
make && make install                                           # 编译并安装

yum install -y bzip2

  • 安装pcre-devel
复制代码
yum -y install pcre-devel
  • 安装openssl-devel
复制代码
yum -y install openssl-devel

3)解压软件

复制代码
tar -xvf httpd-2.4.37.tar.bz2
cd httpd-2.4.37

4)配置

配置选项说明:

复制代码
# ./configure 
--enable-modules=all                                           # 加载所有支持模块
--enable-mods-shared=all                                       # 共享方式加载大部分常用的模块
--enable-so                                                    # 启动动态模块加载功能
--enable-rewrite                                               # 启用url地址重写功能
--enable-ssl                                                   # 编译ssl模块,支持https
--with-pcre                                                    # 支持正则表达式
--with-apr=/usr/local/apr/bin/apr-1-config                     # 指定依赖软件apr路径
--with-apr-util=/usr/local/apr/bin/apu-1-config
--with-mpm=prefork                            # 插入式并行处理模块,称为多路处理模块,Prefork 是类UNIX平台上默认的MPM

编写一个apache.sh脚本,用于执行配置选项,不然直接执行,容易出错(换行之类的)

复制代码
#!/bin/bash

./configure \
--enable-modules=all \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite \
--with-pcre \
--enable-ssl \
--with-mpm=prefork \
--with-apr=/usr/local/apr/bin/apr-1-config \
--with-apr-util=/usr/local/apr/bin/apu-1-config
复制代码
chmod +x apache.sh 
./apache.sh

5)编译安装

复制代码
make && make install

6)测试验证

生成如下目录即表示Apache安装成功

进入bin目录,执行./httpd,在浏览器输入地址http://192.168.217.132/

5、编译安装PHP

1)安装依赖

复制代码
yum install libcurl-devel -y 
yum install libxml2-devel -y
yum install libjpeg-devel -y
yum install libpng-devel -y
yum install freetype-devel -y

2)解压软件

复制代码
tar -xvf php-7.2.17.tar.xz
cd php-7.2.17

3)配置

配置选项说明:

复制代码
./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \        # 指定apxs路径,apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具
--with-mysqli \                                   # 以下三个是php的扩展,用于连接mysql数据库的
--with-pdo-mysql \
--with-zlib \
--with-curl \
--enable-zip \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-opcache \
--enable-mbstring \
--enable-mbregex \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-calendar \
--enable-bcmath

编写一个php.sh脚本,用于执行配置选项,不然直接执行,容易出错(换行之类的)

复制代码
#!/bin/bash

./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysqli \
--with-pdo-mysql \
--with-zlib \
--with-curl \
--enable-zip \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-opcache \
--enable-mbstring \
--enable-mbregex \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-calendar \
--enable-bcmath
复制代码
chmod +x php.sh 
./php.sh

4)编译安装

复制代码
make
复制代码
make install

5)测试验证

确认php成功安装,/usr/local/apache2/modules/libphp7.so确认有这个libphp7.so模块文件,就表示编译php成功

6、配置PHP

1)修改Apache主配置文件,vim /usr/local/apache2/conf/httpd.conf

复制代码
# 搜索ServerName,在下面添加一行(指定访问的端口号是80端口):
ServerName localhost:80     

# 配置语言支持
LoadModule negotiation_module modules/mod_negotiation.so           # 此模块打开注释
Include conf/extra/httpd-languages.conf                            # 打开此选项,扩展配置文件就生效了

# 加载php模块解析php页面,添加两行,告诉httpd把.php文件交给模块去编译
LoadModule php7_module modules/libphp7.so                          # 找到这一句,在这句下面加上两句
# 添加以下两行意思是以.php结尾的文件都认为是php程序文件,注意两句话的.php前面都是有一个空格的
AddHandler php7-script .php        
AddType text/html .php

# 默认主页加上index.php,并放在index.html前,支持php的首页文件
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

2)修改Apache的子配置文件,vim /usr/local/apache2/conf/extra/httpd-languages.conf

复制代码
DefaultLanguage zh-CN                                              # 打开注释,默认语言集改为中文    LanguagePriority zh-CN en ca cs                                    # 语言集优先集,把zh-CN 写到前面
7、启动测试环境

1)添加测试文件

复制代码
cd  /usr/local/apache2/htdocs
rm -f index.html
vim index.php

<?php
        phpinfo();
?>

2)启动Apache

如果之前已经启动过了httpd,则先关闭掉,在重启启动

复制代码
ps -ef | grep httpd
killall httpd

yum install psmisc -y

启动httpd

复制代码
cd /usr/local/apache2/bin/
./apachectl

3)访问测试

浏览器里输入:http://192.168.217.132

8、部署web应用

1)解压缩项目

复制代码
tar -zxvf wordpress-5.2.2-zh_CN.tar.gz

2)将源码复制到指定目录

复制代码
cp -R wordpress/* /usr/local/apache2/htdocs

3)创建数据库

复制代码
mysql -uroot -p123456
create database wordpress default charset utf8;
9、测试验证

1)访问

浏览器里输入:http://192.168.217.132

2)设置权限

复制代码
chown -R daemon.daemon /usr/local/apache2/htdocs/

课堂小结

  1. LAMP系统概述

  2. Discuz!论坛系统部署

  3. wordpress博客系统部署

课后作业

  1. 完成课堂的案例及练习

  2. 将今天的内容整理为思维导图的形式

扩展内容

相关推荐
maosheng11467 小时前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken8 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2918 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C8 小时前
CPU Cache
linux·cache
Hoshino.418 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
恒创科技HK9 小时前
通用型云服务器与计算型云服务器:您真正需要哪些配置?
运维·服务器
吴佳浩 Alben10 小时前
GPU 生产环境实践:硬件拓扑、显存管理与完整运维体系
运维·人工智能·pytorch·语言模型·transformer·vllm
播播资源10 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry11 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
学不完的11 小时前
Docker数据卷管理及优化
运维·docker·容器·eureka