php7發佈了好久時間了,最近有空下載下來看看php
nginx安裝:nginx安裝首先依賴幾個庫。分別爲pcre,zlib,openssl分別下載這幾個庫,html
有些庫編譯須要gcc,先安裝gcc,yum install -y gcc gcc-c++mysql
以zlib爲例子 我下載是zlib-1.2.8.tar.gz,解壓nginx
#tar -zxvf zlib-1.2.8.tar.gzc++
#cd tar -zxvf zlib-1.2.8sql
# ./configure --prefix=/usr/local/zlib make make install 瀏覽器
#make && make install安全
其它兩個同樣./configure --prefix=/usr/local/zlib make make install ./configure --prefix=/usr/local/openssl make make install服務器
如今編譯nginx,php7
# tar -zxvf nginx-1.11.3.tar.gz
#cd nginx-1.11.3
#./configure --prefix=/usr/local/nginx
--with-pcre=../pcre-8.37
--with-zlib=../zlib-1.2.8
--with-openssl=../openssl-fips-1.0.2d
後面帶的庫路徑是表示這樣庫源碼的路徑,我下載的庫都是放在同一個目錄下,因此是同級關係
#make && make install
nginx安裝就完成了,啓動 /usr/local/nginx/sbin/nginx,瀏覽器點擊127.0.0.1查看安裝成功
php7安裝:
下載php-7.0.10.tar.gz,
# tar -zxvf php-7.0.10.tar.gz //解壓
#./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip
若是出現缺乏什麼庫時,直接yum 安裝如
yum -y install libxml2 libxml2-devel libxslt-devel ...
有時候出現錯誤
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory : 153 M RSS (266 MB VSZ)
Started: Thu Jul 12 00:03:05 2012 - 06:17 ago
State : Sleeping, pid: 4018
直接rm -rf /var/run/yum.pid 強行解除鎖定,yum就能用了
執行成功後編譯
#make && make install
成功後須要複製配置文件php.ini 和php-fpm.conf www.conf
從源碼包複製php.ini
# cp php.ini-development (或是 php.ini-production 用於服務器的,安全性較高) /usr/local/php/etc/php.ini
在執行文件時 加上 --with-config-file-path=/usr/local/php/etc 能夠指定php.ini的位置
# cd /usr/local/php/etc/ 進入這個目錄
# cp php-fpm.conf.default php-fpm.conf 添加php-fpm.conf 配置文件
# cd php-fpm.d 在進入這個目錄
# cp www.conf.default www.conf 添加www.conf,這個文件是phpfpm的端口號等信息,若是你修改默認的9000端口號需在這裏改,再改nginx的配置,ps:php5.X版本是直接在php-fpm.conf這個文件配置,沒有這個文件的
進入php-fpm.conf 這個文件把 ;pid = run/php-fpm.pid 前面的;去掉,我編譯php5版本是,發現啓動php沒有php-fpm.pid這個文件,致使不能重啓,後面發現把這個打開,啓動就能生成php-fpm.pid這個文件了
啓動php
#/usr/local/php/sbin/php-fpm
配置nginx
進入nginx.conf ,在 /usr/local/nginx/conf/nginx.conf中
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
把這行註釋去掉 fastcgi_param SCRIPT_FILENAME \script$fastcgi_script_name;改爲fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
重啓nginx :/usr/local/nginx/sbin/nginx -s reload
安裝完成
php-fpm信號控制啓動重啓等狀態
SIGINT, SIGTERM 馬上終止
SIGQUIT 平滑終止
SIGUSR1 從新打開日誌文件
SIGUSR2 平滑重載全部worker進程並從新載入配置和二進制模塊
php重啓:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
中止 : kill -SIGINT php-fpm.pid