CentOS7 搭建nginx+php執行環境
搭建環境
正文
安裝部分教程
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部門實習生,現加盟快手科技 ,後端研發工程師一枚
-
喜歡技術,喜歡網際網路
-
民遙控 ,趙雷、陳粒、宋冬野
-
公眾號:程式設計美學,時不時寫篇文章,偶爾數羊,其實說到底,只是想和你聊聊