1.使用phpmyadmin實現cookie和session
2.使用自己理解的方式,解釋一下cookie和session
3.使用代碼的方式也可以(VScode 有興趣的同學)
cookie和session個人理解:
首先他倆不一樣的地方就是cookie是存儲在瀏覽器,session存儲在服務器
然后當一個用戶第一次請求服務器的時候,服務器會返回瀏覽器一個session_id,然后瀏覽器把這個session_id存儲在瀏覽器,就是cookie里面,然后當這個用戶下次再請求服務器的時候,瀏覽器就會帶着cookie里面的存儲session_id,然后當服務器拿到這個session_id的時候就會知道是哪個用戶發送過來的請求,這個用戶在服務器里面都存儲了什么東西,每個用戶session_id都不一樣,這也就相當於用戶在服務器里面的身份證
使用phpmyadmin實現cookie和session
環境准備
服務器名 | 外網IP | 內網IP | 搭建服務 | 角色 |
---|---|---|---|---|
web01 | 10.0.0.7 | 172.16.1.7 | nginx,php-fpm,phpmyadmin | web服務器 |
web02 | 10.0.0.8 | 172.16.1.8 | nginx,php-fpm,phpmyadmin | web服務器 |
nfs | 10.0.0.31 | 172.16.1.31 | redis | redis服務器 |
lb01 | 10.0.0.5 | 172.16.1.5 | nginx | 負載均衡服務器 |
db01 | 10.0.0.51 | 172.16.1.51 | mariadb | 數據庫服務器 |
web01配置
#### 上傳nginx和php-fpm的壓縮包
[root@web01 ~]# rz -E
#### 解壓
[root@web01 ~]# tar xf php_nginx.tgz
#### 進入站點目錄安裝
[root@web01 ~]# cd root/nginx_php/
[root@web01 nginx_php]# rpm -Uvh *
#### 創建用戶組和用戶
[root@web01 nginx_php]# groupadd www -g 666
[root@web01 nginx_php]# useradd www -u 666 -g 666 -s /sbin/nologin -M
#### 修改nginx的主配置文件
[root@web01 ~]# cd /etc/nginx
[root@web01 nginx]# vim nginx.conf
user www;
worker_processes 1;
#### 修改php-fpm的配置文件
[root@web01 nginx]# vim /etc/php-fpm.d/www.conf
user = www
; RPM: Keep a group allowed to write in log dir.
group = www
#### 編輯nginx的配置文件
[root@web01 nginx]# vim zh.test.com
[root@web01 nginx]# vim blog.test.com
#### 檢測語法
[root@web01 nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
#### 啟動nginx並加入開機自啟
[root@web01 nginx]# systemctl start nginx
[root@web01 nginx]# systemctl enable nginx
#### 啟動php-fpm並加入開機自啟
[root@web01 nginx]# systemctl start php-fpm
[root@web01 nginx]# systemctl enable php-fpm
#### 創建站點目錄並進入站點目錄上傳服務的壓縮包
[root@web01 nginx]# mkdir /code/zh -p
[root@web01 nginx]# mkdir /code/wordpress
[root@web01 nginx]# cd /code/zh
[root@web01 zh]# rz
[root@web01 zh]# cd ../wordpress/
[root@web01 wordpress]# rz
#### 解壓並授權
[root@web01 wordpress]# tar xf wordpress-5.0.3-zh_CN.tar.gz
[root@web01 wordpress]# mv wordpress/* ./
[root@web01 wordpress]# cd ../zh/
[root@web01 zh]# unzip WeCenter_3-2-1.zip
[root@web01 zh]# mv WeCenter_3-2-1/* ./
#### 授權目錄
[root@web01 ~]# chown www.www /code -R
#### 域名解析
#### 瀏覽器訪問
web02配置
#### 上傳nginx和php-fpm的壓縮包
[root@web02 ~]# rz
[root@web02 ~]#
#### 解壓
[root@web02 ~]# tar xf php_nginx.tgz
#### 進入站點目錄安裝所有rpm
[root@web02 nginx_php]# rpm -Uvh *rpm
#### 創建用戶和用戶組
[root@web02 nginx_php]# groupadd www -g 666
[root@web02 nginx_php]# useradd www -u 666 -g 666 -s /sbin/nologin -M
#### 把web01的nginx配置文件傳到web02
[root@web01 ~]# rsync -avz /etc/nginx/conf.d/ 172.16.1.8:/etc/nginx/conf.d/
#### 把web01的/code目錄傳到web02的/目錄下
[root@web01 ~]# rsync -avz /code 172.16.1.8:/
#### 修改用戶
[root@web02 conf.d]# !v
vim /etc/nginx/nginx.conf
user www;
worker_processes 1;
[root@web02 conf.d]# vim /etc/php-fpm.d/www.conf
user = www
; RPM: Keep a group allowed to write in log dir.
group = www
#### 授權目錄
[root@web02 conf.d]# chown -R www.www /code
#### 檢測語法
[root@web02 nginx]# nginx -t
#### 域名解析
window+r 打開運行框,輸入drivers,然后點開etc目錄用管理員身份打開hosts文件做域名解析
#### 啟動nginx加入開機自啟
[root@web02 nginx]# systemctl start nginx
[root@web02nginx]# systemctl enable nginx
#### 啟動php-fpm並加入開機自啟
[root@web02 nginx]# systemctl start php-fpm
[root@web02 nginx]# systemctl enable php-fpm
db01配置
#### 下載mariadb-server
[root@db01 ~]# yum install -y mariadb-server
#### 啟動並加入開機自啟
[root@db01 ~]# systemctl start mariadb.service
[root@db01 ~]# systemctl enable mariadb.service
#### 給root用戶添加密碼
[root@db01 ~]# mysqladmin -uroot password '123'
#### 登錄
[root@db01 ~]# mysql -uroot -p123
#### 創建庫
MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> create database zh ;
Query OK, 1 row affected (0.00 sec)
#### 創建用戶和密碼
MariaDB [(none)]> grant all on *.* to wzh_user@'%' identified by '111'
-> ;
Query OK, 0 rows affected (0.00 sec)
nfs配置
#### 下載
[root@nfs ~]# yum install redis -y
#### 配置redis監聽的網段
[root@nfs ~]# sed -i '/^bind/c bind 127.0.0.1 172.16.1.31' /etc/redis.conf
#### 啟動並添加開機自啟redis
[root@nfs ~]# systemctl start redis
[root@nfs ~]# systemctl enable redis
#### 檢查端口
[root@nfs ~]# netstat -lntup|grep redis
tcp 0 0 172.16.1.31:6379 0.0.0.0:* LISTEN 7654/redis-server 1
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 7654/redis-server 1
#### 修改web服務器的php.ini配置文件
[root@web01 ~]# vim /etc/php.ini
session.save_handler = redis
session.save_path = "tcp://172.16.1.31:6379"
session.auto_start = 1
#### 注釋/etc/php.fpm.d/www.conf配置文件的內容
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
;php_value[session.save_handler] = files
;php_value[session.save_path] = /var/lib/php/session
;php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
#### 重新啟動php-fpm
[root@web01 ~]# systemctl restart php-fpm
#### 將修改之后的文傳送到web02
[root@web01 ~]# scp /etc/php.ini root@172.16.1.8:/etc/php.ini
root@172.16.1.8's password:
#### 重啟web02的php-fpm
[root@web02 phpmyadmin]# systemctl restart
web01配置phpmyadmin
#### 編輯nginx配置文件
[root@web01 conf.d]# cat phpmyadmin.com.conf
server {
listen 80;
server_name phpmyadmin.com;
root /code/phpmyadmin;
index index.php index.html;
location ~ \.php$ {
root /code/phpmyadmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
#### 檢測語法
[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
#### 重新加載nginx
[root@web01 conf.d]# systemctl reload nginx
#### 創建站點目錄
[root@web01 conf.d]# mkdir /code/phpmyadmin
#### 上傳安裝包
[root@web01 conf.d]# cd /code/phpmyadmin/
[root@web01 phpmyadmin]# rz
[root@web01 phpmyadmin]# ll
total 10804
-rw-r--r-- 1 root root 11060845 May 26 19:59 phpMyAdmin-4.9.0.1-all-languages_(1).zip
#### 解壓
[root@web01 phpmyadmin]# unzip phpMyAdmin-4.9.0.1-all-languages_\(1\).zip
#### 將解壓的東西移動到phpmyadmin目錄
[root@web01 phpmyadmin]# mv phpMyAdmin-4.9.0.1-all-languages/* ./
#### 授權
[root@web01 phpmyadmin]# chown -R www.www /code
#### 域名解析
window+r 打開運行框,輸入drivers,然后點開etc目錄用管理員身份打開hosts文件做域名解析
#### 配置文件授權
[root@web01 code]# chown www.www -R /var/lib/php/
#### 訪問
####
web02配置phpmyadmin**
#### 從web01上面導數據
[root@web01 ~]# scp -r /code/phpmyadmin 172.16.1.8:/code
#### phpmyadmin的配置文件發送到web02
[root@web01 ~]# scp /etc/nginx/conf.d/phpmyadmin.com.conf 172.16.1.8:/etc/nginx/conf.d/
#### 授權
[root@web02 ~]# chown -R www.www /code
#### 修改配置
[root@web02 code]# cp config.sample.inc.php config.inc.php
[root@web02 phpmyadmin]# vim config.inc.php
/server 找到localhost改成10.0.0.31的ip
#### 域名解析
lb01負載均衡配置
#### 安裝nginx,上傳nginx的壓縮包到服務器
[root@lb01 ~]# rz
#### 解壓
-rw-r--r-- 1 root root 20453237 May 22 15:20 php_nginx.tgz
[root@lb01 ~]# tar xf php_nginx.tgz
#### 安裝nginx
[root@lb01 ~]# cd root/nginx_php/
[root@lb01 nginx_php]# yum localinstall nginx-1.18.0-1.el7.ngx.x86_64.rpm
#### 編輯nginx的proxy的優化文件,以后可以直接調用參數
[root@lb01 nginx]# vim /etc/nginx/proxy_params
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_buffering on;
proxy_buffers 8 4k;
proxy_buffer_size 4k;
#### 編輯nginx的代理文件
#### 需要用到 ngx_http_upstream_module模塊
#### 官網寫法
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;
server backup1.example.com:8080 backup;
server backup2.example.com:8080 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
#### 實際編輯配置文件寫法
[root@lb01 ~]# vim /etc/nginx/conf.d/blog.wzh.com.conf
upstream blog {
server 172.16.1.7;
server 172.16.1.8;
server 172.16.1.9;
}
server {
listen 80;
server_name blog.test.com
proxy_pass http://blog;
include proxy_params;
}
}
[root@lb01 ~]# vim /etc/nginx/conf.d/zh.wzh.com.conf
upstream zh {
server 172.16.1.7;
server 172.16.1.8;
server 172.16.1.9;
}
server {
listen 80;
server_name zh.test.com;
location / {
proxy_pass http://zh;
include proxy_params;
}
}
[root@lb01 conf.d]# cat phpmyadmin.com.conf
upstream phpmyadmin {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 80;
server_name phpmyadmin.com;
location / {
proxy_pass http://phpmyadmin;
include proxy_params;
}
}
#### 檢查語法
[root@lb01 ~]# nginx -t
#### 開啟nginx並加入開機自啟
[root@lb01 ~]# systemctl start nginx
[root@lb01 ~]# systemctl enable nginx
#### 根據權重分配請求,默認都是1,根據不同的服務器的核數處理能力分配
#### 編輯配置文件
[root@lb01 ~]# vim /etc/nginx/conf.d/zh.wzh.com.conf
upstream zh {
server 172.16.1.7 weight=4;
server 172.16.1.8 weight=2;
server 172.16.1.9 weight=3;
}
server {
listen 80;
server_name zh.test.com;
location / {
proxy_pass http://zh;
include proxy_params;
}
}
#### 做域名解析,把域名解析在這台代理的ip
window+r 打開運行框,輸入drivers,然后點開etc目錄用管理員身份打開hosts文件做域名解析
#### 完成后瀏覽器訪問
#### 清空session數據
[root@nfs ~]# redis-cli
127.0.0.1:6379> keys *
1) "PHPREDIS_SESSION:43f2d9324fda2ecadf50972d66446a37"
2) "PHPREDIS_SESSION:e374ae84c13c6bef36c98e1e2357a5a7"
3) "PHPREDIS_SESSION:b61816a8929f3e0fa750d17c2260b844"
4) "PHPREDIS_SESSION:60d14e7d171cbca65dc3a4c7888ebe8c"
5) "PHPREDIS_SESSION:97e4df906fe471d672eaa0529df627cc"
6) "PHPREDIS_SESSION:96140b67cc78661152ea916c826a0b1e"
7) "PHPREDIS_SESSION:f8276441f31e7570282b83ad79555d58"
8) "PHPREDIS_SESSION:f827c699cbf62480ed439e7de831e25f"
9) "PHPREDIS_SESSION:f785b4ba2d385eeb96b31514134a809f"
10) "PHPREDIS_SESSION:ef377e9662c4de189f48291cd8221a48"
127.0.0.1:6379> FLUSHALL
OK
#### 再次刷新頁面

#### 登錄之后點記住密碼再退出重登錄