構建LNMP平臺

1方案php

安裝部署Nginx、MariaDB、PHP環境html

  • 安裝部署Nginx、MariaDB、PHP、PHP-FPM;
  • 啓動Nginx、MariaDB、FPM服務;

LNMP(Linux、Nginx、MySQL、PHP)mysql

在RHEL7系統中,源碼安裝Nginx,使用RPM包安裝MariaDB、PHP、PHP-FPM軟件。nginx

操做過程當中須要安裝的軟件列表以下:sql

  • nginx
  • mariadb、mariadb-server、mariadb-devel
  • php、php-fpm、php-mysql

備註:mariadb(數據庫客戶端軟件)、mariadb-server(數據庫服務器軟件)、mariadb-devel(其餘客戶端軟件的依賴包)、php(解釋器)、php-fpm(進程管理器服務)、php-mysql(PHP的數據庫擴展包)。數據庫

 

 

步驟一:安裝軟件vim

1)使用yum安裝基礎依賴包瀏覽器

 
  1. [root@proxy ~]# yum -y install gcc openssl-devel pcre-devel

2)源碼安裝Nginx(若是前面課程中已經安裝Nginx,則忽略這一步)服務器

 
  1. [root@proxy ~]# useradd -s /sbin/nologin nginx
  2. [root@proxy ~]# tar -xvf nginx-1.12.2.tar.gz
  3. [root@proxy ~]# cd nginx-1.12.2
  4. [root@proxy nginx-1.12.2]# ./configure \
  5. > --user=nginx --group=nginx \
  6. > --with-http_ssl_module
  7. [root@proxy ~]# make && make install
  8. .. ..

3)安裝MariaDB架構

Mariadb在新版RHEL7光盤中包含有該軟件,配置yum源後能夠直接使用yum安裝:

 
  1. [root@proxy ~]# yum -y install mariadb mariadb-server mariadb-devel

4)php和php-fpm(該軟件包在lnmp_soft中提供)

 
  1. [root@proxy ~]# yum -y install php php-mysql
  2. [root@proxy ~]# yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm

步驟二:啓動服務

1)啓動Nginx服務(若是已經啓動nginx,則能夠忽略這一步)

這裏須要注意的是,若是服務器上已經啓動了其餘監聽80端口的服務軟件(如httpd),則須要先關閉該服務,不然會出現衝突。

 
  1. [root@proxy ~]# systemctl stop httpd                //若是該服務存在則關閉該服務
  2. [root@proxy ~]# /usr/local/nginx/sbin/nginx             //啓動Nginx服務
  3. [root@proxy ~]# netstat -utnlp | grep :80
  4. tcp    0    0 0.0.0.0:80        0.0.0.0:*        LISTEN        32428/nginx

2)啓動MySQL服務

 
  1. [root@proxy ~]# systemctl start mariadb //啓動服務器
  2. [root@proxy ~]# systemctl status mariadb //查看服務狀態
  3. [root@proxy ~]# systemctl enable mariadb //設置開機啓動

3)啓動PHP-FPM服務

 
  1. [root@proxy ~]# systemctl start php-fpm //啓動服務
  2. [root@proxy ~]# systemctl status php-fpm //查看服務狀態
  3. [root@proxy ~]# systemctl enable php-fpm //設置開機啓動

4)設置防火牆與SELinux(非必需操做,若是有則關閉)

 
  1. [root@proxy ~]# firewall-cmd --set-default-zone=trusted
  2. [root@proxy ~]# setenforce 0

 

使用2臺RHEL7虛擬機,其中一臺做爲LNMP服務器(192.168.4.5)、另一臺做爲測試用的Linux客戶機(192.168.4.10),兩臺虛擬機之間能夠通訊

Nginx結合FastCGI技術便可支持PHP頁面架構,以下圖所示

 

 

 

 

 

實現此案例須要按照以下步驟進行。

步驟一: php-fpm配置文件

1)查看php-fpm配置文件(實驗中不須要修改該文件)

 
  1. [root@proxy etc]# vim /etc/php-fpm.d/www.conf
  2. [www]
  3. listen = 127.0.0.1:9000            //PHP端口號
  4. pm.max_children = 32                //最大進程數量
  5. pm.start_servers = 15                //最小進程數量
  6. pm.min_spare_servers = 5            //最少須要幾個空閒着的進程
  7. pm.max_spare_servers = 32            //最多容許幾個進程處於空閒狀態

步驟二:修改Nginx配置文件並啓動服務

 
  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. location / {
  3. root html;
  4. index index.php index.html index.htm;
  5. #設置默認首頁爲index.php,當用戶在瀏覽器地址欄中只寫域名或IP,不說訪問什麼頁面時,服務器會把默認首頁index.php返回給用戶
  6. }
  7. location ~ \.php$ {
  8. root html;
  9. fastcgi_pass 127.0.0.1:9000; #將請求轉發給本機9000端口,PHP解釋器
  10. fastcgi_index index.php;
  11. #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  12. include fastcgi.conf;
  13. }
  14. [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
  15. #請先確保nginx是啓動狀態,不然運行該命令會報錯,報錯信息以下:
  16. #[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

步驟三:建立PHP頁面,測試LNMP架構可否解析PHP頁面

1)建立PHP測試頁面1,能夠參考lnmp_soft/php_scripts/test.php:

 
  1. [root@proxy ~]# vim /usr/local/nginx/html/test1.php
  2. <?php
  3. $i="This is a test Page";
  4. echo $i;
  5. ?>

2)建立PHP測試頁面,鏈接並查詢MariaDB數據庫。

能夠參考lnmp_soft/php_scripts/mysql.php:

 
  1. [root@proxy ~]# vim /usr/local/nginx/html/test2.php
  2. <?php
  3. $mysqli = new mysqli('localhost','root','密碼','mysql');
  4. //注意:root爲mysql帳戶名稱,密碼須要修改成實際mysql密碼,無密碼則留空便可
  5. //localhost是數據庫的域名或IP,mysql是數據庫的名稱
  6. if (mysqli_connect_errno()){
  7.     die('Unable to connect!'). mysqli_connect_error();
  8. }
  9. $sql = "select * from user";
  10. $result = $mysqli->query($sql);
  11. while($row = $result->fetch_array()){
  12.     printf("Host:%s",$row[0]);
  13.     printf("</br>");
  14.     printf("Name:%s",$row[1]);
  15.     printf("</br>");
  16. }
  17. ?>

3)客戶端使用瀏覽器訪問服務器PHP首頁文檔,檢驗是否成功:

 
  1. [root@client ~]# firefox http://192.168.4.5/test1.php
  2. [root@client ~]# firefox http://192.168.4.5/test2.php

4)LNMP常見問題

Nginx的默認訪問日誌文件爲/usr/local/nginx/logs/access.log

Nginx的默認錯誤日誌文件爲/usr/local/nginx/logs/error.log

PHP默認錯誤日誌文件爲/var/log/php-fpm/www-error.log

若是動態網站訪問失敗,可用參考錯誤日誌,查找錯誤信息。

相關文章
相關標籤/搜索