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
- 1
2.2、安裝g++
yum install gcc gcc-c++ glibc
- 1
2.3、創建安裝目錄
本文是在阿里雲服務器上安裝,所以在服務器根目錄下創建alidata目錄,然后在alidata目錄里面分別創建server目錄、webapps目錄和package目錄,其中server目錄存放所有的服務器軟件(本文中所涉及到的nginx、php、mysql等),webapps目錄存放所有部署的代碼及程序,package目錄用來存放安裝過程中需要用到的編譯后的庫文件。
需以root權限,依次執行以下命令
這里需要說明,上述的server目錄,是指環境安裝完成后,運行程序所在的目錄,並非nginx等程序的源碼存放目錄,為了方便,本文將下載到的這些運行環境程序的源碼統一存放於/root目錄下,讀者可根據自身情況及喜好,將運行環境程序源碼存放於任意不是/alidata/server的目錄下。
3、安裝Nginx
3.1、下載並解壓pcre
官網:http://www.pcre.org/
依次執行以下命令
cd /opt/
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
官網:http://zlib.net/
依次執行以下命令
cd /opt/
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
官網:https://www.openssl.org/
依次執行以下命令
cd /opt/
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
官網:http://nginx.org/
依次執行以下命令
cd /opt/
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=/opt/nginx --sbin-path=/opt/nginx/sbin/nginx --conf-path=/opt/nginx/nginx.conf --pid-path=/opt/nginx/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=/opt/nginx/logs/error.log --http-log-path=/opt/nginx/logs/access.log --with-pcre=/opt/pcre-8.41 --with-zlib=/opt/zlib-1.2.11 --with-openssl=/opt/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,安裝成功后,可以看到在/opt目錄下,多出了一個nginx里面即是nginx的實際運行程序。
3.6、設置nginx配置文件
本文配置的nginx支持多域名,每個域名的配置文件單獨放在/opt/nginx/conf/vhosts路徑下,使用vim命令打開nginx.conf文件,對其內容進行修改
user www www; worker_processes auto; error_log /opt/nginx/logs/nginx_error.log crit; pid /opt/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; multi_accept on; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 64k; large_client_header_buffers 4 32k; client_max_body_size 500M; sendfile on; tcp_nopush on; keepalive_timeout 300; #proxy超時時間 proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; 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 256k; #緩存配置 proxy_cache_key '$host:$server_port$request_uri'; proxy_temp_file_write_size 512k; proxy_temp_path /opt/dev/shm/JieLiERP/proxy_temp_path; proxy_cache_path /opt/dev/shm/JieLiERP/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=5d max_size=1g; proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie; #緩存配置結束 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\."; proxy_buffer_size 128k; proxy_buffers 32 128k; proxy_busy_buffers_size 128k; #limit_conn_zone $binary_remote_addr zone=perip:10m; ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section. server_tokens off; access_log off; include vhost/*.conf; }
上述配置中,引用了/alidata/server/nginx/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需要執行以下命令
/opt/nginx/sbin/nginx
啟動后,使用命令
ps aux | grep nginx
查看進程,若能夠看到相關進程,則證明啟動成功。查詢進程時,可以看到進程是以www用戶身份執行的
3.8、加入系統環境變量
使用vim命令打開/etc/profile文件,在文件最末尾加上如下代碼
export NGINX_HOME=/opt/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=/opt/nginx 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
官網: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.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
官網: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.2、下載並安裝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.3、安裝libaio庫
執行以下命令
yum install libaio*
安裝libaio和libaio-devel這兩個庫
5.4、為MySQL添加用戶及組
為了保證操作系統的安全,這里為mysql工作進程創建專用的用戶
groupadd mysql
useradd -r -g mysql mysql
5.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.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代碼的運行效果,具體如下圖所示
至此,即完成了Nginx和PHP的配置,這里需要說明,上述的配置只是最簡單的配置,若項目不是運行在web根目錄下的,那么配置文件也需要對應的進行修改,若項目是采用CodeIgniter或Laravel等其他框架技術開發的,那么也需要對配置文件進行相應修改,這部分內容大家可自行百度,有很多相關的博客。