lamp+redis

實驗環境

centos7.6
lamp 192.168.254.13
redis 192.168.254.13php

實驗目的

利用discuz這個開源的論壇(就跟wordpress同樣)搭建一個動態網站,而且結合redis緩存數據庫來減輕mysql/mariadb數據庫的讀寫壓力html

認識關係型數據庫和非關係型數據庫是如何協調工做的
mysql

lamp架構部分

安裝依賴包c++

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頁面測試git

vim /var/www/html/index.php
<?php
phpinfo();
?>
service httpd restart

安裝 discuz


下載包github

wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip 

 


解壓包redis

[root@localhost ~]# unzip Discuz_X3.2_SC_UTF8.zip 

 


把論壇相關文件和目錄拷貝到apache根目錄sql

[root@localhost ~]# cp -R ./upload /var/www/html

 


修改屬主和屬組數據庫

chown apache:apache -R ./upload 

 


修改權限apache

[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();
?>
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息