LNMP搭建流程

1、首先搭建Nginx服務

 
  1. yum install -y pcre-devel openssl-devel #用本地yum倉庫安裝依賴包
  2. wget -q http://nginx.org/download/nginx-1.10.2.tar.gz #下載軟件源碼包
  3. useradd -s /sbin/nologin -M www #建立程序用戶
  4. tar xf nginx-1.10.2.tar.gz -C /usr/src/ #解壓縮
  5. cd /usr/src/nginx-1.10.2
  6. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #預配置
  7. make && make install #編譯和安裝
  8. ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #給命令作軟鏈接,以便PATH能找到
  9. /usr/local/nginx/sbin/nginx #啓動nginx

特別提示: /usr/local/nginx/sbin/nginx -s reload nginx平滑重啓命令 
/usr/local/nginx/sbin/nginx -s stop nginx中止服務命令
php

二、加工Nginx配置文件html

 
  1. cd /usr/local/nginx/conf
  2. egrep -v "#|^$" nginx.conf.default > nginx.conf

以上Nginx就安裝完成了。mysql

 

2、安裝二進制MySQL數據庫

說明:
爲何選擇MySQL數據庫
目前,絕大多數使用Linux操做系統的互聯網企業都使用MySQL做爲後端的數據庫,從大型的BAT門戶,到電商門戶平臺,分類門戶平臺等無一例外。那麼,MySQL數據庫到底有哪些優點和特色,讓你們絕不猶豫的選擇它呢?
緣由可能有如下幾點
一、性能卓越,服務穩定,不多出現異常宕機。
二、開放源代碼且無版權制約,自主性強,使用成本低。
三、歷史悠久,社區及用戶很是活躍,遇到問題,能夠很快獲取到幫助。
四、軟件體積小,安裝使用簡單,而且易於維護,安裝及維護成本低。
五、支持多種操做系統,提供多種API接口,支持多種開發語言,特別是對流行的PHP語言無縫支持。
六、品牌口碑效應,使得企業無需考慮就直接用之。

下面咱們開始安裝 
一、建立mysql用戶的帳號
linux

image_1crp8ki9ildcf1r201041rrv1p.png-20.1kB

 
  1. [root@LNMP ~]# groupadd mysql
  2. [root@LNMP ~]# useradd -s /sbin/nologin -g mysql -M mysql
  3. [root@LNMP ~]# tail -1 /etc/passwd
  4. mysql:x:501:501::/home/mysql:/sbin/nologin
  5. [root@LNMP ~]# id mysql
  6. uid=501(mysql) gid=501(mysql) groups=501(mysql)

二、獲取MySQL二進制軟件包nginx

百度雲盤:http://pan.baidu.com/s/1hrBCzsC 提取碼:4yjfsql

image_1crp8oepu157sss1lmp1ho41ug92m.png-14.3kB

三、採用二進制方式安裝MySQL數據庫

 
  1. [root@LNMP ~]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/
  2. [root@LNMP ~]# cd /usr/local/
  3. [root@LNMP local]# mv mysql-5.5.32-linux2.6-x86_64 mysql-5.5.32
  4. [root@LNMP local]# ln -s mysql-5.5.32 mysql
  5. [root@LNMP local]# ls
  6. bin games lib libexec mysql-5.5.32 sbin src
  7. etc include lib64 mysql nginx share
  8. [root@LNMP local]# cd /usr/local/mysql
  9. [root@LNMP mysql]# ls
  10. bin data include lib mysql-test scripts sql-bench
  11. COPYING docs INSTALL-BINARY man README share support-files

微信圖片_20181108170329.png-25.5kB

四、初始化MySQL配置文件my.cnfvim

 
  1. [root@LNMP mysql]# cd /usr/local/mysql
  2. [root@LNMP mysql]# ls -l support-files/*.cnf
  3. [root@LNMP mysql]# /bin/cp support-files/my-small.cnf /etc/my.cnf

微信圖片_20181108170808.png-50.6kB

五、初始化MySQL數據庫文件後端

 
  1. [root@LNMP ~]# mkdir -p /usr/local/mysql/data #創建MySQL數據文件目錄
  2. [root@LNMP ~]# chown -R mysql.mysql /usr/local/mysql #受權mysql用戶管理MySQL的安裝目錄
  3. [root@LNMP ~]# yum -y install libaio #光盤源安裝依賴包,不然下一步的編譯會報錯
  4. [root@LNMP ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
  5. #初始化MySQL數據庫文件,會有不少信息提示,若是沒有ERROR級別的錯誤,會有兩個OK的字樣,表示初始化成功,不然就要解決初始化的問題

微信圖片_20181108172756.png-25.7kB

以上的命令主要做用是生成以下數據庫文件 
image_1crpaj6rm123o13d71bac1b0e1sdg3l.png-58.2kB 
這些MySQL數據文件是MySQL正確運行所必需的基本數據庫文件,其功能是對MySQL權限,狀態等進行管理。
瀏覽器

說明: 
初始化故障排錯集錦 
錯誤示例1: 
usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared ob 
錯誤緣由是沒有libaio函數庫的支持。須要 
yum -y install libaio 
錯誤示例2: 
WARNING:The host'mysql'could not be looked up with resolveip 
須要修改主機名解析,使其和uname -n同樣,修改後的結果以下: 
grep uname -n /etc/hosts 
錯誤示例3: 
ERROR:1004Can't create file '/tmp/#sql300e_1_o.frm'(errno:13) 
緣由是/tmp目錄的權限有問題。 
解決辦法爲處理/tmp目錄,以下: 
ls -ld /tmp 
drwxrwxrwt. 3 root root 4096 Jul 14 07:56 /tmp 
chmod -R 1777 /tmp/ 
此故障必須解除,不然,後面會出現登錄不了數據庫等問題。

六、配置並啓動MySQL數據庫 
(1)設置MySQL啓動腳本,命令以下:

 
  1. [root@LNMP mysql]# cp support-files/mysql.server /etc/init.d/mysqld #拷貝MySQL啓動腳本到MySQL的命令路徑
  2. [root@LNMP mysql]# chmod +x /etc/init.d/mysqld #使腳本可執行

image_1crpb1i2n161g1hrulg11dtt1vqc42.png-8.4kB

(2)MySQL二進制默認安裝路徑是/usr/local/mysql,啓動腳本里是/usr/local/mysql。若是安裝路徑不一樣,那麼腳本里路徑等都須要替換

(3)啓動MySQL數據庫

 
  1. [root@LNMP mysql]# /etc/init.d/mysqld start
  2. Starting MySQL... SUCCESS!

image_1crpb3sdrjqq1too64i1flmr44f.png-8.4kB

以上是啓動數據庫的規範方法之一,但還能夠用以下方式啓動, /usr/local/mysql/bin/mysqld_safe 
--user=mysql & 這個命令結尾的「&」符號,做用是在後臺執行MySQL服務,命令執行完還須要按下回車才能進入命令行狀態。

(4)檢查MySQL數據庫是否啓動

 
  1. [root@LNMP mysql]# netstat -antup | grep mysql

image_1crpb8navbj91lpj1f8s99r16ue4s.png-10.2kB

若是發現3306端口沒起來,能夠tail -100 
/usr/local/mysql/data/主機名.err查看日誌信息,看是否有報錯信息,而後根據相關錯誤提示進行調試。

(5)查看MySQL數據庫啓動結果日誌

 
  1. [root@LNMP ~]# tail -10 /usr/local/mysql/data/LNMP.err

(6)設置MySQL開機自啓動

 
  1. [root@LNMP ~]# chkconfig --add mysqld
  2. [root@LNMP ~]# chkconfig mysqld on
  3. [root@LNMP ~]# chkconfig --list mysqld
  4. mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

image_1crpbnlcb1rhlarg12t8h4hglq59.png-12.5kB 
注:也能夠將啓動命令/etc/init.d/mysqld start 放到/etc/rc.local裏面

(7)配置mysql命令的全局使用路徑

 
  1. [root@LNMP ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
  2. [root@LNMP ~]# which mysql
  3. /usr/local/bin/mysql

image_1crpbq3h7f9a1qpu6bn1eupmld5m.png-9.6kB

(8)登錄MySQL測試 
image_1crpbrvviq8u1n69dtndr06kk63.png-33.2kB

image_1crpbv2fd2ji1lna17eop2u1vug6g.png-33kB

注:MySQL安裝完成之後,默認狀況下,root帳戶是無密碼的,這個必需要設置。

七、MySQL安全配置、爲MySQL的root用戶設置密碼

 
  1. [root@LNMP ~]# mysqladmin -u root password '123123' #設置root用戶密碼
  2. [root@LNMP ~]# mysql -uroot -p123123 #用root用戶登陸數據庫

image_1crpc636g1e8cbl518hts8a1gar6t.png-56.7kB

 

3、LNMP之PHP(FastCGI方式)

 

1、FastCGI介紹

一、 什麼是CGI 
CGI的全稱爲「通用網關接口」(Common Gateway Interface),爲HTTP服務器與其餘機器上的程序服務通訊交流的一種工具,CGI程序須運行在網絡服務器上。 
傳統CGI接口方式的主要缺點是性能較差,由於每次HTTP服務器遇到動態程序時都須要從新啓動解析器來執行解析,以後結果纔會被返回給HTTP服務器。這在處理高併發訪問時幾乎是不可用的,所以就誕生了FastCGI。另外,傳統的CGI接口方式安全性也不好,故而如今已經不多被使用了。

二、 什麼是FastCGI 
FastCGI是一個可伸縮的,高速地在HTTP服務器和動態腳本語言間通訊的接口(在Linux下,FastCGI接口即爲socket,這個socket能夠是文件socket,也能夠是IP socket),主要優勢是把動態語言和HTTP服務器分離出來。多數流行的HTTP服務器都支持FastCGI,包括Apache,Nginx和Lighttpd等。 
同時,FastCGI也被許多腳本語言所支持,例如當前比較流程的腳本語言PHP。FastCGI接口採用的是C/S架構,它能夠將HTTP服務器和腳本解析服務器分開,同時還能在腳本解析服務器上啓動一個或多個腳原本解析守護進程。當HTTP服務器遇到動態程序時,能夠將其直接交付給FastCGI進程來執行,而後將獲得的結果返回給瀏覽器。這種方式可讓HTTP服務器專注地處理靜態請求,或者將動態腳本服務器的結果返回給客戶端,這在很大程度上提升了整個應用系統的性能。

FastCGI的重要特色以下:

HTTP服務器和動態腳本語言間通訊的接口或工具。 
可把動態語言解析和HTTP服務器分離開。 
Nginx,Apache,Lighttpd,以及多數動態語言都支持FastCGI。 
FastCGI接口方式採用C/S結構,分爲客戶端(HTTP服務器)和服務器端(動態語言解析服務器) 
PHP動態語言服務器端能夠啓動多個FastCGI的守護進程(例如php-fpm(fcgi process mangement)) 
HTTP服務器經過(例如Nginx fastcgi_pass)FastCGI客戶端和動態語言FastCGI服務器端通訊(例如php-fpm)

三、 Nginx FastCGI的運行原理 
Nginx不支持對外部動態程序的直接調用或者解析,全部的外部程序(包括PHP)必須經過FastCGI接口來調用。FastCGI接口在Linux下是socket,爲了調用CGI程序,還須要一個FastCGI的wrapper(能夠理解爲用於啓動另外一個程序的程序),這個wrappper綁定在某個固定的socket上,如端口或文件socket。當Nginx將CGI請求發送給這個socket的時候,經過FastCGI接口,wrapper接收到請求,而後派生出一個新的線程,這個線程調用解釋器或外部程序處理腳原本讀取返回的數據;接着,wrapper再將返回的數據經過FastCGI接口,沿着固定的socket傳遞給Nginx;最後,Nginx將返回的數據發送給客戶端,這就是Nginx+FastCGI的整個運做過程。

image_1crpchoqgl88nfnbd1v3h1fle7a.png-94.3kB

FastCGI的主要優勢是把動態語言和HTTP服務器分離開來,使Nginx專門處理靜態請求及向後轉發的動態請求,而PHP/PHP-FPM服務器則專門解析PHP動態請求。

 

2、LNMP之PHP(FastCGI方式)服務的安裝和準備

1 檢查Nginx及MySQL的安裝狀況 
(1)檢查確認Nginx及MySQL的安裝路徑

 
  1. [root@LNMP ~]# ls -ld /usr/local/nginx
  2. drwxr-xr-x. 11 root root 4096 Nov 9 00:42 /usr/local/nginx
  3. [root@LNMP ~]# ls -ld /usr/local/mysql
  4. lrwxrwxrwx. 1 mysql mysql 12 Nov 9 01:00 /usr/local/mysql -> mysql-5.5.32

(2)檢查端口及啓動狀況

 
  1. [root@LNMP ~]# netstat -antup | grep -E "80|3306"

image_1crpd144f1j4vu4gphb1id41no07n.png-16.4kB

(3)測試訪問Nginx及MySQL是否OK

 
  1. [root@LNMP ~]# wget 127.0.0.1
  2. [root@LNMP ~]# mysql -uroot -p123123

image_1crpd662r1tpu1cd41dna2up17sh8k.png-69.5kB

若是訪問結果和上圖一致,就代表Nginx及MySQL的安裝一切正常

二、檢查安裝PHP所需的lib庫 
PHP程序在開發及運行時會調用一些諸如zlib,gd等函數庫,所以須要確認lib庫是否已經安裝,執行過程以下:

 
  1. [root@LNMP ~]# rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
  2. zlib-devel-1.2.3-29.el6.x86_64
  3. [root@LNMP ~]# rpm -qa freetype-devel libpng-devel gd libcurl-devel libxslt-devel

注: 
每一個lib通常都會存在對應的以「*-devel」命名的包,安裝lib對應的-devel包後,對應的lib包就會自動安裝好,例如安裝gd-devel時就會安裝gd。 
這些lib庫不是必須安裝的,可是目前的企業環境下通常都須要安裝。不然,PHP程序運行時會出現問題,例如驗證碼沒法顯示等。

執行下面命令安裝相關的lib軟件包

 
  1. [root@LNMP ~]# yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
  2. [root@LNMP ~]# yum -y install freetype-devel libpng-devel gd libcurl-devel libxslt-devel

安裝後的結果以下: 
image_1crpdn3tk10eq11oq14qi96lege91.png-39.3kB

從上圖結果看出,僅有libiconv-devel這個包沒有安裝,由於默認的yum源沒有此包,後面會編譯安裝。

三、安裝yum沒法安裝的libiconv庫

微信圖片_20181108183056.png-67.4kB

 
  1. ./configure --prefix=/usr/local/libiconv && make && make install #開始編譯安裝

四、安裝libmcrypt庫\mhash加密擴展庫\mcrvpt加密擴展庫

 
  1. [root@LNMP ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #推薦使用簡單的在線yum的方式安裝
  2. [root@LNMP ~]# cd /etc/yum.repos.d/
  3. [root@LNMP yum.repos.d]# ls
  4. epel.repo moban.repo
  5. [root@LNMP yum.repos.d]# yum -y install libmcrypt-devel #安裝libmcrypt庫
  6. [root@LNMP yum.repos.d]# yum -y install mhash #安裝mhash加密擴展庫
  7. [root@LNMP yum.repos.d]# yum -y install mcrypt #mcrvpt加密擴展庫

五、開始安裝PHP(FastCGI方式)服務 
(一、)獲取PHP軟件包

 
  1. [root@LNMP ~]# wget http://cn2.php.net/get/php-5.3.28.tar.gz/from/this/mirror

微信圖片_20181108184507.png-9.4kB

六、解壓配置PHP

 
  1. [root@LNMP ~]# tar xf php-5.3.28.tar.gz -C /usr/src/
  2. [root@LNMP ~]# cd /usr/src/php-5.3.28/
  3. [root@LNMP php-5.3.28]# ./configure \
  4. > --prefix=/usr/local/php5.3.28 \
  5. > --with-mysql=/usr/local/mysql \
  6. > --with-iconv-dir=/usr/local/libiconv \
  7. > --with-freetype-dir \
  8. > --with-jpeg-dir \
  9. > --with-png-dir \
  10. > --with-zlib \
  11. > --with-libxml-dir=/usr \
  12. > --enable-xml \
  13. > --disable-rpath \
  14. > --enable-safe-mode \
  15. > --enable-bcmath \
  16. > --enable-shmop \
  17. > --enable-sysvsem \
  18. > --enable-inline-optimization \
  19. > --with-curl \
  20. > --with-curlwrappers \
  21. > --enable-mbregex \
  22. > --enable-fpm \
  23. > --enable-mbstring \
  24. > --with-mcrypt \
  25. > --with-gd \
  26. > --enable-gd-native-ttf \
  27. > --with-openssl \
  28. > --with-mhash \
  29. > --enable-pcntl \
  30. > --enable-sockets \
  31. > --with-xmlrpc \
  32. > --enable-zip \
  33. > --enable-soap \
  34. > --enable-short-tags \
  35. > --enable-zend-multibyte \
  36. > --enable-static \
  37. > --with-xsl \
  38. > --with-fpm-user=www \
  39. > --with-fpm-group=www \
  40. > --enable-ftp

微信圖片_20181108185017.png-16.3kB

對於上面命令,部分參數說明以下:

--prefix=/usr/local/php5.2.28 表示指定PHP的安裝路徑爲/usr/local/php5.3.28 
--with-mysql=/usr/local/mysql 表示須要指定MySQL的安裝路徑,安裝PHP須要的MySQL相關內容。固然,若是沒有MySQL軟件包,也能夠不單獨安裝,這樣的狀況可以使用--with-mysql=mysqlnd替代--with-mysql=/usr/local/mysql,由於PHP軟件裏已經自帶了鏈接MySQL的客戶端工具。 
--with-fpm-user=www nginx表示指定PHP-FPM進程管理的用戶爲www,此處最好和Nginx服務用戶統一 
--with-fpm-group=www 
表示指定PHP-FPM進程管理的組爲www,此處最好與Nginx服務用戶組統一。 
--enable-fpm 
表示激活PHP-FPM方式服務,即以FastCGIF方式運行PHP服務。

七、編譯PHP 
正確執行前文配置PHP軟件的./configure系列命令後,就能夠編譯PHP軟件了,具體操做過程以下:

 
  1. cd /usr/src/php-5.3.28/
  2. [root@LNMP php-5.3.28]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
  3. [root@LNMP php-5.3.28]# touch ext/phar/phar.phar
  4. [root@LNMP php-5.3.28]# make

image_1crpfvdd6shl1rqt1bef12mc16roel.png-8.9kB

八、安裝PHP生成文件到系統

 
  1. [root@LNMP php-5.3.28]# make install

九、 配置PHP引擎配置文件php.ini 
(1)設置軟連接以方便訪問

 
  1. [root@LNMP ~]# ln -s /usr/local/php5.3.28/ /usr/local/php
  2. [root@LNMP ~]# ls -l /usr/local/php
  3. lrwxrwxrwx. 1 root root 21 Nov 9 05:30 /usr/local/php -> /usr/local/php5.3.28/

(2)查看PHP配置默認模版文件

 
  1. [root@LNMP ~]# cd /usr/src/php-5.3.28/
  2. [root@LNMP php-5.3.28]# ls php.ini*
  3. php.ini-development php.ini-production

請注意以上兩文件的異同之處,可經過diff或vimdiff命令比較,以下圖所示

image_1crpohi7acg6b5d1l46i2b4p019.png-374.8kB
從對比結果能夠看出,開發環境更多的是開啓日誌,調試信息,而生產環境都是關閉狀態

(3)拷貝PHP配置文件到PHP默認目錄,並更改文件名稱爲php.ini

 
  1. [root@LNMP php-5.3.28]# cp php.ini-production /usr/local/php/lib/php.ini
  2. [root@LNMP php-5.3.28]# ls -l /usr/local/php/lib/php.ini
  3. -rw-r--r--. 1 root root 69627 Nov 9 05:36 /usr/local/php/lib/php.ini

十、配置PHP(FastCGI方式)的配置文件php-fpm.conf

 
  1. [root@LNMP etc]# ls
  2. pear.conf php-fpm.conf.default
  3. [root@LNMP etc]# cp php-fpm.conf.default php-fpm.conf
  4. [root@LNMP etc]# ls
  5. pear.conf php-fpm.conf php-fpm.conf.default

image_1crpooriuflnorp1p9u1lje1f621m.png-17.6kB

關於php-fpm.conf,暫時可用默認的配置,先把服務搭好,之後再進行優化。

十一、啓動PHP服務(FastCGI方式) 
(1)啓動PHP服務php-fpm

 
  1. [root@LNMP etc]# /usr/local/php/sbin/php-fpm

(2)檢查PHP服務php-fpm的進程及啓動端口的狀況

 
  1. [root@LNMP etc]# ps -ef | grep php-fpm
  2. [root@LNMP etc]# lsof -i:9000 #默認9000端口提供服務

image_1crpp19iu1tbv1gin1laqvh31vtr23.png-46.9kB

 

4、配置Nginx支持PHP程序請求訪問

1 修改Nginx配置文件 
(1)查看nginx當前的配置

 
  1. [root@LNMP conf]# vim nginx.conf
  2. worker_processes 1;
  3. events {
  4. worker_connections 1024;
  5. }
  6. http {
  7. include mime.types;
  8. default_type application/octet-stream;
  9. sendfile on;
  10. keepalive_timeout 65;
  11. include extra/www.conf;
  12. include extra/mail.conf;
  13. include extra/blog.conf;
  14. }

(2)PHP解析,這裏以blog爲例講解,內容以下:

 
  1. [root@LNMP extra]# cat blog.conf
  2. server {
  3. listen 80;
  4. server_name blog.shidu.com;
  5. location / {
  6. root html/blog;
  7. index index.html index.htm;
  8. }
  9. }

最終blog虛擬機的完整配置以下:

 
  1. [root@LNMP extra]# cat blog.conf
  2. server {
  3. listen 80;
  4. server_name blog.shidu.com;
  5. location / {
  6. root html/blog;
  7. index index.html index.htm;
  8. }
  9. location ~ .*\.(php|php5)?$ {
  10. root html/blog;
  11. fastcgi_pass 127.0.0.1:9000;
  12. fastcgi_index index.php;
  13. include fastcgi.conf;
  14. }
  15. }

二、檢查並啓動Nginx

 
  1. [root@LNMP extra]# nginx -t #檢查配置文件
  2. [root@LNMP extra]# nginx -s reload #重啓nginx服務

image_1crpqehu0bp1n9d17ha1taihpd30.png-19.8kB 
此步在生產環境很關鍵,如不提早檢查語法,重啓後發現語法錯誤會致使Nginx沒法提供服務,給用戶訪問體驗帶來很差的影響。

三、測試LNMP環境生效狀況 
(1)進入指定的默認站點目錄後,編輯index.php,添加以下內容:

 
  1. [root@LNMP blog]# pwd
  2. /usr/local/nginx/html/blog
  3. [root@LNMP blog]# echo "<?php phpinfo(); ?>" >test_info.php
  4. [root@LNMP blog]# cat test_info.php
  5. <?php phpinfo(); ?>

以上代碼爲顯示PHP配置信息的簡單PHP文件代碼

(2)調整Windows下的host解析

192.168.200.128 www.shidu.com blog.shidu.com mail.shidu.com

image_1crpqtv6k8sc9v1j6q18g319t53d.png-43.1kB

(3) 打開瀏覽器輸入 http://blog.shidu.com/test_info.php 便可進入下圖界面 
出現此界面,表示Nginx配合PHP解析已經正常。 
image_1crpr672i6br1mb210ccbfm9qn3q.png-130.3kB

四、針對Nginx請求訪問PHP,而後對PHP鏈接MySQL的狀況進行測試 
編輯test_mysql.php,加入以下內容:

 
  1. [root@LNMP blog]# cat test_mysql.php
  2. <?php
  3. $link_id=mysql_connect('localhost','root','123123');
  4. if($link_id){
  5. echo "mysql successful by shidu !";
  6. }else{
  7. echo mysql_error();
  8. }
  9. ?>

image_1crprf2ak6ib23l19s2121f132747.png-16.9kB

 

5、部署一個blog程序服務

 

1、開源博客程序WordPress介紹

WordPress 是一套利用PHP語言和MySQL數據庫開發的開源免費的blog(博客,網站)程序,用戶能夠在支持PHP環境和MySQL數據庫的服務器上創建blog站點。它的功能很是強大,擁有衆多插件,易於擴充功能。其安裝和使用也都很是方便。目前WordPress已經成爲搭建blog平臺的主流,不少發佈平臺都是根據WordPress二次開發的,若是你也想像他們同樣擁有本身的blog,可購買網上的域名及空間,而後搭建LNMP環境,部署WordPress程序後就能夠輕鬆成就本身的夢想了。

 

2、 WordPress 博客程序的搭建準備

一、MySQL數據庫配置準備 
(1)登錄MySQL數據庫,建立一個專用的數據庫WordPress,用於存放blog數據

 
  1. [root@LNMP blog]# mysql -uroot -p123123
  2. mysql> create database wordpress; #建立一個數據庫,名字爲wordpress
  3. Query OK, 1 row affected (0.00 sec)
  4. mysql> show databases like 'wordpress'; #查看建立的庫
  5. +----------------------+
  6. | Database (wordpress) |
  7. +----------------------+
  8. | wordpress |
  9. +----------------------+
  10. 1 row in set (0.00 sec)

(2)建立一個專用的WordPress blog管理用戶

 
  1. mysql> grant all on wordpress.* to wordpress@'localhost' identified by '123123';
  2. Query OK, 0 rows affected (0.00 sec) #localhost爲客戶端地址
  3. mysql> flush privileges; #刷新權限,使得建立用戶生效
  4. Query OK, 0 rows affected (0.00 sec)
  5. mysql> show grants for wordpress@'localhost'; #查看用戶對應權限
  6. +------------------------------------------------------------------------------------------------------------------+
  7. | Grants for wordpress@localhost |
  8. +------------------------------------------------------------------------------------------------------------------+
  9. | GRANT USAGE ON *.* TO 'wordpress'@'localhost' IDENTIFIED BY PASSWORD '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1' |
  10. | GRANT ALL PRIVILEGES ON `wordpress`.* TO 'wordpress'@'localhost' |
  11. +------------------------------------------------------------------------------------------------------------------+
  12. 2 rows in set (0.00 sec)

微信圖片_20181108223736.png-13.1kB

二、Nginx及PHP環境配置準備 
(1)選擇以前配置好的支持LNMP的blog域名對應的虛擬主機

 
  1. [root@LNMP extra]# pwd
  2. /usr/local/nginx/conf/extra
  3. [root@LNMP extra]# vim blog.conf
  4. server {
  5. listen 80;
  6. server_name blog.shidu.com;
  7. location / {
  8. root html/blog;
  9. index index.php index.html index.htm;
  10. }
  11. location ~ .*\.(php|php5)?$ {
  12. root html/blog;
  13. fastcgi_pass 127.0.0.1:9000;
  14. fastcgi_index index.php;
  15. include fastcgi.conf;
  16. }
  17. }

image_1crpsap4kdd6v8i1e3u1n4bfn966.png-28.2kB

(2)獲取WordPress博客程序,解壓到blog域名對應虛擬主機的站點目錄下 
程序到如下連接提取 
連接: https://pan.baidu.com/s/1O4KpF5KifGhT-mDYSDTVnQ 提取碼: nu85

 
  1. [root@LNMP ~]# tar xf wordpress-4.9.8.tar.gz -C /usr/local/nginx/html/blog/
  2. [root@LNMP ~]# ls /usr/local/nginx/html/blog/
  3. index.html test_info.php test_mysql.php wordpress

image_1crpt8nk0sjpof2g88f2u1di76j.png-41.5kB

 
  1. [root@LNMP blog]# mv wordpress/* . #把目錄裏的內容移動到blog根目錄下

image_1crptf4ng183q17ct6ga5t9pu870.png-91.9kB

 
  1. [root@LNMP blog]# chown -R www.www ../blog/ #受權用戶訪問

image_1crptkj9r157cnapc41vfi1b2m7d.png-83.1kB

三、開始安裝blog博客程序 
(1)打開瀏覽器輸入blog.shidu.com(提早作好hosts或DNS解析),回車後,出現下圖: 
image_1crptqkf9pmb1uc81ip51b4b190b7q.png-75kB

image_1crptsio81gkt1jhi1gbj44ifvl87.png-85.1kB

微信圖片_20181108231523.png-131.1kB

image_1crpuamcbr67do71b7f1dukqooat.png-31.2kB

image_1crpujvvbia7g0kmpe6ej1otvba.png-96.5kB

image_1crpumd5urp011bi1pvr1ent37mbn.png-39kB

image_1crpunp8d1i4c1r5o11591fhb1or6c4.png-34kB

image_1crpusl7jtf31lit1s6h89l187ch.png-178.5kB

四、實現WordPress博客程序URL靜態化

實現此功能時,首先要在WordPress後臺依次單擊設置--->固定連接--->自定義結構,而後輸入下面的代碼,並保存更改。

 
  1. /archives/%post_id%.html
  2. #說明:%post_id%是數據庫對應博文內容的惟一ID,例如423

image_1crpv6l8m1nonm8g1ohv1jvv17htcu.png-67.4kB

image_1crpva8o71ic7c18n0f5a15l4db.png-104.5kB

接着,在Nginx配置文件的server容器中添加下面的代碼:

 
  1. [root@LNMP extra]# pwd
  2. /usr/local/nginx/conf/extra
  3. [root@LNMP extra]# vim blog.conf
  4. server {
  5. listen 80;
  6. server_name blog.shidu.com;
  7. root html/blog;
  8. location / {
  9. index index.php index.html index.htm;
  10. if (-f $request_filename/index.html){
  11. rewrite (.*) $1/index.html break;
  12. }
  13. if (-f $request_filename/index.php){
  14. rewrite (.*) $1/index.php;
  15. }
  16. if (!-f $request_filename){
  17. rewrite (.*) /index.php;
  18. }
  19. }
  20. location ~ .*\.(php|php5)?$ {
  21. root html/blog;
  22. fastcgi_pass 127.0.0.1:9000;
  23. fastcgi_index index.php;
  24. include fastcgi.conf;
  25. }
  26. }

最後檢查語法並從新加載Nginx服務,操做以下:

 
  1. [root@LNMP extra]# /usr/local/nginx/sbin/nginx -t
  2. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  3. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfu
  4. [root@LNMP extra]# nginx -s reload

image_1crq06kdm14nc7h83cs12aj1veldo.png-20.1kB

如今能夠經過瀏覽器訪問了,以下圖所示: 
image_1crq0gam11fs713dh1gpckig1ek0ev.png-389.5kB

 

以上總體搭建過程完畢

相關文章
相關標籤/搜索