CentOS7上使用yum搭建LNMP架构并实现wordpress博客实战

news2025/1/20 0:56:28

前言

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

文章目录

  • 前言
  • 一. 实验环境
  • 二.安装Nginx
    • 2.1 添加epel仓库
    • 2.2 安装nginx
  • 三.搭建PHP环境
    • 3.1 查看php环境要求
    • 3.2 添加php7.4的repo仓库
    • 3.3 安装PHP7.4
    • 3.4 配置PHP-FPM
      • 3.4.1 修改www.conf配置文件
      • 3.4.2 创建日志目录
      • 3.4.3 检查配置文件
    • 3.5 启动PHP-FPM并设置开机启动
    • 3.6 验证php环境
      • 3.6.1 创建php网页目录
      • 3.6.2 添加PHP代码
      • 3.6.2 修改nginx配置文件
      • 3.6.3 检查nginx语法
      • 3.6.4 启动nginx并设置开机启动
      • 3.6.5 检查php网页
  • 四.安装MySQL数据库
    • 4.1 安装MySQL的yum仓库
    • 4.2 修改MySQL的repo文件
    • 4.3 安装MySQL
    • 4.4 启动MySQL并设置开机启动
    • 4.5 修改MySQL密码
    • 4.6 创建用于wordpress的数据库和MySQL用户
  • 五.部署wordpress
    • 5.1 下载wordpress资源包
    • 5.2 解压资源包
    • 5.3 修改wordpress文件所属
    • 5.4 修改nginx配置
      • 5.4.1 修改nginx配置文件
      • 5.4.2 检查nginx语法
      • 5.4.2 重新读取
    • 5.5 安装wordpress
  • 六.总结

一. 实验环境

本次实验环境见下表

操作系统服务器IPhostname
centos7.910.0.0.7mufengrow7

如何查看相应的参数

二.安装Nginx

此时LNMP环境已经实现L了,我们第二步实现LNMP中的N,也就是部署Nginx。

本次实验的Nginx就通过yum源进行安装,如果大家想知道Nginx是如何实现Nginx编译安装,参考沐风晓月:【Linux】CentOS7操作系统安装nginx实战(多种方法,超详细)该文章有非常详细的关于Nginx的编译安装过程,保证一看就会。

2.1 添加epel仓库

因为CerntOS 7.9的默认仓库没有epel仓库,而我们需要安装的nginx在epel仓库里,所以想要通过epel仓库安装nginx,必须先安装epel仓库。

[root@mufengrow7 ~]# yum install -y epel-release

2.2 安装nginx

使用yum进行安装nginx

[root@mufengrow7 ~]# yum install -y nginx

能查看到nginx的版本就证明nginx已经安装成功

[root@mufengrow7 ~]# nginx -version
nginx version: nginx/1.20.1

三.搭建PHP环境

3.1 查看php环境要求

因为PHP的环境需要部署wordpress博客,所以我们需要到wordpress博客官网上查看不同wordpress版本对应的php环境。

这里我们先到官方查看关于wordpress系统要求:https://cn.wordpress.org/about/requirements/

从下面的截图我们可以知道新版本的wordpress需要

  • PHP7.4或更高的版本

  • MySQL5.7或更高的版本(MariaDB10.3或更高)

  • 但是也支持旧版本的PHP(PHP 5.6.20版本)环境和MySQL数据库(MySQL 5.0版本)

3.2 添加php7.4的repo仓库

本次实验我们直接使用yum的方式安装php7.4。

CentOS 7.9的默认仓库时没有php7.4的安装包。

但是php7版本的repo仓库,可以到清华镜像源的remi的enterprise中查找:https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/

[root@mufengrow7 ~]# yum install -y https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
#通过命令查看yum仓库的repo文件,发现安装了很多的PHP仓库
[root@mufengrow7 ~]# ll /etc/yum.repos.d/
total 64
drwxr-xr-x. 2 root root  220 Nov  3 15:52 backup
-rw-r--r--. 1 root root 1687 Nov  3 16:01 CentOS-Base.repo
-rw-r--r--. 1 root root  999 Nov  3 16:02 epel.repo
-rw-r--r--  1 root root 1358 Sep  5  2021 epel.repo.rpmnew

从上方的repo文件我们可以知道php7.4的repo仓库时在“remi-php74.repo”的repo文件里,所以我们可以使用yum-config-manager将其他非php7.4版本的repo仓库禁用掉。

3.3 安装PHP7.4

我们通过repo文件知道了php7.4的安装包叫php74,所以它的安装包应该是叫php74XXX,那我们安装PHP7.4的时了,需要注意我们安装包的名称。

其次我们至少需要安装3个包,分别是支持动态请求的php-fpm包,支持php连接数据库的mysqlnd包和php的加速器opcache包。至于详细的包名叫什么我们可以通过yum search命令来查找对应的安装包。

[root@mufengrow7 ~]# yum install -y php74-php-fpm php74-php-mysqlnd php74-php-opcache

3.4 配置PHP-FPM

想要修改php-fpm的配置文件,我们首先需要知道php-fpm的配置文件在哪里,我们可以通过下面的命令查看安装php-fpm是安装了什么:

[root@mufengrow7 ~]# rpm -ql php74-php-fpm
/etc/logrotate.d/php74-php-fpm
/etc/opt/remi/php74/php-fpm.conf
/etc/opt/remi/php74/php-fpm.d

从上面的结果来看,我们可以知道后缀为.conf的文件是php-fpm的配置文件了。我们接下来就修改它们。

3.4.1 修改www.conf配置文件

[root@mufengrow7 ~]# vim /etc/opt/remi/php74/php-fpm.d/www.conf
#主要修改以下内容:
user = nginx #设置用户
group = nginx #设置组
listen = 127.0.0.1:9000 #设置监听地址,如果nginx与php-fpm不在同一服务器上,需要修改此地址
pm.status_path = /pm_status #php-fpm状态页
access.log = /var/log/nginx/php74/$pool.access.log #php-fpm access日志路径
slowlog = /var/log/nginx/php74/php-fpm/$pool-www-slow.log #php-fpm的slowlog日志路径

3.4.2 创建日志目录

[root@mufengrow7 ~]# mkdir -p /var/log/nginx/php74

3.4.3 检查配置文件

通过php-fpm命令查看修改配置文件语法是否有问题,如果没有问题则返回成功的信息。

[root@mufengrow7 ~]# /opt/remi/php74/root/usr/sbin/php-fpm -t
[27-Apr-2023 18:05:54] NOTICE: configuration file /etc/opt/remi/php74/php-fpm.conf test is successful

3.5 启动PHP-FPM并设置开机启动

[root@mufengrow7 ~]# systemctl start php74-php-fpm.service
[root@mufengrow7 ~]# systemctl enable php74-php-fpm.service

3.6 验证php环境

3.6.1 创建php网页目录

[root@mufengrow7 ~]# mkdir -p /apps/php

3.6.2 添加PHP代码

[root@mufengrow7 ~]# cat >> /apps/php/index.php <<EOF
<?php
phpinfo();
?>
EOF

3.6.2 修改nginx配置文件

[root@mufengrow7 ~]# vim /etc/nginx/conf.d/wordpress.conf
server {
    listen 80;
    
    location / {
      root /apps/php/wordpress;
      index index.php;
    }

    location ~ \.php$ {
        root /apps/php;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

3.6.3 检查nginx语法

[root@mufengrow7 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

3.6.4 启动nginx并设置开机启动

[root@mufengrow7 ~]# systemctl start nginx
[root@mufengrow7 ~]# systemctl enable nginx

3.6.5 检查php网页

通过浏览器访问以下网页,查看php版本和php信息:

10.0.0.7/index.php

访问网页结果如下:

通过上面的图片可以知道php环境部署成功,且能够通过nginx访问php代码。

四.安装MySQL数据库

本次实验使用MySQL5.7数据库

4.1 安装MySQL的yum仓库

[root@mufengrow7 ~]# yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

4.2 修改MySQL的repo文件

MySQL仓库默认使用MySQL8的仓库,我们需要改成使用MySQL5.7的仓库。

[root@mufengrow7 ~]# vim /etc/yum.repos.d/mysql-community.repo
# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch
enabled=1 #设置设置为1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch
enabled=0 #设置设置为0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

4.3 安装MySQL

[root@mufengrow7 ~]# yum install -y mysql-community-server

4.4 启动MySQL并设置开机启动

[root@mufengrow7 ~]# systemctl start mysqld.service 
[root@mufengrow7 ~]# systemctl enable mysqld.service

4.5 修改MySQL密码

此处因为有风险提示,,所以我定义一个变量 pass=passwd
mima=Mufengrow123456@

然后下面的代码出现这两个都时候用$pass$mima 替代,你在用的时候一定要记得替换回来。

[root@mufengrow7 ~]# mysqladmin -uroot -p"`sed -En '/temporary password/s/.*: (.*)/\1/p' /var/log/mysqld.log`"$pass 

"$mima"

代码注释:

  • -p:指定密码(该选项是可选)。

  • -E:使用扩展的正则表达式。

  • -n:取消sed的自动打印。

  • password:指定新密码。

我是沐风晓月,博客主页:https://mufeng.blog.csdn.net/

4.6 创建用于wordpress的数据库和MySQL用户

[root@mufengrow7 ~]# mysql -uroot -pMufengrow123456@

#创建用于wordpress的数据库
mysql> create database mufengrow_wordpress;
Query OK, 1 row affected (0.00 sec)
#创建用于wordpress的用户
mysql> create user mufengrow@'%' identified by 'Mufengrow123456@';
Query OK, 0 rows affected (0.00 sec)
#给用户授权wordpress数据库
mysql> grant all on mufengrow_wordpress.* to mufengrow@'%';
Query OK, 0 rows affected (0.00 sec)

五.部署wordpress

5.1 下载wordpress资源包

可以在wordpress下载页面下载wordpress资源包

#进入php目录
[root@mufengrow7 ~]# cd /apps/php
#下载wordpress
[root@mufengrow7 php]# wget https://cn.wordpress.org/wordpress-6.2-zh_CN.tar.gz
#将测试文件移走
[root@mufengrow7 php]# mv index.php /tmp/

5.2 解压资源包

[root@mufengrow7 php]# tar xf wordpress-6.2-zh_CN.tar.gz
#查看解压出来的文件
[root@mufengrow7 php]# ls
wordpress  wordpress-6.2-zh_CN.tar.gz

5.3 修改wordpress文件所属

[root@mufengrow7 php]# chown -R nginx.nginx /apps/php/

5.4 修改nginx配置

5.4.1 修改nginx配置文件

[root@mufengrow7 php]# vim /etc/nginx/conf.d/wordpress.conf
server {
    listen 80;
    
    location / {
      root /apps/php/wordpress;
      index index.php;
    }

    location ~ \.php$ {
        root /apps/php/wordpress; #修改为wordpress的路径
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ ^/(ping|pm_status)$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
    }
}

5.4.2 检查nginx语法

[root@mufengrow7 php]# nginx -t

5.4.2 重新读取

通过重启nginx,让nginx重新读取配置文件

[root@mufengrow7 php]# systemctl restart nginx

5.5 安装wordpress

浏览器访问:

10.0.0.7

使用以上地址访问会自动跳转到wordpress的安装页面,点击“现在就开始!”开始安装wordpress

输入数据库信息,点击“提交”

点击“运行安装程序”

输入wordpress站点信息,点击“安装wordpress”

点击“登录”,进入登录页面

输入用户信息,登录wordpress

登录wordpress的页面

到此LNMP+wordpress搭建完毕,如果php缺少某个模块可以自行安装,查看php模块可以通过php-fpm -m命令查看。

我是沐风晓月,博客主页:https://mufeng.blog.csdn.net/

六.总结

  1. LNMP环境分别是“Linux”,“Nginx”,“Mysql”,“PHP”。
  2. 我们在部署php环境和MySQL数据库的时候需要考虑到代码需要什么版本的php。要清楚“约定大于配置”的意思。
  3. 本次实验都可以通过yum仓库进行安装,前提是找到对应软件的yum仓库
  4. php-fpm的配置可以根据需求进行修改。
  5. nginx配置文件中的“fastcgi_pass”的地址需要根据php-fpm的设置来定义,如果php-fpm与nginx不在同一服务器上,需要修改地址。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/469372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

魔兽worldserver.conf 服务端配置文件说明

魔兽worldserver.conf 服务端配置文件说明 我是艾西&#xff0c;今天把很多小伙伴需要的魔兽worldserver.conf 服务端配置文件说明分享给大家&#xff0c;大家可以自己研究参考下 worldserver.conf 这个文件是服务端的配置文件&#xff0c;可以在这里做很多个性化修改 注意&a…

SpringSecurity跌坑指南

SpringSecurity跌坑指南 1&#xff0c;事情原委 这两天开始了毕业设计&#xff0c;但是突然发现自己的java方面的基础比较薄弱&#xff0c;于是决定自己从头到尾的开发一个java项目 要说跌的最惨的坑&#xff0c;莫过于springsecurity&#xff0c;如果你只是想要在项目里面配…

〖ChatGPT实践指南 - 零基础扫盲篇⑦〗- 基于 Python 实现的 OpenAI-Library 的简单使用

文章目录 ⭐ python 安装 OpenAI library⭐ 创建 openai.py 进行测试⭐ openai.Completion.create() 方法的小拓展 该章节我们呢来学习一下 OpenAI-Library 的使用&#xff0c;OpenAI-Library 是 OpenAI 官方给我们提供的各种开发语言的库&#xff0c;供我们使用。在前面的章节…

【无标题】基于matlab的长短期神经网络lstm的股票预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的股票预测 MATALB编程实现&#xff0c;附有代码 效果图 结果分析 展望 参考论文 背影 股票市场的波动十分巨大&#xff0c;由于一些不确定因素的影响&#xff0c;导致很难对股票进行投资盈利。因此&…

数据库 SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确 解决方法

目录 一、错误提示信息&#xff1a; 二、原因分析&#xff1a; 三、解决方法&#xff1a; 四、执行完成结果&#xff1a; 五、重要说明 一、错误提示信息&#xff1a; 本文验证是数据库中的baiduAi_0258表无法通过select语句ID条件查询&#xff0c; 如执行 select * fro…

远程桌面,openGL

x11、xserver看另一篇博客 openGL是一种规范&#xff0c;用于绘制图像 OpenGL是Khronos Group开发维护的一个规范&#xff08;也就是提供了一种接口&#xff09;&#xff0c;它主要为我们定义了用来操作图形和图片的一系列函数的API&#xff0c;需要注意的是OpenGL本身并非API。…

vscode 配置有误导致的一次Linux 崩溃

一、问题描述 1. 要实现的功能 编写一个Linux 按键驱动&#xff0c;按下按键时&#xff0c;产生中断&#xff0c;在中断中启动定时器进行防抖处理。 2. 出现的问题 在中断处理函数中&#xff0c;调用 add_timer 函数设置定时器超时函数&#xff0c;并启动定时器。编写完驱动…

【消息队列】Apache Pulsar存储计算分离

前言 对于一个互联网项目来说&#xff0c;一般除了在语言层面的技术选型外&#xff0c;也会引入各种中间件&#xff0c;比如缓存、消息队列、搜索、NoSQL等&#xff0c;但是跳出语言层面来看的话&#xff0c;其实我们庖丁解牛之后&#xff0c;每个中间件都解决了特定的问题。 …

计组 作业九

作业9 题量: 36 满分: 100 作答时间:04-27 10:56至05-10 23:59 89.5分 一. 单选题&#xff08;共18题&#xff0c;39分&#xff09; 1. (单选题, 2分)Intel80486是32位微处理器,Core是______位微处理器。 A. 16B. 32C. 48D. 64 我的答案…

20.网络爬虫—Scrapy-Redis分布式爬虫

网络爬虫—Scrapy-redis详讲 Redis的安装与使用分布式概念和作用分布式爬虫分布式爬虫特点redis的使用Redis 操作/启动 Redis Desktop Manager下载特点和架构安装和使用Scrapy-redis 代码部署spider文件 settings文件 前言&#xff1a; &#x1f3d8;️&#x1f3d8;️个人简介…

wsl2使用open3d等进行图像绘制

在~/.bashrc文件中添加两个环境变量 export DISPLAY"grep nameserver /etc/resolv.conf | sed s/nameserver //:0" export LIBGL_ALWAYS_INDIRECT0 第一行是让wsl将openGL命令&#xff08;图形绘制命令&#xff09;输出到哪里&#xff0c;也就是x-server的位置&…

【Linux】指令(上)

⭐博客主页&#xff1a;️CS semi主页 ⭐欢迎关注&#xff1a;点赞收藏留言 ⭐系列专栏&#xff1a;Linux ⭐代码仓库&#xff1a;Linux 家人们更新不易&#xff0c;你们的点赞和关注对我而言十分重要&#xff0c;友友们麻烦多多点赞&#xff0b;关注&#xff0c;你们的支持是我…

机器学习在生态、环境经济学中的应用及论文写作

近年来&#xff0c;人工智能领域已经取得突破性进展&#xff0c;对经济社会各个领域都产生了重大影响&#xff0c;结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一&#xff0c;目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…

08_ThreadPool线程池

1. 架构说明 Java中的线程池是通过Executor框架实现的&#xff0c;该框架中用到了Executor&#xff0c;ExecutorService&#xff0c;ThreadPoolExecutor这几个类。 Executor接口是顶层接口&#xff0c;只有一个execute方法&#xff0c;过于简单。通常不使用它&#xff0c;而是…

什么是shell脚本和简单shell脚本练习

文章目录 什么是shell脚本和简单shell脚本练习什么是shell脚本为什么要学习shell脚本第一个脚本编写与执行编写第一个脚本 简单的shell脚本练习简单案例交互式脚本&#xff1a;变量内容由用户决定随日期变化&#xff1a;利用date建立文件数值运算&#xff1a;简单的加减乘除数值…

java内存占用过大分析,mat内存快照分析

背景 最近功能模块上线后&#xff0c;生产内存占用显著提升&#xff0c;查看gc日志发现年轻代频繁从2G回收到60M左右&#xff0c;猜测是在方法中频繁创建大对象导致&#xff0c;由于一时间无法通过review代码找出问题所在&#xff0c;只好将生产jvm内存快照dump后通过java mem…

Zotero+坚果云打造多设备同步的文献管理工具(保姆级教程)

Zotero坚果云打造多设备同步的文献管理工具&#xff08;保姆级教程&#xff09; 文章目录 Zotero坚果云打造多设备同步的文献管理工具&#xff08;保姆级教程&#xff09;Zotero介绍所需软件或插件实现方式步骤1&#xff1a;坚果云配置步骤2&#xff1a;Zotero配置步骤3&#x…

细讲shell中的循环语句--for语句

目录 一:何为循环 1.循环概述 2.使用循环的好处 二&#xff1a;for循环语句 1.for语句的用法 ​2. 语法结构 &#xff08;1&#xff09;一般格式 &#xff08;2&#xff09;类C语言格式 &#xff08;3&#xff09;死循环 3.事例 ​4.常用转义符 5.制作九九乘法表 三&…

旧照片修复-模糊图片变清晰-2023年度最强神器 codeformer

CodeFormer是一种基于AI技术深度学习的人脸复原模型&#xff0c;由南洋理工大学和商汤科技联合研究中心联合开发。该模型通过结合了VQGAN和Transformer等技术&#xff0c;可以通过提供模糊或马赛克图像来生成清晰的原始图像。 功能&#xff1a; 1、老照片修复 2、黑白照片彩色…

LeetCode 2641 二叉树的堂兄弟节点 II

LeetCode 2641 二叉树的堂兄弟节点 II 给你一棵二叉树的根 root &#xff0c;请你将每个节点的值替换成该节点的所有 堂兄弟节点值的和 。 如果两个节点在树中有相同的深度且它们的父节点不同&#xff0c;那么它们互为 堂兄弟 。 请你返回修改值之后&#xff0c;树的根 root …