LNMP分離式部署搭建

1、前期準備

一、準備三臺虛擬機,分別爲: 
Nginx Web:192.168.200.142 
PHP:192.168.200.128 
Mysql:192.168.200.143
php

 

2、服務搭建

 

1、Nginx Web搭建

 
  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中止服務命令
html

(2)、加工Nginx配置文件mysql

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

二、安裝二進制MySQL數據庫linux

(1)、建立mysql用戶的帳號nginx

 
  1. groupadd mysql
  2. useradd -s /sbin/nologin -g mysql -M mysql

(2)、獲取MySQL二進制軟件包 
百度雲盤:http://pan.baidu.com/s/1hrBCzsC 提取碼:4yjf
web

(3)、採用二進制方式安裝MySQLsql

 
  1. tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/
  2. cd /usr/local/
  3. mv mysql-5.5.32-linux2.6-x86_64 mysql-5.5.32
  4. ln -s mysql-5.5.32 mysql

(4)、初始化MySQL配置文件my.cnf數據庫

 
  1. cd /usr/local/mysql
  2. ls -l support-files/*.cnf
  3. /bin/cp support-files/my-small.cnf /etc/my.cnf

image_1ct4iv3e88mg2va910i87l7h1g.png-86kB

(5)、初始化MySQL數據庫文件vim

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

image_1ct4j1ad4195ggkp1prqapb1l4n1t.png-37.9kB

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

(6)、配置並啓動MySQL數據庫 
image_1ct4j5b5e1ir912gj1fgv15ts1jol2n.png-8.4kB

啓動MySQL數據庫 
image_1ct4j6kng14g213fofp9105d1adm34.png-8.4kB

設置MySQL開機自啓動 
image_1ct4j9ldgd7f6ij41q1n196k23h.png-12.5kB

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

image_1ct4jb4qp1nqe17g63jhhg8ir94o.png-9.6kB

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

image_1ct4jcu5a1ead1s25158e8gu1f65i.png-33kB

(9)、MySQL安全配置、爲MySQL的root用戶設置密碼

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

image_1ct4jf3fr416svhjd1u5ribi5v.png-56.7kB

 

2、安裝Nginx

一、安裝解壓

 
  1. yum install -y pcre-devel openssl-devel #用本地yum倉庫安裝依賴包
  2. #wget -q http://nginx.org/download/nginx-1.10.2.tar.gz #下載軟件源碼包
  3. tar xf nginx-1.10.2.tar.gz -C /usr/src/ #解壓縮
  4. cd /usr/src/nginx-1.10.2
  5. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #預配置,命令說明:--with-http_stub_status_module 要運用的模塊名,--with指定模塊
  6. make && make install #編譯和安裝
  7. ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #給命令作軟鏈接,以便PATH能找到

二、建立一個程序用戶

 
  1. useradd -M -s /sbin/nologin nginx #建立程序用戶
  2. /usr/local/nginx/sbin/nginx #啓動nginx
  3. 特別提示: /usr/local/nginx/sbin/nginx -s reload nginx平滑重啓命令
  4. /usr/local/nginx/sbin/nginx -s stop nginx中止服務命令
  5. web排錯三部曲下面介紹客戶端排查的思路
  6. 第一步,在客戶端上ping服務器端IP,命令以下:
  7. ping 10.0.0.8排除物理線路問題影響
  8. 第二步,在客戶端上telnet服務器端IP,端口,命令以下:
  9. telnet 10.0.0.8 80排除防火牆等得影響
  10. 第三步,在客戶端使用wget命令檢測,以下:
  11. wget 10.0.0.8(curl -I 10.0.0.8)模擬用戶訪問,排除http服務自身問題,根據輸出在排錯

三、安裝完成後進入配置文件目錄加工下配置文件

 
  1. Nginx主配置文件nginx.conf,路徑:/usr/local/nginx/conf/nginx.conf
  2. egrep -v "#|^$" nginx.conf.default > nginx.conf #去掉包含#號和空行的內容

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

 
  1. 1)查看nginx當前的配置
  2. [root@LNMP conf]# vim nginx.conf
  3. worker_processes 1;
  4. events {
  5. worker_connections 1024;
  6. }
  7. http {
  8. include mime.types;
  9. default_type application/octet-stream;
  10. sendfile on;
  11. keepalive_timeout 65;
  12. include extra/www.conf;
  13. include extra/mail.conf;
  14. include extra/blog.conf;
  15. }
  16. 2PHP解析,這裏以blog爲例講解,內容以下:
  17. [root@LNMP extra]# cat blog.conf
  18. server {
  19. listen 80;
  20. server_name blog.shidu.com;
  21. location / {
  22. root html/blog;
  23. index index.html index.htm;
  24. }
  25. }
  26. 最終blog虛擬機的完整配置以下:
  27. [root@LNMP extra]# cat blog.conf
  28. server {
  29. listen 80;
  30. server_name blog.shidu.com;
  31. location / {
  32. root html/blog;
  33. index index.html index.htm;
  34. }
  35. location ~ .*\.(php|php5)?$ {
  36. root html/blog;
  37. fastcgi_pass 127.0.0.1:9000;
  38. fastcgi_index index.php;
  39. include fastcgi.conf;
  40. }
  41. }

五、檢查並啓動Nginx 
image_1ct4jq3a61jjh40l1nuh1757ve36c.png-19.8kB

 

3、PHP安裝

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)檢查端口及啓動狀況 
image_1ct4k1d2e44h1971pag1c1nhp57c.png-16.4kB

(3)測試訪問Nginx及MySQL是否OK 
image_1ct4k1vff1pa817uo1vf316vhbb77p.png-69.5kB

2 安裝相關的lib軟件包

 
  1. yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd libcurl-devel libxslt-devel

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

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

image_1ct4k63n91bislbuo0s2sd17o693.png-109.5kB

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

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

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

五、開始安裝PHP(FastCGI方式)服務 
獲取PHP軟件包 
連接:https://pan.baidu.com/s/1RXk-DcujpOWkbe6f9ql1ng 
提取碼:c970

六、解壓配置PHP

 
  1. tar xf php-5.3.28.tar.gz -C /usr/src/
  2. cd /usr/src/php-5.3.28/
  3. ./configure \
  4. > --prefix=/usr/local/php5.3.28 \
  5. > --with-mysql=mysqlnd \
  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

image_1ct4kdre8ct2141i1btf1haau4f9g.png-24.7kB

七、編譯安裝:make && 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_1ct4khqaj1e619t71uu5109j1epd9t.png-374.8kB

(3)拷貝PHP配置文件到PHP默認目錄,並更改文件名稱爲php.ini 
cp php.ini-production /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

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

 
  1. /usr/local/php/sbin/php-fpm

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

 
  1. ps -ef | grep php-fpm
  2. lsof -i:9000 #默認9000端口提供服務
 

3、測試

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


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

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

(2)調整Windows下的host解析 
192.168.200.128 www.shidu.com blog.shidu.com mail.shidu.com

image_1ct4koamhfq318ujrjvod41qmtaa.png-43.1kB

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

相關文章
相關標籤/搜索