news 2026/4/23 20:52:56

LAMP项目部署——8day

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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/data3306

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

扩展内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!