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

本文轉載自:http://www.softeng.cn/?p=156,本文已得到做者受權,未經做者贊成,不可轉載。javascript

一、前言

本文適合於已經對Linux操做系統具備基本操做經驗,而且可以在Linux或Windows上經過一鍵搭建工具或者yum命令行進行環境搭建的讀者,閱讀本文需具備必定的專業知識,本文不建議初學者閱讀。php

本文所描述的是在標準的CentOS 7.2 64位操做系統下,安裝Nginx 1.12.2 + PHP 7.1.11 + MySQL 5.7.20環境。採用源碼編譯安裝的方式,雖然較直接使用yum命令安裝較爲複雜,可是源碼安裝能夠自定義指定安裝路徑,能夠自定義配置安裝配套的庫和插件,這樣服務器運維人員將更清楚本身服務器的狀況,從而,在往後的環境、插件的升級和更新操做中,將變得更加簡便和容易。css

二、準備安裝工具

2.一、安裝make

yum -y install gcc automake autoconf libtool makehtml

2.二、安裝g++

yum install gcc gcc-c++ glibcjava

2.三、建立安裝目錄

本文是在阿里雲服務器上安裝,因此在服務器根目錄下建立alidata目錄,而後在alidata目錄裏面分別建立server目錄、webapps目錄和package目錄,其中server目錄存放全部的服務器軟件(本文中所涉及到的nginx、php、mysql等),webapps目錄存放全部部署的代碼及程序,package目錄用來存放安裝過程當中須要用到的編譯後的庫文件。
需以root權限,依次執行如下命令node

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

這裏須要說明,上述的server目錄,是指環境安裝完成後,運行程序所在的目錄,並不是nginx等程序的源碼存放目錄,爲了方便,本文將下載到的這些運行環境程序的源碼統一存放於/root目錄下,讀者可根據自身狀況及喜愛,將運行環境程序源碼存放於任意不是/alidata/server的目錄下。linux

三、安裝Nginx

3.一、下載並解壓pcre

官網:http://www.pcre.org/
依次執行如下命令nginx

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

3.二、下載並解壓zlib

官網:http://zlib.net/
依次執行如下命令

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.三、下載並解壓openssl

官網:https://www.openssl.org/
依次執行如下命令

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

3.四、爲nginx添加用戶及組

nginx的工做進程須要以某一個用戶的權限進行運行,爲了服務器安全,通常指定一個普通用戶權限的帳號作爲nginx的運行角色,根據我的習慣,這裏使用www用戶作爲nginx工做進程的用戶,後續安裝的PHP也以www用戶作爲工做進程用戶,依次執行如下命令以建立用戶及用戶組

groupadd -r www
useradd -r -g www www

3.五、下載並安裝nginx

官網:http://nginx.org/
依次執行如下命令

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

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

./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.六、設置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.七、啓動nginx

以本文爲例,啓動nginx須要執行如下命令

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

啓動後,使用命令

ps aux | grep nginx

查看進程,若可以看到相關進程,則證實啓動成功。查詢進程時,能夠看到進程是以www用戶身份執行的

3.八、加入系統環境變量

使用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.九、加入系統服務

使用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.十、設置nginx開機自啓動

通過上面的操做,nginx已被添加爲系統服務,因此能夠將其設置爲開機自啓動,這樣就能夠避免每次服務器重啓以後須要手動開啓nginx的操做,具體命令以下

chkconfig –add nginx
chkconfig nginx on

或者

systemctl enable nginx

四、安裝php

4.一、經過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.二、下載並安裝php

官網:http://php.net/
依次執行如下命令

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.三、設置php配置文件

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

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

而後能夠根據本身服務器的需求,對php.ini文件的內容進行修改

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.五、啓動php-fpm

完成以上配置後,便可啓動php-fpm,執行如下命令

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

啓動後,使用

ps aux | grep php-fpm

命令查看進程,若可以看到相關進程,則證實啓動成功。查詢進程時,能夠看到進程是以www用戶身份執行的

4.六、加入系統環境變量

使用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.七、加入系統服務

使用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.八、設置php-fpm開機自啓動

通過上面的操做,php-fpm已被添加爲系統服務,因此能夠將其設置爲開機自啓動,這樣就能夠避免每次服務器重啓以後須要手動開啓php-fpm的操做,具體命令以下

chkconfig –add php-fpm
chkconfig php-fpm on

或者

systemctl enable php-fpm

五、安裝MySQL

5.一、下載並安裝cmake

官網:https://cmake.org/
依次執行如下命令

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.二、下載並安裝ncurses

官網:http://invisible-island.net/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.三、安裝libaio庫

執行如下命令

yum install libaio*

安裝libaio和libaio-devel這兩個庫

5.四、爲MySQL添加用戶及組

爲了保證操做系統的安全,這裏爲mysql工做進程建立專用的用戶

groupadd mysql
useradd -r -g mysql mysql

5.五、下載並安裝MySQL

官網:https://www.mysql.com
依次執行如下命令

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.六、設置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.七、初始化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.八、使用安全模式啓動MySQL

在mysql安裝目錄的bin目錄下,使用如下命令啓動mysql

./mysqld_safe –user=mysql &

啓動後,使用初始化所得的root密碼登陸mysql,查看是否能夠正常操做,命令以下

./mysql –uroot –p

5.九、設置MySQL服務開機自啓

依次執行如下命令

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

5.十、啓動MySQL服務

前文使用的是安全模式啓動,如今,須要讓MySQL服務正常啓動,首先,經過命令

ps aux | grep mysql

查找到經過mysqld_safe命令啓動的進程,使用kill命令將其所有殺掉,而後使用

/etc/init.d/mysqld start

命令,啓動MySQL服務,接下來,就請使用root用戶登陸,而後進行建立用戶,建立數據庫,賦權等操做,這部分屬於MySQL的基本操做,本文再也不贅述。

六、配置Nginx+PHP+MySQL

與Apache服務器不一樣的是,Nginx自己並不解釋、運行PHP代碼,Nginx只是將用戶端發來的HTTP請求進行轉發,真正解釋運行PHP代碼的是php-fpm進程,因此,這裏只須要將Nginx收到的http請求轉發給php-fpm便可。
根據本文前序步驟,已經完成了Nginx和PHP的安裝和配置,接下來,只須要在Nginx的配置文件中加入轉發至php-fpm的配置便可。

6.一、配置Nginx+PHP

本文中對Nginx進行了多域名配置,每一個域名只須要在/alidata/server/nginx-1.12.2/conf/vhosts目錄下有一個本身的配置文件便可,因此重點就在這個配置文件裏,如今假定咱們須要查看當前服務器的php信息,由於本文沒有涉及到域名解析及配置的相關信息,因此這裏就以IP訪問爲例進行配置講解,首先,須要在咱們的web代碼根路徑/alidata/webapps下建立一個info.php文件,執行如下命令

vim /alidata/webapps/info.php

文件內容是一段很是簡單的php代碼

<?php
echo phpinfo();
?>

保存文件後,對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代碼的運行效果,具體以下圖所示

至此,即完成了Nginx和PHP的配置,這裏須要說明,上述的配置只是最簡單的配置,若項目不是運行在web根目錄下的,那麼配置文件也須要對應的進行修改,若項目是採用CodeIgniter或Laravel等其餘框架技術開發的,那麼也須要對配置文件進行相應修改,這部份內容你們可自行百度,有不少相關的博客。

6.二、關於MySQL配置的說明

正如前文所說,Nginx的工做主要是轉發請求,因此MySQL的配置也僅僅須要在PHP中安裝相關擴展,只要經過PHP代碼能夠訪問到MySQL便可,不須要再進行其餘特殊的配置。

 

因此,到這裏也就完成了Nginx+PHP+MySQL的環境安裝和配置,若是各位還有什麼問題和建議,歡迎留言交流。

相關文章
相關標籤/搜索