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. 将今天的内容整理为思维导图的形式

扩展内容

相关推荐
毕设源码-郭学长5 小时前
【开题答辩全过程】以 基于微服务的网络运维管理系统设计与实现为例,包含答辩的问题和答案
运维·网络·微服务
徐徐图之!5 小时前
二、开始我们的运维之路&运维学习路线
linux·运维·云计算
源宇宙十三站5 小时前
Linux故障诊断系列2-诊断系统启动问题&识别硬件故障
linux
Ydwlcloud5 小时前
2025年腾讯云支付宝充值教程:步骤详解与支付渠道新思路
服务器·人工智能·云计算·腾讯云
semantist@语校5 小时前
第五十四篇|从事实字段到推理边界:名古屋国际外语学院Prompt生成中的过度推断防御设计
大数据·linux·服务器·人工智能·百度·语言模型·prompt
dlhto5 小时前
Markdown转Word操作指南
linux·centos·word
武帝为此5 小时前
【NGINX 介绍与安装】
运维·nginx
scx_link6 小时前
使用docker安装ollama及ollama拉取模型的总结
运维·docker·容器·ollama
梦里不知身是客116 小时前
FIFO调度器在工作实例中的应用
运维·网络·智能路由器