【Nginx學習00】CentOS7 搭建nginx+php運行環境

搭建環境

  • 服務器: 阿里雲(1核/1GB)
  • 操作系統: CentOS / 7.5 x86_64 (64bit)
  • 本地計算機: Windows7 + SecureCRT+FlashFXP
    幾點說明
    • 服務器 : 本教程中我們使用的是阿里雲的服務器,其實不管是百度還是阿里騰訊的服務器,沒多大差別,選擇自己喜歡的(便宜的)就好。
    • 操作系統 : 本教程使用的是Linux 發行版本的Centos 7.5,Linux發行版有redhat和Ubuntu、Centos等等,不同的Linux 發行版配置方式有差異,初學者一般用Ubuntu,工程實踐建議使用Centos。
    • 本地計算機 : 配置該環境需要遠程連接服務器,連接服務器軟件的軟件有很多,本人比較喜歡用SecureCRT(具體的使用教程見左邊超鏈接),FlashFXP主要用來使本地和服務器端進行文件共享,具體的使用教程見左邊超鏈接。

正文


安裝部分教程

Nginx

在Centos上,我們一般用 yum install命令來安裝Linux源中自帶的軟件,該方法是不用自己下載相關的依賴項,直接一鍵全部安裝好,在Ubuntu中我們一般使用apt-get install命令來安裝軟件,同樣的相對於二進制編譯安裝的好處就是不用配置想相應的環境和依賴項。

首先通過yum方式來安裝Nginx

#yum install爲centos下安裝軟件的方式,-y表示表示“yes”,不用直接輸入確認
yum -y install nginx

在這裏插入圖片描述
安裝成功,接下來我們測試Nginx是否正常
1.啓動Nginx,在命令行直接輸入 nginx 啓動nginx

2.打開瀏覽器,在地址欄輸入自己的ip地址,出現如下界面表示nginx安裝正常
在這裏插入圖片描述
3. 輸入 nginx -V可以查看nginx的版本

在這裏插入圖片描述
我們注意兩個文件路徑

/usr/share/nginx/html
#該路徑裏面放的就是我們網站的內容,可以試着更改html裏面的index.html內容,
刷新網站,會發現顯示內容也會改變。將index.html裏面的內容刪掉,改爲"hello",
刷新網站,顯示如下:

在這裏插入圖片描述

/etc/nginx/nginx.conf
#此文件爲nginx的配置文件,我們後面會修改此配置文件

nginx此時已經安裝完成,具體配置會在後面詳細說明。


PHP

使用yum方式安裝PHP時,不能安裝php7,只能安裝php5,本教程中我們安裝php5,新版本和舊版本的區別不是很大,沒有必要糾結。

#下載php相關的軟件,php-fpm是我們管理php的軟件
yum install -y php php-fpm php-curl php-gd* php-mysql

安裝完成。
在這裏插入圖片描述
啓動php軟件

service php-fpm start

查看php的版本

php -v


php安裝成功。


聯合配置

nginx + php

在前面我們分別安裝好了nginx和php,現在將nginx和php聯合配置起來。

將nginx和php設置爲開機自啓動。

systemctl enable nginx.service
systemctl enable php-fpm.service

打開nginx的配置文件,前面提到過配置文件的路徑

vim /etc/nginx/nginx.conf

打開後界面如下圖:

# nginx運行的用戶名
user nginx;
# nginx啓動進程,通常設置成和cpu的數量相等,這裏爲自動
worker_processes auto;

# errorlog文件位置
error_log /var/log/nginx/error.log;
# pid文件地址,記錄了nginx的pid,方便進程管理
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
# 用來加載其他動態模塊的配置
include /usr/share/nginx/modules/*.conf;

# 工作模式和連接數上限
events {
    # 每個worker_processes的最大併發鏈接數
    # 併發總數:worker_processes*worker_connections
    worker_connections 1024;
}

# 與提供http服務相關的一些配置參數類似的還有mail
http {
    # 設置日誌的格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    # access_log記錄訪問的用戶、頁面、瀏覽器、ip和其他的訪問信息
    access_log  /var/log/nginx/access.log  main;

    # 這部分下面會單獨解釋
    # 設置nginx是否使用sendfile函數輸出文件
    sendfile            on;
    # 數據包最大時發包(使用Nagle算法)
    tcp_nopush          on;
    # 立刻發送數據包(禁用Nagle算法)
    tcp_nodelay         on;
    # 鏈接超時時間
    keepalive_timeout   65;
    # 這個我也不清楚...
    types_hash_max_size 2048;

    # 引入文件擴展名與文件類型映射表
    include             /etc/nginx/mime.types;
    # 默認文件類型
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    # http服務上支持若干虛擬主機。
    # 每個虛擬主機一個對應的server配置項
    # 配置項裏面包含該虛擬主機相關的配置。
    server {
        # 端口
        listen       80 default_server;
        listen       [::]:80 default_server;
        # 訪問的域名
        server_name  _;
        # 默認網站根目錄(www目錄)
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.

        include /etc/nginx/default.d/*.conf;

        # 默認請求
        location / {
        }

        # 錯誤頁(404)
        error_page 404 /404.html;
            location = /40x.html {
        }

        # 錯誤頁(50X)
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

我們要更改配置的只需要server部分就可以了。進入vim編輯模式,或者用FlashFXP將配置文件共享到桌面來更改即可。

只需要改動三處即可

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        # 這裏改動了,也可以寫你的域名,我用的是IP地址
        server_name  106.12.129.252;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            # 這裏改動了 定義首頁索引文件的名稱
            index index.php index.html index.htm;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }

        # 這裏新加的
        # PHP 腳本請求全部轉發到 FastCGI處理. 使用FastCGI協議默認配置.
        # Fastcgi服務器和程序(PHP,Python)溝通的協議.
        location ~ \.php$ {
            # 設置監聽端口
            fastcgi_pass   127.0.0.1:9000;
            # 設置腳本文件請求的路徑
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            # 引入fastcgi的配置文件
            include        fastcgi_params;
        }
    }

更改後的配置文件爲:
在這裏插入圖片描述

重啓nginx服務器

nginx -s reload

此時,nginx和php已經聯合配置完成了,但是我們並不知道實際配置效果如何,這個時候我們可以寫一個小的測試腳本來驗證一下。
之前提過了/usr/share/nginx/html是Nginx的網站根目錄,我們可以在此目錄下建立一個php測試腳本。

# phpinfo.php是我要建立的文件名
vim /usr/share/nginx/html/phpinfo.php

打開編輯器後,在裏面輸入

<?php
phpinfo();// 測試信息
?>

保存退出後,在瀏覽器中輸入http://106.12.129.252/phpinfo.php,我這裏的ip是106.12.129.252,你換成你們自己的即可。如圖出現:
在這裏插入圖片描述
Nginx和php已經配置完成了。


後記

此次配置LNMP環境中間確實遇到了不少的坑,中間也參考了許多的博客,在此感謝所有的博主,正是他們的開源精神,使得我能順利完成這個環境搭建,期間也不止一次的重裝系統,最終還是成功的完成了搭建。


關於我自己

  • 一個正派但不正經的程序員

  • 18年計算機專業碩士畢業生,騰訊SNG部門實習生,現加盟快手科技 ,後端研發工程師一枚

  • 喜歡技術,喜歡互聯網

  • 民遙控 ,趙雷、陳粒、宋冬野

  • 公衆號:編程美學,時不時寫篇文章,偶爾數羊,其實說到底,只是想和你聊聊
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章