文章目录
服务器 | IP |
---|---|
LAMP服务器 | 192.168.1.200 |
Redis服务器(主库) | 192.168.1.210 |
一、安装LAMP环境(LAMP服务器)
参考博客:https://blog.csdn.net/renfeigui0/article/details/102813376
LAMP软件名称 | 软件版本号 | 查询命令 |
---|---|---|
linux系统 | CentOS Linux release 8.0.1905 (Core) | cat /etc/redhat-release |
Apache | httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 | rpm -qa | grep httpd |
mariadb | mariadb-server-10.3.11-2.module_el8.0.0+35+6f2527ed.x86_64 | rpm -qa | grep mariadb |
php | php-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 | rpm -qa | grep php |
二、安装配置Discuz论坛(Discuz_X3.4、LAMP服务器)
参考博客:https://blog.csdn.net/renfeigui0/article/details/102819994
三、安装php和redis连接驱动(LAMP服务器)
1、准备编译环境,安装编译器gcc,工具make。
yum install -y gcc
yum install -y make
yum install -y php-devel
yum install -y php-fpm
2、网站:http://pecl.php.net/package/redis,根据安装的php版本选择合适的php和redis连接驱动软件包下载。
php -v
wget https://pecl.php.net/get/redis-5.0.2.tgz
3、解压、编译、安装php和redis连接驱动。
ls
tar -zxf redis-5.0.2.tgz
ls
mv redis-5.0.2 /usr/local/redis
cd /usr/local/redis
phpize
find / -name php-config
./configure --with-php-config=/usr/bin/php-config
make
make install
4、创建php中redis扩展的配置文件,添加内容如下图。
echo '; Enable redis extension module' > /etc/php.d/30-redis.ini
echo 'extension=redis' >> /etc/php.d/30-redis.ini
5、重启php、httpd服务。
systemctl restart httpd
systemctl restart php-fpm
6、查看php-pecl-redis安装是否成功,成功如下图。
php -m |grep redis
7、也可以创建文件/var/www/html/test_redis.php,写入内容 “<?php phpinfo(); ?>” 。使用浏览器访问http://192.168.1.200/test_redis.php,如果显示如下图,则说明php-pecl-redis安装成功。
touch /var/www/html/test_redis.php
echo "<?php phpinfo(); ?>" > /var/www/html/test_redis.php
8、编辑网站配置文件config_global.php,设置redis服务器地址为192.168.1.210。
find / -name config_global.php
vi /var/www/html/config/config_global.php
9、重启httpd服务。
systemctl restart httpd
四、Redis服务器安装redis服务
1、准备编译环境,安装编译器gcc,工具make。
yum install -y gcc
yum install -y make
2、官网https://redis.io/下载redis。
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
3、解压,安装软件包。若使用make命令安装报错如下图,那么使用make MALLOC=libc命令即可完成安装。
ls
tar xzf redis-5.0.5.tar.gz #解压软件包
ls
mv redis-5.0.5 /usr/local/redis #将redis-5.0.5移动至/usr/local/redis目录
cd /usr/local/redis/ #进入目录
make #安装
# make MALLOC=libc
4、启动redis服务,如下图。
/usr/local/redis/src/redis-server
5、ctrl+c,退出前台redis服务。
6、设置redis服务后台启动。
方法一
nohup /usr/local/redis/src/redis-server /usr/local/redis/redis.conf #后台启动redis服务
方法二
vi /usr/local/redis/redis.conf #编辑配置,修改daemonize项为yes,如下图。
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf #启动redis服务
7、启动redis服务,本地测试Redis。
/usr/local/redis/src/redis-cli
8、查找并编辑redis.conf,在下图位置“JUST COMMENT THE FOLLOWING LINE.”下方,增加redis服务器本机IP(192.168.1.210),设置后其他主机可以远程访问本机的redis服务。未设置则只能本机127.0.0.1访问redis服务。
find / -name redis.conf
vi /usr/local/redis/redis.conf
9、防火墙开放6379端口,否则远程连接redis出现如下错误“No route to host not connected”。
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --query-port=6379/tcp
10、重启redis服务,成功启动服务如下图,两个IP监听6379端口。
/usr/local/redis/src/redis-cli -p 6379 shutdown
netstat -anp |grep redis
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf
netstat -anp |grep redis
11、redis常用命令如下。
/usr/local/redis/src/redis-server #前台启动redis服务,ctrl+c可退出服务
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf #按配置文件启动redis服务
nohup /usr/local/redis/src/redis-server /usr/local/redis/redis.conf #后台启动redis服务
pkill redis #停止后台redis服务
/usr/local/redis/src/redis-cli -p 6379 shutdown #停止后台redis服务
/usr/local/redis/src/redis-cli -p 6379 -h 192.168.1.210 #连接192.168.1.210redis服务
/usr/local/redis/src/redis-cli #启动客户端
/usr/local/redis/src/redis-cli shutdown #停止客户端
rm -rf /usr/local/redis #删除安装目录,卸载redis程序
五、测试redis缓存网站数据
1、浏览器输入192.168.1.200,打开论坛网站,登陆论坛账户。
2、redis服务器,打开redis服务,打开redis客户端,运行命令"keys
*",出现如下图所示内容,则证明Redis成功缓存LAMP+Discuz网站信息数据。
/usr/local/redis/src/redis-cli
keys *
3、访问LAMP+Discuz网站192.168.1.200,新建论坛测试用户redis,密码123456,此时用户数据第一次注册,用户名和密码会写入到MySQL数据库表中,同时也会将该数据写入至Redis缓存中,如图所示。
4、将redis用户相关信息从MySQL的newdb库的pre_common_member表中删除。
mysql -uroot -p
MariaDB [(none)]> show databases;
MariaDB [(none)]> use newdb;
MariaDB [newdb]> select username,password from pre_common_member;
MariaDB [newdb]> delete from pre_common_member where username='redis';
MariaDB [newdb]> select username,password from pre_common_member;
5、删除数据库中账号密码后,通过redistest账户依然可以正常登录192.168.1.170论坛网站,过程如图一。关闭redis服务,通过redistest账户密码登录,进入的是新注册界面,过程如下图二、图三。则证明此数据读取的是Redis缓存服务器的数据。
pkill redis #停止后台redis服务
图一
图二
图三