lnmp php fpm 默认,LNMP(PHP-FPM)
nginx本身不能處理PHP,它只是個web服務(wù)器,當(dāng)接收到請求后,如果是php請求,則發(fā)給php解釋器處理,并把結(jié)果返回給客戶端。nginx一般是把請求發(fā)fastcgi管理進(jìn)程處理,fascgi管理進(jìn)程選擇cgi子進(jìn)程處理結(jié)果并返回被nginx
本文以php-fpm為例介紹如何使nginx支持PHP
一、編譯安裝php-fpm
什么是PHP-FPM
PHP-FPM是一個PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下載得到.
PHP-FPM其實是PHP源代碼的一個補(bǔ)丁,旨在將FastCGI進(jìn)程管理整合進(jìn)PHP包中。必須將它patch到你的PHP源代碼中,在編譯安裝PHP后才可以使用。
新版PHP已經(jīng)集成php-fpm了,不再是第三方的包了,推薦使用。PHP-FPM提供了更好的PHP進(jìn)程管理方式,可以有效控制內(nèi)存和進(jìn)程、可以平滑重載PHP配置,比spawn-fcgi具有更多優(yōu)點,所以被PHP官方收錄了。在./configure的時候帶 �enable-fpm參數(shù)即可開啟PHP-FPM。
安裝前準(zhǔn)備
centos下執(zhí)行
yum?-y?install?gcc?automake?autoconf?libtool?make
yum?-y?install?gcc?gcc-c++?glibc
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
新版php-fpm安裝(推薦安裝方式)
wget
tar?zvxf?php-5.4.7.tar.gz
cd?php-5.4.7
./configure?--prefix=/usr/local/php??--enable-fpm?--with-mcrypt?\--enable-mbstring?--disable-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-mysql?--with-mysqli?\--with-gd?--with-jpeg-dir
make?all?install
下面是對php-fpm運行用戶進(jìn)行設(shè)置
cd?/usr/local/php
cp?etc/php-fpm.conf.default?etc/php-fpm.conf
vi?etc/php-fpm.conf
修改
user = www-data
group = www-data
如果www-data用戶不存在,那么先添加www-data用戶
groupadd www-data
useradd -g www-data www-data
二、編譯安裝nginx
2.安裝PCRE庫
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/?下載最新的 PCRE 源碼包,使用下面命令下載編譯和安裝 PCRE 包:
cd?/usr/local/src
wget?ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz
tar?-zxvf?pcre-8.34.tar.gz
cd?pcre-8.34
./configure
make
make?install
3.安裝zlib庫
http://zlib.net/zlib-1.2.8.tar.gz?下載最新的 zlib 源碼包,使用下面命令下載編譯和安裝 zlib包:
cd?/usr/local/src
wget?http://zlib.net/zlib-1.2.8.tar.gz
tar?-zxvf?zlib-1.2.8.tar.gz
cd?zlib-1.2.8
./configure
make
make?install
5.安裝nginx
Nginx 一般有兩個版本,分別是穩(wěn)定版和開發(fā)版,您可以根據(jù)您的目的來選擇這兩個版本的其中一個,下面是把 Nginx 安裝到 /usr/local/nginx 目錄下的詳細(xì)步驟:
cd?/usr/local/src
wget?http://nginx.org/download/nginx-1.4.2.tar.gz
tar?-zxvf?nginx-1.4.2.tar.gz
cd?nginx-1.4.2
./configure?--sbin-path=/usr/local/nginx/nginx?\--conf-path=/usr/local/nginx/nginx.conf?\-?\--with-http_ssl_module?\--with-pcre=/usr/local/src/pcre-8.34?\--with-zlib=/usr/local/src/zlib-1.2.8?\--with-openssl=/usr/local/src/openssl-1.0.1c
make
make?install
--with-pcre=/usr/local/src/pcre-8.34 指的是pcre-8.34 的源碼路徑。--with-zlib=/usr/local/src/zlib-1.2.7 指的是zlib-1.2.7 的源碼路徑。
三、修改nginx配置文件以支持php-fpm
nginx安裝完成后,修改nginx配置文件為,nginx.conf(目錄為/usr/local/nginx)
其中server段增加如下配置,注意標(biāo)紅內(nèi)容配置,否則會出現(xiàn)No input file specified.錯誤
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
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;
}
默認(rèn)網(wǎng)站根目錄為/usr/local/nginx/html,要將它改成/homw/www
vi /usr/local/nginx/conf/nginx.conf
將其中的
location / {
root ? html;
index ?index.php index.html index.htm;
}
改為
location / {
root ? /home/www;
index ?index.php index.html index.htm;
}
然后再將
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;
}
改為
location ~ \.php$ {
root ? ? ? ? ? /home/www;
fastcgi_pass ? 127.0.0.1:9000;
fastcgi_index ?index.php;
fastcgi_param ?SCRIPT_FILENAME ?$document_root$fastcgi_script_name;
include ? ? ? ?fastcgi_params;
}
然后重啟nginx
四、創(chuàng)建測試php文件
創(chuàng)建php文件
在/usr/local/nginx/html下創(chuàng)建index.php文件,輸入如下內(nèi)容
echo?phpinfo();
?>
五、啟動服務(wù)
啟動php-fpm和nginx
/usr/local/php/sbin/php-fpm
/usr/local/nginx/nginx
六.?php-fpm 5.4.7 如何關(guān)閉 重啟?
php 5.4.7 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信號控制:
6.?mcrypt.h not found. Please reinstall libmcrypt
apt-get install libmcrypt-dev
或者
cd /usr/local/src
wget http://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
tar -zxvf libmcrypt-2.5.8.tar.gz
cd /usr/local/src/libmcrypt-2.5.8
./configure --prefix=/usr/local
make
make install
7.?php-fpm 5.4.7 如何關(guān)閉 重啟?
php 5.4.7 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信號控制:
master進(jìn)程可以理解以下信號
INT, TERM 立刻終止
QUIT 平滑終止
USR1 重新打開日志文件
USR2 平滑重載所有worker進(jìn)程并重新載入配置和二進(jìn)制模塊
示例:
php-fpm 關(guān)閉:
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重啟:
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
總結(jié)
以上是生活随笔為你收集整理的lnmp php fpm 默认,LNMP(PHP-FPM)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: quad8是matlab中调用那个,Ma
- 下一篇: php自定义模块,简单介绍OpenCar