Centos7+Nginx+PHP 基礎WEB運行環境手工部署

Centos7+nginx+php(php-fpm)基礎web運行環境手工部署php

準備工做

1.安裝編譯支持庫html

yum install -y gcc automake autoconf libtool make

yum install -y gcc gcc-c++

yum install -y openldap-devel libicu-devel libpng-devel libjpeg-devel curl-devel openssl-devel libxml2-devel libzip-devel

2.安裝PCREmysql

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
tar -xzf pcre-8.40.tar.gz -C ./
cd pcre-8.40
./configure --prefix=/usr/local/pcre
make && make install
cd ..

3.安裝zlibnginx

wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xzf zlib-1.2.11.tar.gz -C ./
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install
cd ..

4.安裝opensslc++

wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar -xzf openssl-1.0.2k.tar.gz -C ./
#注意,這裏不須要進行安裝,後面步驟省略。

 

安裝nginx

官方下載 http://nginx.org/en/download.htmlweb

wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar -xzf nginx-1.12.0.tar.gz  -C ./
cd nginx-1.12.0

./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/mnt/tools/pcre-8.40/ \
--with-zlib=/mnt/tools/zlib-1.2.11/ \
--with-openssl=/mnt/tools/openssl-1.0.2k/ \
--with-http_stub_status_module \
--with-http_realip_module \
--with-stream



#注:cpre、zlib、openssl等依賴包的路徑是解壓的源碼路徑不是安裝後的路徑。

make
make install

 

安裝PHP

安裝依賴擴展sql

yum install -y libxml2-devel openssl-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel openldap-devel

官網下載 http://php.net/releases/index.phpapache

官網安裝文檔 http://php.net/manual/zh/install.unix.nginx.php後端

【可選】擴展freetype庫安裝api

wget https://cytranet.dl.sourceforge.net/project/freetype/freetype2/2.9.1/freetype-2.9.1.tar.gz
tar -xzf freetype-2.9.1.tar.gz
cd freetype-2.9.1
./configure --prefix=/usr/local/freetype/2.9.1/ --libdir=/usr/local/freetype/2.9.1/lib64 --with-static --with-shared
make && make install

 

wget http://php.net/get/php-5.6.29.tar.gz/from/this/mirror -O php-5.6.29.tar.gz
tar -xzf php-5.6.29.tar.gz -C ./
cd php-5.6.29
./configure --prefix=/usr/local/php/php5.6.29/\
 --with-config-file-path=/usr/local/php/php5.6.29/\
 --with-libdir=lib64\
 --enable-fpm\
 --with-fpm-user=php-fpm\
 --with-fpm-group=www\
 --enable-mysqlnd\
 --with-mysql=mysqlnd\
 --with-mysqli=mysqlnd\
 --with-pdo-mysql=mysqlnd\
 --enable-opcache\
 --enable-pcntl\
 --enable-mbstring\
 --enable-soap\
 --enable-zip\
 --enable-calendar\
 --enable-bcmath\
 --enable-exif\
 --enable-ftp\
 --enable-intl\
 --enable-sockets\
 --with-openssl\
 --with-zlib\
 --with-curl\
 --with-gd\
 --with-zlib-dir=/usr/lib\
 --with-png-dir=/usr/lib\
 --with-jpeg-dir=/usr/lib\
 --with-gettext\
 --with-mhash\
 --with-ldap


make && make install

[可選]編譯freetype將參數追加到configure 後面

 --with-freetype-dir=/usr/local/freetype/2.9.1/\
 --enable-gd-native-ttf\

配置文件

建立PHP配置文件

#建立配置文件
cd /usr/local/php/php-5.6.29/
cp php.ini-development /usr/local/php/php5.6.29/php.ini
cp /usr/local/php/php5.6.29/etc/php-fpm.conf.default /usr/local/php/php5.6.29/etc/php-fpm.conf

#複製php-fpm管理器腳本
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

修改配置文件

vi /usr/local/php/php5.6.29/php.ini
#須要着重提醒的是,若是文件不存在,則阻止 Nginx 將請求發送到後端的 PHP-FPM 模塊, 
#以免遭受惡意腳本注入的攻擊。
#定位到 cgi.fix_pathinfo= 並將其修改成以下所示:

cgi.fix_pathinfo=0

建立php-fpm運行用戶,可經過配置查看當前配置用戶及組名。

vi /usr/local/etc/php-fpm.conf

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used. 
user = php-fpm
group = www


#建立用戶
useradd -s /sbin/nologin -M php-fpm 
#建立組
groupadd www

經過php-fpm腳本,啓動php服務(中止、重啓、重載)。

service php-fpm start
service php-fpm restart
service php-fpm stop
service php-fpm reload

配置nginx,使其支持PHP應用。

vi /usr/local/nginx/nginx.conf

修改默認的 location 塊,使其支持 .php 文件:

location / {
            root   html;
            index  index.php index.html index.htm;
        }

下一步配置來保證對於 .php 文件的請求將被傳送到後端的 PHP-FPM 模塊, 取消默認的 PHP 配置塊的註釋,並修改成下面的內容:

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  SCRIPT_NAME $fastcgi_script_name;
            include        fastcgi_params;
        }

測試運行

重啓 Nginx

/usr/local/nginx/nginx -s stop
/usr/local/nginx/nginx
#注意前面應該啓動 php-fpm ,如:service php-fpm start
echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/index.php

訪問 http://www.example.com 已經成功。

本文注意細節已經在過程步驟中說明,留意查看。若有疑問,請在文末留言,謝謝。

更多關於nginx、apache等web服務環境部署及生成環境部署優化,歡迎關注本博客文章。

 

續篇文章

Centos7+Nginx+PHP 基礎WEB運行環境-多虛擬主機配置

相關文章
相關標籤/搜索