lnmp +redis 发布企业门户网站( 单机部署)

发布时间:2024年01月21日

lnmp +redis 发布企业门户网站( 单机部署)

操作系统环境:Centos 7.9

服务器IP:172.20.26.140

1、部署lnmp

yum install epel-release -y

yum install yum-utils

创建新的nginx.repo文件:

vim /etc/yum.repos.d/nginx.repo

添加

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=1

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

[nginx-mainline]

name=nginx mainline repo

baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/

gpgcheck=1

enabled=0

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

默认情况下,使用稳定的nginx软件包的存储库。如果要使用主线nginx软件包,请运行以下命令:

yum-config-manager --enable nginx-mainline

安装nginx、php、mariadb等

yum install nginx php php-fpm mariadb mairadb-server mariadb-devel? php-mysql php-redis php-devel -y

2、创建数据库

启动数据库服务

?systemctl start mariadb

登录数据库

mysql

或者mysql -uroot?-p -h127.0.0.1

create database discus charset utf8;

grant all on discuz.* to “discuz”@localhost identified by “discuz”; ?#(第一个discuz 是数据库,第二个discuz是用户,第三个discuz 是密码)

flush privileges;?? #使配置生效

退出再次登录

mysql -udiscuz -pdiscuz?? #用discuz用户登录 数据库

show databases;??? #查看到我们所创建的数据库

3、上传网站代码

cd /usr/src ?#进入源码目录下

rz 上传Discuz_X3.1_SC_UTF8 ??如果是公司网站代码,开发人员会提供网站代码

unzip Discuz_X3.1_SC_UTF8 -d /usr/share/nginx/html/? #解压到nginx web服务器默认发布目录下

chown apache. -R /usr/share/nginx/html/upload/?? #确认php进程的用户是谁?然后进行授权,这里php进程的用户是apache

systemctl start nginx? #启动nginx

?浏览器中输入nginx 服务器IP地址即可访问到nginx默认的发布页面。

vi /usr/share/nginx/html/index.html? ?#nginx网站的默认发布目录

可以修改“ welcome to nginx!” 内容

修改nginx配置文件

vi /etc/nginx/conf.d/default.conf

把upload 路径加上,同时添加index.php 索引文件

开启location 规则

systemctl restart nginx?? #重启nginx 服务

如果有问题可以查看日志

tail /var/log/nginx/error.log

检查端口是否有开启

?????? ss -ntlp

?????? systemctl start nginx php-fpm?? #启动nginx 和php-fpm

?????? rpm -qc nginx ????????????????#查看nginx配置文件路径

rpm -ql nginx? ????????????????#查看nginx发布目录路径

rpm -qd nginx? ???????????????#查看nginx帮助文档

4、配置网站安装向导

当前状态打红叉,当前状态不可写,由于php 进程的用户没有对以上目录及文件的写入权限,查看upload的权限755

ll /usr/share/nginx/html/upload/ -d

查看php 进程的用户是谁?如下显示,是apache 用户

ps -ef | grep php

chown apache. -R /usr/share/nginx/html/upload/

刷新页面,发现当前状态已变成可写,打绿勾

ll /usr/share/nginx/html/upload/ -d? #再查看一下权限

回到网页,点击 下一步

点击下一步

5、部署redis

rpm -q redis? #查看是否有安装过redis

yum install redis -y

systemctl start redis

netstat -ntlp?? #由于是单机部署,所以redis 监听的是127.0.01的 6379端口,server的IP地址设置为127.0.0.1,如果redis 在别的服务器上,server IP地址设置为redis 所在服务器的IP地址

vi /usr/share/nginx/html/upload/config/config_global.php

通过redis-cli

keys *? ??#查询一下缓存情况

刷新discuz网站,keys *? 没有数据

php -m??? #查询php 是否有redis 模块

如果前面已安装了php-redis 模块就不会出现这个现象,如果没有安装,继续安装一下

yum install php-redis -y

安装完成后,再查看一下,查询php 是否已经有了redis 模块

?重启一下redis 与php相连的服务模块 php-fpm (修改配置文件或者增加模块,记得重启服务)

systemctl restart php-fpm

再刷新一下discuz 网站,通过redis-cli

keys *? ??#查询一下键,发现已经有缓存数据了

如果nginx部署了多个网站需要做redis 缓存,需要进行区分,不要写到一个数据库里,

select 2 ???#进入另一个redis缓存数据库

redis 默认给我们提供了16个数据库,默认使用的是0号数据库

select 0

可以通过get 命令查看相关缓存信息

例如:disuz 网站用admin用户登录后,get GC41J3_common_member_1 就可以查询到admin 相关的信息(邮箱、用户名、密码等等)

查看一下redis 的配置文件路径以及配置文件内容

rpm -qc redis

vi /etc/redis.conf

redis 数据都存放在内存中,如果断电,内容丢失,有两种模式SNAPSHOTTING 模式(写入到.rdb格式文件)和APPEND ONLY MODE (写入到.aof格式文件)可以将数据存到磁盘中。

SNAPSHOTTING 模式:

也可以手动触发

save ?这是前台进行,会占用当前进程,如果用户正在进行写数据,它会进行阻塞。

bgsave 是通过fork执行的,叫写时复制,我们一般使用bgsave

写到redis的dump.rdb文件里

ls /var/lib/redis

APPEND ONLY MODE:追加模式

默认写入到appendonly.aof文件

appendfsync always?? #最多之丢失1个键

appendfsync everysec? #最多会丢失1秒的数据,追加形式,每秒执行,所以aof 比rdb 文件要大很多,所以redis 重启服务,redis 从磁盘加载文件时 速度要比rdb 慢一点

appendonly? #默认是关闭的 appendonly no ,也可以打开appendonly yes

redis 默认先加载aof文件,如果aof 没有数据,就把rdb清空,如果rdb 是先启动的,aof是后来追加的,那么开启aof或者修改配置文件后千万不能马上重启服务,执行 redis-cli 进来,再执行bgrewiteaof ,这时会将rdb文件内容写到aof文件中,然后重启服务,数据就不会丢失。

查看aof、rdb 文件内容

查看aof、rdb 文件大小

ll -h /var/lib/redis/*

通过上面文件大小比较,我们就点击了几下discuz网站,aof 文件比rdb文件大很多。

后续继续研究 aof 、rdb 工作原理,redis 主从,集群等等。

文章来源:https://blog.csdn.net/lqcbj/article/details/135640563
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。