实验环境
    
centos7.6
lamp 192.168.254.13
redis 192.168.254.13
     实验目的
    
利用discuz这个开源的论坛(就跟wordpress一样)搭建一个动态网站,并且结合redis缓存数据库来减轻mysql/mariadb数据库的读写压力
     认识关系型数据库和非关系型数据库是如何协调工作的
     
    
     lamp架构部分
    
安装依赖包
yum -y install php php-bcmath php-cli php-common php-gd php-ldap php-mbstring php-mysqlnd php-pear php-pdo php-xml php-xmlrpc php-devel yum install httpd yum install MariaDB
     
     进行php页面测试
    
vim /var/www/html/index.php <?php phpinfo(); ?> service httpd restart
     安装 discuz
    
     
     下载包
    
wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip
     
     解压包
    
[root@localhost ~]# unzip Discuz_X3.2_SC_UTF8.zip
     
     把论坛相关文件和目录拷贝到apache根目录
    
[root@localhost ~]# cp -R ./upload /var/www/html
     
     修改属主和属组
    
chown apache:apache -R ./upload 
     
     修改权限
    
[root@localhost html]# cd upload/ [root@localhost upload]# chmod -R 777 config [root@localhost upload]# chmod -R 777 data [root@localhost upload]# chmod -R 777 uc_client [root@localhost upload]# chmod -R 777 uc_server
     
     创建数据库
    
MariaDB [(none)]> create database discuz;
在浏览器输入http://192.168.254.13/upload/install
按提示走一遍向导就可以了
     redis部分
    
     redis应用程序的安装和配置
    
下载redis程序包
wget http://download.redis.io/releases/redis-3.2.1.tar.gz redis下载地址
     
     需要gcc环境
    
yum install -y gcc gcc-c++
     
     解压文件
    
tar -zxvf redis-3.2.1.tar.gz
     
     安装
    
cd redis-3.2.1 make PREFIX=/usr/local/redis install
     
     软链接一下命令
    
cp /usr/local/redis/bin/* /usr/local/bin/
     
     启动脚本
    
cp /root/redis-3.2.1/utils/redis_init_script /etc/init.d/redis
     
     给启动文件执行权限
    
chmod +x /etc/init.d/redis    
     
     创建redis配置目录
    
mkdir /etc/redis    
     
     复制配置文件
    
cp /root/redis-3.2.1/redis.conf /etc/redis/6379.conf
     
     修改配置文件
    
vi /etc/redis/6379.conf bind 0.0.0.0 #在61行 原本是127.0.0.1 改为0.0.0.0 这样才可以让lamp调用redis daemonize yes #在128行 找到这一行 原本为no 改为yes,yes表示以守护进程的方式启动
     
     增加内核参数
    
vim /etc/sysctl.conf vm.overcommit_memory=1 sysctl -p 作用:表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 /etc/init.d/redis start
     redis驱动程序的安装和配置
    
安装依赖环境
yum install -y gcc gcc-c++
     
     下载php连接mysql的驱动程序
    
wget https://github.com/phpredis/phpredis/archive/3.1.2.tar.gz
     
     解压
    
tar zvxf 3.1.2.tar.gz
     
     编译安装
    
cd phpredis-3.1.2/ phpize ./configure --with-php-config=/usr/bin/php-config --enable-redis && make && make install note: phpize是一个运行脚本,主要作用是检测php的环境还有就是在特定的目录生成相应的configure文件,这样make install之后, 生成的.so文件才会自动加载到php扩展目录下面。
     
     修改php.ini配置文件
    
vim /etc/php.ini extension= "/usr/lib64/php/modules/redis.so"
     
     验证
    
php -m |grep redis
     
     修改网站配置文件
    
cd /var/www/html/upload/config/
vim config_global.php #确认以下两项是否正确
// ————————– CONFIG MEMORY ————————— //
$_config[‘memory’][‘redis’][‘server’] = ‘192.168.254.13’;
$_config[‘memory’][‘redis’][‘port’] = 6379;
重启apache服务
service httpd restart
验证
1.查看当前的redis是否有数据
[root@localhost config]# redis-cli 127.0.0.1:6379> keys * (empty list or set)
     
     2.在discuz上创建一个用户,然后再去查看redis,如果出现以下数据说明写入的东西已被缓存
    
127.0.0.1:6379> keys * 1) "Sp6EHF_usergroup_10" 2) "Sp6EHF_common_member_count_2" 3) "Sp6EHF_usergroups" 4) "Sp6EHF_common_member_field_home_2" 5) "Sp6EHF_cronnextrun" 6) "Sp6EHF_common_member_status_2" 7) "Sp6EHF_stamptypeid" 8) "Sp6EHF_creditrule" 9) "Sp6EHF_userapp" 10) "Sp6EHF_diytemplatenamehome" 11) "Sp6EHF_setting" 12) "Sp6EHF_style_default" 13) "Sp6EHF_ipctrl" 14) "Sp6EHF_plugin" 15) "Sp6EHF_magic" 16) "Sp6EHF_pluginlanguage_system" 17) "Sp6EHF_pluginlanguage_script" 18) "Sp6EHF_fields_required" 19) "Sp6EHF_fields_register" 20) "Sp6EHF_common_member_2" 21) "Sp6EHF_usergroup_7" 22) "Sp6EHF_fields_optional" 23) "Sp6EHF_modreasons"
     
     3.在去查看mysql|mariadb数据库里面的数据是否有数据,fengzi就是新添加的用户,可以看到已经写入到数据库当中
    
MariaDB [discuz]> use discuz MariaDB [discuz]> select email,username,password,status from pre_common_member; +-----------------+-----------+----------------------------------+--------+ | email | username | password | status | +-----------------+-----------+----------------------------------+--------+ | admin@admin.com | admin | 2476b26ad347396b93759bd4c9056144 | 0 | | fengzi@qq.com | fengzi | 40894c6afbd4934988c811abedcd766b | 0 | +-----------------+-----------+----------------------------------+--------+
     
     4.删除fengzi这个用户之后在去用fengzi这个用户登录网站,可以发现照样可以登录,说明redis已经缓存到了我们的用户名和密码,可以直接在redis里验证,不需要调用mysql数据库
    
MariaDB [discuz]> delete from pre_common_member where username='fengzi'
     
     5.清空redis缓存,然后再去用fengzi登录,发现登录不了了,更加印证了我们的第4步
    
127.0.0.1:6379> flushall
     测试php和mariadb
    
vim /var/www/html/index.php <?php $conn = mysql_connect('127.0.0.1','root','root'), if ($conn) echo "OK"; else echo "Failure"; mysql_close(); phpinfo(); ?>
转载于:https://www.cnblogs.com/sgy-blin/p/11495939.html
 
