1. 程式人生 > >在CentOS 7下編譯安裝Nginx+PHP+MySQL環境

在CentOS 7下編譯安裝Nginx+PHP+MySQL環境

1、前言

本文適合於已經對Linux作業系統具有基本操作經驗,並且能夠在Linux或Windows上通過一鍵搭建工具或者yum命令列進行環境搭建的讀者,閱讀本文需具有一定的專業知識,本文不建議初學者閱讀。
本文所描述的是在標準的CentOS 7.2 64位作業系統下,安裝Nginx 1.12.2 + PHP 7.1.11 + MySQL 5.7.20環境。採用原始碼編譯安裝的方式,雖然較直接使用yum命令安裝較為複雜,但是原始碼安裝可以自定義指定安裝路徑,可以自定義配置安裝配套的庫和外掛,這樣伺服器運維人員將更清楚自己伺服器的情況,從而,在日後的環境、外掛的升級和更新操作中,將變得更加簡便和容易。

2、準備安裝工具

2.1、安裝make

yum -y install gcc automake autoconf libtool make

2.2、安裝g++

yum install gcc gcc-c++ glibc

2.3、建立安裝目錄

本文是在阿里雲伺服器上安裝,所以在伺服器根目錄下建立alidata目錄,然後在alidata目錄裡面分別建立server目錄、webapps目錄和package目錄,其中server目錄存放所有的伺服器軟體(本文中所涉及到的nginx、php、mysql等),webapps目錄存放所有部署的程式碼及程式,package目錄用來存放安裝過程中需要用到的編譯後的庫檔案。
需以root許可權,依次執行以下命令

mkdir /alidata
mkdir /alidata/package
mkdir –p /alidata/server
mkdir –p /alidata/webapps
mkdir –p /alidata/logs

這裡需要說明,上述的server目錄,是指環境安裝完成後,執行程式所在的目錄,並非nginx等程式的原始碼存放目錄,為了方便,本文將下載到的這些執行環境程式的原始碼統一存放於/root目錄下,讀者可根據自身情況及喜好,將執行環境程式原始碼存放於任意不是/alidata/server的目錄下。

3、安裝Nginx

3.1、下載並解壓pcre

cd /root/
wget https://sourceforge.net
/projects/pcre/files/pcre/8.41/pcre-8.41.tar.gz tar -zxvf pcre-8.41.tar.gz

3.2、下載並解壓zlib

cd /root/
wget https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz
tar –zxvf zlib-1.2.11.tar.gz

3.3、下載並解壓openssl

cd /root/
wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz
tar –zxvf openssl-1.1.0b.tar.gz

3.4、為nginx新增使用者及組

nginx的工作程序需要以某一個使用者的許可權進行執行,為了伺服器安全,一般指定一個普通使用者許可權的賬號做為nginx的執行角色,根據個人習慣,這裡使用www使用者做為nginx工作程序的使用者,後續安裝的PHP也以www使用者做為工作程序使用者,依次執行以下命令以建立使用者及使用者組

groupadd -r www
useradd -r -g www www

3.5、下載並安裝nginx

cd /root/
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar –zxvf nginx-1.12.2.tar.gz

以上命令完成下載和解壓操作,接下來進行安裝操作

cd nginx-1.12.2/
./configure --prefix=/alidata/server/nginx-1.12.2 --sbin-path=/alidata/server/nginx-1.12.2/sbin/nginx --conf-path=/alidata/server/nginx-1.12.2/nginx.conf --pid-path=/alidata/server/nginx-1.12.2/nginx.pid --user=www --group=www --with-http_ssl_module --with-http_flv_module --with-http_mp4_module  --with-http_stub_status_module --with-select_module --with-poll_module --error-log-path=/alidata/logs/nginx/error.log --http-log-path=/alidata/logs/nginx/access.log  --with-pcre=/root/pcre-8.41 --with-zlib=/root/zlib-1.2.11 --with-openssl=/root/openssl-1.1.0b
make
make install

其中,./configure是對安裝進行配置;

--prefix表示nginx要安裝到哪個路徑下,這裡指定剛才新建好的/alidata/server目錄下的nginx-1.12.2--sbin-path表示nginx的可執行檔案存放路徑
--conf-path表示nginx的主配置檔案存放路徑,nginx允許使用不同的配置檔案啟動,通過命令列中的-c選項
--pid-path表示nginx.pid檔案的存放路徑,將儲存的主程序的程序號。安裝完成後,可以隨時改變的檔名 , 在nginx.conf配置檔案中使用 PID指令。預設情況下,檔名 為prefix/logs/nginx.pid
--error-log-path表示nginx的主錯誤、警告、和診斷檔案存放路徑
--http-log-path表示nginx的主請求的HTTP伺服器的日誌檔案的存放路徑
--user表示nginx工作程序的使用者
--group表示nginx工作程序的使用者組
--with-select_module或--without-select_module表示啟用或禁用構建一個模組來允許伺服器使用select()方法
--with-poll_module或--without-poll_module表示啟用或禁用構建一個模組來允許伺服器使用poll()方法
--with-http_ssl_module表示使用https協議模組。預設情況下,該模組沒有被構建。建立並執行此模組的OpenSSL庫是必需的
--with-pcre表示pcre的原始碼路徑,因為解壓後的pcre是放在root目錄下的,所以是/root/pcre-8.41--with-zlib表示zlib的原始碼路徑,這裡因為解壓後的zlib是放在root目錄下的,所以是/root/zlib-1.2.11
--with-openssl表示openssl庫的原始碼路徑

配置成功後,依次執行make和make install命令,即可安裝Nginx,安裝成功後,可以看到在/alidata/server目錄下,多出了一個nginx-1.12.2,裡面即是nginx的實際執行程式。
3.6、設定nginx配置檔案
本文配置的nginx支援多域名,每個域名的配置檔案單獨放在/alidata/server/nginx-1.12.2/conf/vhosts路徑下,使用vim命令開啟nginx.conf檔案,對其內容進行修改

user  www www;
worker_processes  2;

error_log  /alidata/logs/nginx/error.log crit;

pid        /alidata/server/nginx-1.12.2/logs/nginx.pid;
worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections  65535;
}

http {
    include       mime.types;
default_type  application/octet-stream;

access_log  /alidata/logs/nginx/access.log  main;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile        on;
tcp_nopush     on;

keepalive_timeout  65;

gzip  on;
gzip_min_length  1k;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;

tcp_nodelay on;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;

log_format '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" "$http_x_forwarded_for"';

include /alidata/server/nginx-1.12.2/conf/vhosts/*.conf;
include /alidata/server/nginx-1.12.2/conf/proxy/*.conf;
}

上述配置中,引用了/alidata/server/nginx-1.12.2/conf/vhosts/目錄下所有後綴名是.conf的配置檔案,現在進入該目錄編寫一個預設配置檔案default.conf,其內容是

server {
    listen       80;
    server_name  localhost;
    index index.html;
    root /alidata/webapps;
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires 30d;
    }
    location ~ .*\.(js|css)?$
    {
        expires 1h;
    }
    #偽靜態規則
    include /alidata/server/nginx-1.12.2/conf/rewrite/default.conf;
    access_log  /alidata/logs/nginx/access/default.log;
    error_log /alidata/logs/nginx/error/default.log;
}

其中引入了一個/alidata/server/nginx-1.12.2/conf/rewrite/default.conf檔案,這個檔案是用來編寫rewrite規則的配置檔案,用來實現偽靜態,其內容是

rewrite ^(.*)-htm-(.*)$ $1.php?$2 last;
rewrite ^(.*)/simple/([a-z0-9\_]+\.html)$ $1/simple/index.php?$2 last;
rewrite ^(.*)/data/(.*)\.(htm|php)$ 404.html last;
rewrite ^(.*)/attachment/(.*)\.(htm|php)$ 404.html last;
rewrite ^(.*)/html/(.*)\.(htm|php)$ 404.html last;

3.7、啟動nginx

以本文為例,啟動nginx需要執行以下命令

/alidata/server/nginx-1.12.2/sbin/nginx

啟動後,使用命令

ps aux | grep nginx

檢視程序,若能夠看到相關程序,則證明啟動成功。查詢程序時,可以看到程序是以www使用者身份執行的

3.8、加入系統環境變數

使用vim命令開啟/etc/profile檔案,在檔案最末尾加上如下程式碼

export NGINX_HOME=/alidata/server/nginx-1.12.2
export PATH=$PATH:$NGINX_HOME/sbin

儲存修改後,使用source命令重新載入配置檔案,命令如下

source /etc/profile

執行上述命令後,可使用

echo $PATH

命令檢視環境變數中是否已經加入了相關的路徑

3.9、加入系統服務

使用vim命令在/etc/init.d/目錄下建立一個nginx檔案,命令如下

vim /etc/init.d/nginx

檔案內容如下

#!/bin/bash
# chkconfig: - 85 15
PATH=/alidata/server/nginx-1.12.2
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0

其中,需要注意幾個變數,分別是PATH、NAME、DAEMON、CONFIGFILE、PIDFILE、SCRIPTNAME,其中,PATH設定為nginx的安裝路徑,DAEMON設定為nginx啟動指令碼的路徑,CONFIGFILE是nginx.conf檔案的路徑,PIDFILE是程序檔案的路徑,需要與nginx.conf檔案中的配置一致,SCRIPTNAME則是要指向當前檔案路徑/etc/init.d/nginx
將上述檔案儲存後,一定要記得給其賦予可執行的許可權,具體命令如下

chmod +x /etc/init.d/nginx

至此,我們已將nginx加入了系統服務,由於本文描述的實在CentOS 7環境下安裝,所以與CentOS 6不同的是,不再使用類似於

service nginx start

這樣的命令來開啟或者關閉服務,而是使用如下命令開啟和關閉服務

/bin/systemctl start nginx
/bin/systemctl stop nginx
/bin/systemctl reload nginx

若此時無法執行以上命令,首先要確認之前開啟的nginx程序已被殺死,其次可以嘗試先執行

systemctl enable nginx

命令,然後再執行上述三個命令。

3.10、設定nginx開機自啟動

經過上面的操作,nginx已被新增為系統服務,所以可以將其設定為開機自啟動,這樣就可以避免每次伺服器重啟之後需要手動開啟nginx的操作,具體命令如下

chkconfig --add nginx
chkconfig nginx on

或者

systemctl enable nginx

4、安裝php

4.1、通過yum命令安裝php需要的常用庫

依次執行以下命令

yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel

4.2、下載並安裝php

cd /root/
wget http://cn2.php.net/distributions/php-7.1.11.tar.gz
tar –zxvf php-7.1.11.tar.gz

以上命令完成下載和解壓操作,接下來進行安裝操作

cd /root/php-7.1.11
./configure --prefix=/alidata/server/php-7.1.11 --with-config-file-path=/alidata/server/php-7.1.11/etc --enable-fpm --with-mcrypt --enable-mbstring --enable-pdo --with-curl --disable-debug  --disable-rpath --enable-inline-optimization --with-bz2  --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysqli --with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar
make
make install

4.3、設定php配置檔案

將官方提供的配置模板拷貝到配置引數中所指定的目錄中

cp /root/php-7.1.11/php.ini-production /alidata/server/php-7.1.11/etc/php.ini

然後可以根據自己伺服器的需求,對php.ini檔案的內容進行修改

4.4、設定php-fpm配置檔案

依次執行以下命令

cd /alidata/server/php-7.1.11/etc
cp php-fpm.conf.default php-fpm.conf
cd /alidata/server/php-7.1.11/etc/php-fpm.d
cp www.conf.default www.conf

使用vim命令對php-fpm.conf的內容進行如下修改

pid= /alidata/server/php-7.1.11/var/run/php-fpm.pid

使用vim命令對www.conf的內容進行如下修改

user = www
group = www
listen = 127.0.0.1:9000
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35

其他配置可根據自己的情況進行相應修改

4.5、啟動php-fpm

完成以上配置後,即可啟動php-fpm,執行以下命令

/alidata/server/php-7.1.11/sbin/php-fpm

啟動後,使用

ps aux | grep php-fpm

命令檢視程序,若能夠看到相關程序,則證明啟動成功。查詢程序時,可以看到程序是以www使用者身份執行的

4.6、加入系統環境變數

使用vim命令開啟/etc/profile檔案,在檔案最末尾加上如下程式碼

export PHP_HOME=/alidata/server/php-7.1.11
export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin

儲存修改後,使用source命令重新載入配置檔案,命令如下

source /etc/profile

執行上述命令後,可使用

echo $PATH

命令檢視環境變數中是否已經加入了相關的路徑

4.7、加入系統服務

使用vim命令在/etc/init.d/目錄下建立一個php-fpm檔案,命令如下

vim /etc/init.d/php-fpm

檔案內容如下

#!/bin/bash
# php-fpm startup script for the php-fpm 
# php-fpm version:7.1.11
# chkconfig: - 85 15
# description: php-fpm
# processname: php-fpm
# pidfile: /alidata/server/php-7.1.11/var/run/php-fpm.pid
# config: /alidata/server/php-7.1.11/etc/php-fpm.conf

php_command=/alidata/server/php-7.1.11/sbin/php-fom
php_config=/alidata/server/php-7.1.11/etc/php-fpm.conf
php_pid=/alidata/server/php-7.1.11/var/run/php-fpm.pid
RETVAL=0
prog="php-fpm"

#start function
php_fpm_start() {
    /alidata/server/php-7.1.11/sbin/php-fpm
}

start(){
    if [ -e $php_pid  ]
    then
    echo "php-fpm already start..."
    exit 1
    fi
    php_fpm_start
}

stop(){
    if [ -e $php_pid ]
    then
    parent_pid=`cat $php_pid`
    all_pid=`ps -ef | grep php-fpm | awk '{if('$parent_pid' == $3){print $2}}'`
    for pid in $all_pid
    do
            kill $pid
        done
        kill $parent_pid
    fi
    exit 1
}

restart(){
    stop
    start
}

# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
restart)
        stop
        start
        ;;
status)
        status $prog
        RETVAL=$?
        ;;
*)
        echo $"Usage: $prog {start|stop|restart|status}"
        exit 1
esac
exit $RETVAL

其中,php_command表示php-fpm可執行指令碼的路徑,php_config表示php-fpm的配置檔案路徑,php_pid表示php-fpm程序檔案的路徑

4.8、設定php-fpm開機自啟動

經過上面的操作,php-fpm已被新增為系統服務,所以可以將其設定為開機自啟動,這樣就可以避免每次伺服器重啟之後需要手動開啟php-fpm的操作,具體命令如下

chkconfig --add php-fpm
chkconfig php-fpm on

或者

systemctl enable php-fpm

5、安裝MySQL

5.1、下載並安裝cmake

cd /root/
wget https://cmake.org/files/v3.10/cmake-3.10.0-rc5.tar.gz
tar –zxvf cmake-3.10.0-rc5.tar.gz

以上命令完成下載和解壓操作,接下來進行安裝操作

cd cmake-3.10.0-rc5
./configure --prefix=/alidata/package/cmake
make
make install
export PATH=/package/cmake/bin:$PATH

5.2、下載並安裝ncurses

cd /root/
wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz
tar –zxvf ncurses-6.0.tar.gz

以上命令完成下載和解壓操作,接下來進行安裝操作

cd ncurses-6.0
./configure --prefix=/alidata/package/ncurses
make
make install

5.3、安裝libaio庫

執行以下命令

yum install libaio*

安裝libaio和libaio-devel這兩個庫

5.4、為MySQL新增使用者及組

為了保證作業系統的安全,這裡為mysql工作程序建立專用的使用者

groupadd mysql
useradd -r -g mysql mysql
cd /root/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
tar –zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.20-linux-glibc2.12-x86_64 /alidata/server/mysql-5.7.20/

這裡使用的是mysql官方提供的解壓縮版的安裝方式,不需要進行make操作。將mysql資料夾移動到安裝路徑後,需要修改mysql安裝資料夾的許可權,執行以下命令

chown –R mysql.mysql /alidata/server/mysql-5.7.20/

後續如果在該目錄及其子目錄下建立了任何檔案和資料夾,均需要再次執行該命令,以確保mysqld程序對該資料夾具有完全的讀寫許可權

5.6、設定mysql配置檔案

mysql的配置檔案是放在/etc/目錄下的,名字是my.cnf,具體配置如下

[client]
port            = 3306
socket          = /alidata/server/mysql-5.7.20/tmp/mysql.sock
[mysqld]
basedir=/alidata/server/mysql-5.7.20
datadir=/alidata/server/mysql-5.7.20/data
socket=/alidata/server/mysql-5.7.20/tmp/mysql.sock
#skip-external-locking
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
log-error=/alidata/logs/mysql/error.log
pid-file=/alidata/logs/mysql/mysql.pid

[mysqld_safe]
log-error=/alidata/logs/mariadb/error.log
pid-file=/alidata/logs/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

這裡需要注意,配置檔案最後一行引入了新的配置檔案,下面列出my.cnf.d目錄下名為mysql-clients.cnf的配置檔案內容

#
# These groups are read by MariaDB command-line tools
# Use it for options that affect only one utility
#

[mysql]

[mysql_upgrade]

[mysqladmin]

[mysqlbinlog]

[mysqlcheck]

[mysqldump]

[mysqlimport]

[mysqlshow]

[mysqlslap]

在my.cnf配置檔案中,需要注意幾個配置,其中basedir指的是mysql的安裝目錄,datadir指的是mysql資料檔案的儲存目錄,其他幾項配置項,如果大家感興趣可以自行檢視官方解釋。還需要特別說明的一個問題是,所有在配置檔案中出現的路徑、檔案均需要具有可讀寫的許可權,前面為MySQL建立了使用者及組,所以上述配置檔案中涉及到的路徑和檔案,均需要將其所有者及組指定為mysql使用者,這樣MySQL服務才能正常啟動。
完成以上配置後,需要將mysqld的啟動指令碼放入/etc/init.d/路徑中,執行以下命令

cp –a /alidata/server/mysql-5.7.20/support-files/mysql.server /etc/init.d/mysqld

拷貝完成後,使用vim命令,修改/etc/init.d/mysqld中的basedir和datadir,確保其值與my.cnf檔案中的內容相同

5.7、初始化MySQL

因本文采用的是MySQL 5.7.20版本,所以不能使用mysql_install_db命令,而是需要使用mysqld –initialize命令對資料庫進行初始化,具體命令如下

/alidata/server/mysql-5.7.20/bin/mysqld –initialize --user=mysql --basedir=/alidata/server/mysql-5.7.20/ --datadir=/alidata/server/mysql-5.7.20/data/

若前面配置檔案中的各配置項均正確,各路徑、檔案均存在並可讀寫,改命令將提示執行成功,並能夠在/root/目錄下生成一個.mysql_secret檔案,使用cat命令可檢視其內容,其是mysql中本地root使用者的初始密碼。這裡需要特別說明一下,本文作者使用mysql自動生成初始密碼沒有登入成功,然後通過安全啟動指令碼對mysql的root使用者密碼進行修改後,才能夠正常登入和使用,所以這一步目前無法得到確認,大家可根據自己的實際情況處理。

5.8、使用安全模式啟動MySQL

在mysql安裝目錄的bin目錄下,使用以下命令啟動mysql

./mysqld_safe --user=mysql &

啟動後,使用初始化所得的root密碼登入mysql,檢視是否可以正常操作,命令如下

./mysql –uroot –p

5.9、設定MySQL服務開機自啟

依次執行以下命令

cd /alidata/server/mysql-5.7.20/bin/
chkconfig --level 35 mysqld on

5.10. 啟動MySQL服務
前文使用的是安全模式啟動,現在,需要讓MySQL服務正常啟動,首先,通過命令

ps aux | grep mysql

查詢到通過mysqld_safe命令啟動的程序,使用kill命令將其全部殺掉,然後使用

/etc/init.d/mysqld start

命令,啟動MySQL服務,接下來,就請使用root使用者登入,然後進行建立使用者,建立資料庫,賦權等操作,這部分屬於MySQL的基本操作,本文不再贅述。

6、配置Nginx+PHP+MySQL

與Apache伺服器不同的是,Nginx本身並不解釋、執行PHP程式碼,Nginx只是將使用者端發來的HTTP請求進行轉發,真正解釋執行PHP程式碼的是php-fpm程序,所以,這裡只需要將Nginx收到的http請求轉發給php-fpm即可。
根據本文前序步驟,已經完成了Nginx和PHP的安裝和配置,接下來,只需要在Nginx的配置檔案中加入轉發至php-fpm的配置即可。

6.1、配置Nginx+PHP

本文中對Nginx進行了多域名配置,每個域名只需要在/alidata/server/nginx-1.12.2/conf/vhosts目錄下有一個自己的配置檔案即可,所以重點就在這個配置檔案裡,現在假定我們需要檢視當前伺服器的php資訊,因為本文沒有涉及到域名解析及配置的相關資訊,所以這裡就以IP訪問為例進行配置講解,首先,需要在我們的web程式碼根路徑/alidata/webapps下建立一個info.php檔案,執行以下命令

vim /alidata/webapps/info.php

檔案內容是一段非常簡單的php程式碼

儲存檔案後,對Nginx的配置檔案進行修改,前文已經在/alidata/server/nginx-1.12.2/conf/vhosts目錄下建立了default.conf配置檔案,現在對這個檔案的內容進行修改,修改後的內容如下

server {
        listen       80;
        server_name  localhost;
        index index.php index.htm index.html;
        root /alidata/webapps;
        location ~ .*\.(php|php5)?$
        {
                #fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
                expires 30d;
        }
        location ~ .*\.(js|css)?$
        {
                expires 1h;
        }
        # 配置頁面靜態化
        include /alidata/server/nginx-1.12.2/conf/rewrite/default.conf;
        access_log  /alidata/logs/nginx/access/default.log;
        error_log /alidata/logs/nginx/error/default.log;
}

可以看到,與之前的配置檔案相比,主要是index配置項後,多了關於php的配置內容,以及location相關配置中,多了對於php的內容,儲存以上配置檔案,使用

systemctl reload nginx

命令,重新載入配置檔案後,通過瀏覽器訪問http://伺服器的IP/info.php,即可看到上文中php程式碼的執行效果,具體如下圖所示
php配置資訊
至此,即完成了Nginx和PHP的配置,這裡需要說明,上述的配置只是最簡單的配置,若專案不是執行在web根目錄下的,那麼配置檔案也需要對應的進行修改,若專案是採用CodeIgniter或Laravel等其他框架技術開發的,那麼也需要對配置檔案進行相應修改,這部分內容大家可自行百度,有很多相關的部落格。

6.2、關於MySQL配置的說明

正如前文所說,Nginx的工作主要是轉發請求,所以MySQL的配置也僅僅需要在PHP中安裝相關擴充套件,只要通過PHP程式碼可以訪問到MySQL即可,不需要再進行其他特殊的配置。

所以,到這裡也就完成了Nginx+PHP+MySQL的環境安裝和配置,如果各位還有什麼問題和建議,歡迎留言交流。