centos7.6
lamp 192.168.254.13
redis 192.168.254.13php
利用discuz這個開源的論壇(就跟wordpress同樣)搭建一個動態網站,而且結合redis緩存數據庫來減輕mysql/mariadb數據庫的讀寫壓力html
認識關係型數據庫和非關係型數據庫是如何協調工做的
mysql
安裝依賴包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
下載包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程序包
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
安裝依賴環境
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
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(); ?>