企業架構LA|NMP+Redis主從實戰php
一、 LA|NMP+Redis架構概念css
1) LA|NMP WEB架構,Linux+Apache|Nginx+MYSQL|Mariadb+PHP主流的架構;html
2) Linux,是開源一套操做系統,主要做爲應用軟件底層;mysql
注意:Apache就是httpdredis
3) Apache,WEB服務器,用於發佈靜態頁面,html、txt、js、css、png、gif、jpeg等,跟數據庫沒有交互的,是世界上使用的最多的WEB服務器,最新版本httpd-2.4版本;sql
4) MYSQL,被oracle公司收購了,開放版本、商業版本,獨立出來以後,開發了一套開源數據庫,Mariadb,徹底兼容MYSQL全部的指令和參數,關係型數據庫系統,CentOS7開始,內置Mariadb;數據庫
5) PHP,PHP是一門動態語言,底層核心代碼是經過C寫,能夠編寫PHP代碼(PHP網頁);apache
6) Redis,內存數據庫,內存緩存,其數據放在內存中的,服務重啓、系統重啓,Redis內存中數據丟失,如何作到持久化,Redis有一個機制,往硬盤sync數據,加載硬盤Redis數據到內存,提供服務。vim
二、 LAMP工做原理瀏覽器
1) 用戶瀏覽器發起www.jfedu.net HTTP請求,Apache WEB服務器收到請求以後,判斷用戶訪問文件,默認訪問/index.php;
2) Apache WEB服務器從硬盤、內存中讀取index.php文件,判斷該文件類型,該類型.php結尾;
3) Apache將index.php頁面轉發給PHP解釋器(PHP模塊),PHP解釋器讀取index.php,解析成html頁面,而後將html返給Apache;
4) Apache將html頁面返回給瀏覽器,瀏覽器經過類型調用不一樣程序解析、渲染該文件成頁面,最終瀏覽器展現。
5) 若是用戶請求的靜態頁面,Apache判斷用戶請求頁面後綴爲靜態頁面,Apache直接處理。
三、 LAMP部署實戰
1) Linux軟件根據內容分類,二進制軟件、源代碼軟件;
2) 二進制軟件,內容包含bin文件、二進制可運行文件,能夠直接,簡單安裝便可使用,以.rpm、.zip、.tar.gz、.rar、.war包;
3) 源代碼軟件,內容包含.cpp、.c、.h、.o結尾的文件,不能直接使用,須要通過編譯方可以使用,後綴通常是.zip、.tar.gz、.tar、.tar.bz2;
4) 二進制軟件安裝方法,解壓便可使用,或者經過rpm -ivh命令或者yum install命令安裝;
5) 源代碼軟件安裝方法,解壓,須要./configure預編譯、make編譯、make install安裝;
6) 基於二進制方式來安裝LAMP軟件,yum install httpd httpd-devel mysql-server mysql mysql-devel php php-devel php-libs –y
注意:光盤裏面的包是RPM包( 二進制包)。src、rpm包須要編譯,安裝命令:rpm -ivh xxx.rpm。
libphp5做用:解析PHP動態頁面
三臺機器:LANP+Discuz、Redis主庫、Redis從庫
在LANP+Discuz上操做,先下載好軟件,下面是部署LANP。
[root@localhost ~]# cd /var/www/html
[root@localhost html]# rm -rf *
[root@localhost html]# pwd
/var/www/html
[root@localhost html]# vim test.php
<?php
phinfo();
?>
[root@localhost html]# cat test.php #php測試頁面用來php環境是否初始化成功
[root@localhost html]# /etc/init.d/httpd restart #重啓apache服務
Stopping httpd: [ ok ]
Staring httpd: httpd :Could not reliably determine the server's fully qualified domain name #找不到serverName ,緣由沒有定義
using localhost.localdomain for serverName [ ok ]
root@localhost html]# vim /etc/httpd/ /conf/httpd.conf #定義serverName
/ServerName #搜索ServerName
ServerName www.example.com:80 #把ServerName後面改爲localhsot
[root@localhost html]# /etc/init.d/httpd restart #從新啓東apache服務
............................ [ ok ]
............................ [ ok ]
[root@localhost html]# !ps #查看啓動的apache服務
在百度上輸入:192.168.11.131/test.php ,便可打開php頁面,這個是頁面是PHP解析事後的。192.168.11.131這個IP地址要在Windows上面,可以ping通。
若是在頁面上面,獲得三行代碼。說明PHP環境沒有解析成功,php.test文件在作完測試,就要刪除掉。
查看發佈的目錄
[root@localhost html]# pwd /var/www/html # 發佈的目錄
[root@localhost html]# vim /etc/httpd/conf/httpd.conf #查看apache主配置文件
/DocumentRoot #搜索DocumentRoot 目錄
下載一個程序,在百度上面,搜索discuz,並從官網上面下載,下一個最新的
回到服務器LANP+Discuz,複製簡體utf8下載地址。
[root@localhost html]# http://download/comsenz.com/Discuzx/3.4/Discuz_x3.4_sc_UTF8.zip #若是不行就用wget [root@localhost html]# wget http://download/comsenz.com/Discuzx/3.4/Discuz_x3.4_sc_UTF8.zip #在線下載
[root@localhost html]# ll #查看下載的包
[root@localhost html]# unzip Discuz_x3.4_sc_UTF8.zip #解壓縮
[root@localhost html]#ll #查看解壓縮的 Discuz_x3.4_sc_UTF8.zip readme test.php upload utility
[root@localhost html]# cd upload/ #查看下載的代碼 [root@localhost upload]#ls admin.php config ..... .... index.php plugin.php ... connect.php .... ... ... ... ... .... .... ... ... .. .... .. [root@localhost upload]#pwd /var/www/html/upload #/var/www/html/ 是網站根目錄的子目錄 [root@localhost upload]# mv * /var/www/html/ #移到上級目錄,/var/www/html/ 是網站根目錄 [root@localhost upload]#cd .. [root@localhost html] #ls
在百度上面搜索install目錄
緣由apache沒有寫權限
[root@localhosthtml]# pwd /var/www/html [root@localhost html]# ps-ef | grep http [root@localhost html]# ll 增長寫的權限 [root@localhost html]# chmod o+w data/ config uc_* -R #寫的權限
而後刷新百度頁面
若是mysql連不上,說明缺乏一個MySQL驅動,直接點下一步,下一步
在服務器上面查看有沒有建立用戶名。
[root@localhosthtml]# cd [root@localhost ~]#mysql ERROR 2002 (HY000) : Can't connect to local mysql server through socker 'varlib/mysql.sock' (111) [root@localhost ~]# /etc/init.d/mysql restart #啓動數據庫服務 [root@localhost ~]# mysql #進入mysql .... mysql> show batabases; #查看啓動成功嗎 ... mysql> drop batabases ultrax; #刪掉這個庫 mysql> exit或者ctrl+c #退出 [root@localhost ~]#mysql #再進去MySQL一次 mysql> show batabases; [root@localhost ~]# mysql #開始建立數據庫 mysql> create batabases disscuz charset=utf8; mysql> show batabases; #查看啓動成功嗎 [root@localhost html]# /etc/init.d/mysql restart #啓動數據庫服務
授予MySQL權限
[root@localhost ~]# mysql #進入mysql .... mysql> grant select,create,insert,update,drop,delete #設置權限或者grant all on discuz.* to jfedu@'%' identified by "lqaz@WSX" mysql> flush privileges mysql> drop batabases ultrax; #刪掉這個庫
寫IP地址就好了
若是想使用localhsot地址,就把%去掉
換成localhost,登錄MySQL就須要密碼了
(1)、安裝命令:yum install -y redis,而後重啓:/etc/init.d/redis restart
編輯vim /etc/redis.conf,搜索dir,命令:/dir
[root@localhost ~]# /etc/init.d/redis restart #再重啓一下
[root@localhost ~]# ps -ef |grep redis
[root@localhost ~]# redis-cli #進入redis服務中
(2)、二進制安裝:wget http://download.redis.io/releases/redis-2.8.13.tar.gz
tar -zxvf redis-2.8.13.tar.gz
cd redis-2.8.13
make PREFIX=/usr/local/redis/
cp redis.conf /usr/local/redis/
將/usr/local/redis/bin/目錄加入至環境變量配置文件/etc/profile末