LNMP環境安裝

1、LNMP

1.使用LNMP的優勢:

  • 資源佔用少
  • 更多併發
  • 代理服務器
  • 熱啓動
  • 穩定高效
  • 負載均衡
  • 郵件服務器

二、安裝前準備:

2.1查看防火牆(默認開啓):
[root@localhost ~]# systemctl status firewalld
2.2關閉防火牆:
[root@localhost ~]# systemctl stop firewalld.service #中止firewall服務
[root@localhost ~]# systemctl disable firewalld.service #禁止開機自啓動
2.2.1或者開啓某端口號
#安裝完nginx以後再修改
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf

> listen   81; #修改80端口爲81,按本身需求。

[root@localhost ~]# systemctl restart nginx #重啓nginx
[root@localhost ~]# firewall-cmd --add-port=81/tcp #臨時開啓81端口
[root@localhost ~]# firewall-cmd --permanent --add-port=81/tcp #永久添加81端口
[root@localhost ~]# firewall-cmd --reload  #重啓防火牆

三、YUM安裝與相關配置:

3.1配置Nginx倉庫
[root@localhost ~]# vim /etc/yum.repos.d/nginx.repo
在官方源找到的.Repo包幫助,寫入Nginx.repo中:
# /etc/yum.repos.d/nginx.repo
# Date 2019_7_14

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
安裝步驟:
[root@localhost ~]# yum update #更新源倉庫
[root@localhost ~]# yum install -y nginx #安裝nginx
[root@localhost ~]# systemctl start nginx #開啓nginx服務
[root@localhost ~]# systemctl enable nginx #開機自啓
[root@localhost ~]# nginx -t #測試命令
[root@localhost ~]# nginx -s reload #當修改nginx.conf後的重載
3.2安裝php-fpm
在安裝php-fpm以前首先了解一下什麼是CGI(Common Gateway Interface)。
  • cgi:它是一種協議。經過cgi協議,web server能夠將動態請求和相關參數發送給專門處理動態內容的應用程序。
  • fastcgi:也是一種協議,只不過是cgi的優化版。cgi的性能較差,fastcgi則在其基礎上進行了改進。
  • php-cgi:fastcgi是一種協議,而php-cgi實現了這種協議。不過這種實現比較爛。它是單進程的,一個進程處理一個請求,處理結束後進程就銷燬。
  • php-cgi工做流程(單進程):
    php

  • php-fpm:是對php-cgi的改進版,它直接管理多個php-cgi進程/線程。也就是說,php-fpm是php-cgi的進程管理器所以它也算是fastcgi協議的實現。在必定程度上講,php-fpm與php的關係,和tomcat對java的關係是相似的。
  • php-fpm轉發過程圖解
    html

總結:web server和CGI的交互模式
  • cgi模式:httpd接收到一個動態請求就fork一個cgi進程,cgi進程返回結果給httpd進程後自我銷燬。
  • 動態模塊模式(同一服務器中):將php-cgi的模塊(例如php5_module)編譯進httpd。在httpd啓動時會加載模塊,加載時也將對應的模塊激活,php-cgi也就啓動了。
  • php-fpm模式(不在服務器中,可獨立成某一httpd模塊):使用php-fpm管理php-cgi,此時httpd再也不控制php-cgi進程的啓動。能夠將php-fpm獨立運行在非web服務器上,實現所謂的動靜分離。使用php-fpm管理php-cgi,此時httpd再也不控制php-cgi進程的啓動。能夠將php-fpm獨立運行在非web服務器上,實現所謂的動靜分離。java

    這裏使用yum安裝 php-fpm
[root@localhost ~] yum install -y php-fpm
3.3配置PHP文件
[root@localhost ~]# find / -name html #找到nginx下的html目錄
[root@localhost ~]# vim /usr/share/nginx/html/index.php #編輯php訪問頁面
>
# /usr/share/nginx/html/index.php
# PHP頁面測試配置
    <?php 
            phpinfo(); 
    ?>
3.4配置文件識別到PHP
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf 

>找到如下位置,並啓用
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000                                                                
location ~ \.php$ {
          root           html;
          fastcgi_pass   127.0.0.1:9000;
          fastcgi_index  index.php;
          fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/$fastcgi_script_name;# 修改路徑
          include        fastcgi_params;
           }
           
[root@localhost ~]# nginx -s reload # 重啓
記一次服務器nginx配置問題:(the page you are looking for is currently unavailable)
1.php-fpm 未正常啓動
[root@localhost ~]# ps -ef |grep 9000 #查看php-fpm服務是否開啓
[root@localhost ~]# systemctl restart php-fpm
[root@localhost ~]# systemctl restart nginx
2.nginx啓動端口修改成81端口:

在瀏覽器中打開 192.168.110.128:81/index.phpmysql

3.更改php路徑
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf 
# 找到 pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
# 修改相關配置 

    location ~ \.php$ {
        root           /usr/share/nginx/html;#修改成絕對路徑
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;#修改成$document或絕對路徑
        include        fastcgi_params;
    }

四、安裝mariadb(mysql)

[root@localhost ~]# yum install -y mariadb mariadb-server
[root@localhost ~]# systemctl start mariadb.service #啓動MariaDB 
[root@localhost ~]# systemctl stop mariadb.service #中止MariaDB 
[root@localhost ~]# systemctl restart mariadb.service #重啓MariaDB 
[root@localhost ~]# systemctl enable mariadb.service #設置開機啓動
4.1建立修改密碼(默認無)
[root@localhost ~]# /usr/bin/mysqladmin -u root password 'passwd' #'passwd'爲你設置的密碼
[root@localhost ~]# systemctl restart mariadb # 重啓
4.2安裝PHP以及組件,使PHP支持 MariaDB
當遇到依賴包問題,可選
[root@localhost ~]# yum install -y php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash
4.3PHP測試連接數據庫
[root@localhost ~]# vim /usr/share/nginx/html/db.php
>#輸入如下測試文件

<?php
    $link=mysql_connect("localhost","root","passwd");
    if(!$link) echo "Link Error!";
    else echo "OK!Link Acces!";
    mysql_close();
?>
# 重啓Php-fpm、nginx、mariadb-server

五、遇到的問題,查看日誌

[root@localhost ~]# cat /var/log/nginx/error.log
[root@localhost ~]# cat /var/log/php-fpm/error.log
[root@localhost ~]# cat /var/log/php-fpm/www-error.log
相關文章
相關標籤/搜索