如何在linux下配置nginx支持php

如何在linux下配置nginx支持php,第1张

需要。

如果是nginx+php配置,也可以通过查找php执行路径

ps

aux

|

grep

php

如,路径为

/usr/local/nginx/sbin/php-fpm

然后执行以下命令

/usr/local/nginx/sbin/php-fpm

-i

|

grep

“Loaded

Configuration

File”

即可看到php加载的配置文件

应用环境

LNMP的环境,当前PHP版本5.3.8,遇到一个应用需求只支持PHP

5.2.x,又希望保持现有应用还是用PHP

5.3.8。也就是说需要两个版本的PHP同时存在,供nginx根据需要调用不同版本。

思路

Nginx是通过PHP-FastCGI与PHP交互的。而PHP-FastCGI运行后会通过文件、或本地端口两种方式进行监听,在Nginx中配置相应的FastCGI监听端口或文件即实现Nginx请求对PHP的解释。

既然PHP-FastCGI是监听端口和文件的,那就可以让不同版本的PHP-FastCGI同时运行,监听不同的端口或文件,Nginx中根据需求配置调用不同的PHP-FastCGI端口或文件,即可实现不同版本PHP共存了。

配置记录

下面记录简单的配置流程,基于已经安装了lnmp的debian环境。当前版本的PHP是5.3.8,位于/usr/local/php。

1.下载PHP-5.2.14及相关的FPM、autoconf组件:

mkdir

~/php5.2

cd

~/php5.2

wget

-c

http://museum.php.net/php5/php-5.2.14.tar.gz

wget

-c

http://php-fpm.org/downloads/php-5.2.14-fpm-0.5.14.diff.gz

2.解压PHP-5.2.14,并打上PHP-FPM的补丁:

tar

zxvf

php-5.2.14.tar.gz

gzip

-cd

php-5.2.14-fpm-0.5.14.diff.gz

|

patch

-d

php-5.2.14

-p1

3.如果你已经通过lnmp安装,应该已经安装好了autoconf,如果没有,请自行下载并编译autoconf-2.13,然后设置autoconf环境变量:

export

PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf¬

export

PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader

3.编译安装PHP-5.2.14在新的路径(/usr/local/php-5.2.14)下,注意–prefix、–with-config-file-path的路径,并且打开fastcgi和fpm选项:

cd

php-5.2.14/

./buildconf

--force

./configure

--prefix=/usr/local/php-5.2.14

--with-config-file-path=/usr/local/php-5.2.14/etc

--with-mysql=/usr/local/mysql

--with-mysqli=/usr/local/mysql/bin/mysql_config

--enable-fastcgi

--enable-fpm

make

ZEND_EXTRA_LIBS='-liconv'

make

install

4.设置/usr/local/php-5.2.14/etc/php-fpm.conf,监听端口:

<value

name="listen_address">127.0.0.1:9001</value>

或者监听文件:

<value

name="listen_address">/path/to/unix/socket</value>

其他参数根据服务器环境和需求自行定制。

5.启动php-fpm,以后可以通过php-fpm进行管理:

/usr/local/php-5.2.14/sbin/php-fpm

start

字php5.3.3后,php已经将php-fpm继承到php中,而且内置的php-fpm默认不支持(start|stop|reload)的平滑启动参数,需要使用官方源代码中提供的启动脚本来控制:

cp

-f

(php

-5.3.x-source-dir)/sapi/fpm/init.d.php-fpm

/etc/init.d/php-fpm

chmod

755

/etc/init.d/php-fpm

/etc/init.d/php-fpm

start

php-fpm支持的 *** 作:

start,启动PHP的FastCGI进程。

stop,强制终止PHP的FastCGI进程。

quit,平滑终止PHP的FastCGI进程。

restart,

重启PHP的FastCGI进程。

reload,

重新加载PHP的php.ini。

logrotate,

重新启用log文件。

5.3.3的php-fpm脚本支持的 *** 作:start|stop|force-quit|restart|reload|status

6.配置好PHP-5.2.14的php.ini,重新加载生效:

vi

/usr/local/php-5.2.14/etc/php.ini

/usr/local/php-5.2.14/sbin/php-fpm

reload

7.修改nginx配置,对需要的服务配置使用PHP-5.2.14:

location

~

.*.(php|php5)?$

{

fastcgi_pass

127.0.0.1:9001

fastcgi_index

index.php

include

fcgi.conf

}

8.记录一下自己编译php5.5.10使用的配置

./configure

--prefix=/usr/local/php-5.5.10

--with-config-file-path=/usr/local/php-5.5.10/etc

--with-mysql=mysqlnd

--with-mysqli=mysqlnd

--with-bz2

--with-curl=/usr/bin

--enable-ftp

--enable-sockets

--disable-ipv6

--with-gd

--with-jpeg-dir=/usr/local

--with-png-dir=/usr/local

--with-freetype-dir=/usr/local

--enable-gd-native-ttf

--with-iconv-dir=/usr/local

--enable-mbstring

--enable-calendar

--with-gettext

--with-libxml-dir=/usr/local

--with-zlib

--with-pdo-mysql=mysqlnd

--enable-dom

--enable-xml

--enable-fpm

--with-libdir=lib64

--with-mcrypt=/usr/bin

--enable-zip

--enable-soap

--enable-mbstring

--with-gd

--with-openssl

--enable-pcntl

--with-xmlrpc

--enable-opcache

LNMP环境的搭建配置(CentOS6.2+nginx1.1.15+mysql5.5+php5.3.10)

一、安装前的准备

1、下载所需要的安装包

Nginx 下载:http://nginx.org/download/nginx-1.1.15.tar.gz

Mysql下载:http://mysql.cs.pu.edu.tw/Downloads/MySQL-5.5/mysql-5.5.21.tar.gz

php下载:http://cn.php.net/distributions/php-5.3.10.tar.gz

2、首先对环境需要的库和编译工具进行安装

yum -y install gcc

gcc-c++ autoconf 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

openldap openldap-devel nss_ldap openldap-clients openldap-servers

二、安装过程

1、编译安装Mysql

1) 创建mysql安装目录及数据存放目录 

# mkdir -p/usr/local/mysql/

# mkdir -p /data/mysql/

2)创建用户和用户组与赋予数据存放目录权限

# groupadd mysql

# useradd mysql -M -s/sbin/nologin

# chown mysql.mysql -R /data/mysql/

3)安装必要的组件

# yum -y install cmake

# yum -y installncurses-devel

4)开始编译安装Mysql

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk

-DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1

-DMYSQL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306

# make

# make install

5)初始化数据库

# cd /usr/local/mysql

#

scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql

--datadir=/data/mysql/

6)配置环境

# cpsupport-files/my-medium.cnf /etc/my.cnf

# cpsupport-files/mysql.server /etc/init.d/mysql

# chmod 755/etc/init.d/mysql

# chkconfig mysql on

# exportPATH=/usr/local/mysql/bin:$PATH

7)启动并设置初始密码

# /etc/init.d/mysql start

# mysqladmin -urootpassword '123456'

进行再修改密码的语句

>UPDATE mysql.userSET Password = PASSWORD(‘newpwd’) WHERE User = ‘root’(生新设置密码)

>flush privileges(刷新权限)

2、 编译安装nginx

1) 添加一个不能登录并且没有主目录的用户

# useradd www -M -s /sbin/nologin

2) 下载必要的组件并安装

# wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.21/pcre-8.21.zip

# unzip pcre-8.21.zip

# cd pcre-8.21

# ./configure

# make &&makeinstall

3)下载编译安装nginx

# wgethttp://nginx.org/download/nginx-1.1.15.tar.gz

# tar zxvfnginx-1.1.15.tar.gz

# cd nginx-1.1.15

# ./configure

--prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module

--with-http_ssl_module

# make &&makeinstall

4)启动nginx

#/usr/local/nginx/sbin/nginx

启动后,在浏览器里输入IP,即可查看到:Welcome to nginx!的欢迎界面

# echo"/usr/local/nginx/sbin/nginx" >>/etc/rc.local

4 编译安装php

1) 下载安装必要的组件

wget -chttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

wget

http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz 或者wget

ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

wgethttp://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz

wgethttp://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz

wgethttp://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz

wgethttp://cn.php.net/distributions/php-5.3.10.tar.gz

wget http://pear.php.net/go-pear.phar

# yum -y installlibjpeg-devel libpng-devel

# tar zxvf libiconv-1.14.tar.gz

# cd libiconv-1.14

# ./configure

# make

# make install

# tar -zxvflibmcrypt-2.5.8.tar.gz

# cd libmcrypt-2.5.8

# ./configure

# make

# make install

# /sbin/ldconfig

# cd libltdl/

# ./configure--enable-ltdl-install

# make

# make install

# cd ../../

# tar zxvfmhash-0.9.9.9.tar.gz

# cd mhash-0.9.9.9

# ./configure

# make

# make install

# cd ../

ln -s/usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la

ln -s/usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so

ln -s/usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4

ln -s/usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8

ln -s/usr/local/lib/libmhash.a /usr/lib/libmhash.a

ln -s/usr/local/lib/libmhash.la /usr/lib/libmhash.la

ln -s/usr/local/lib/libmhash.so /usr/lib/libmhash.so

ln -s/usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2

ln -s /usr/local/lib/libmhash.so.2.0.1/usr/lib/libmhash.so.2.0.1

ln -s/usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

# tar zxvfmcrypt-2.6.8.tar.gz

# cd mcrypt-2.6.8

# /sbin/ldconfig

#./configure

# make

# make install

# cd ../

2)编译安装php

# tar zxvfphp-5.3.10.tar.gz

# cd php-5.3.10

# ./configure

--prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc

--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config

--with-iconv-dir=/usr/local/lib --with-freetype-dir --with-jpeg-dir

--with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml

--disable-rpath --enable-safe-mode

--enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization

--with-curl --with-curlwrappers --enable-mbregex --enable-fpm

--enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf

--with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap

--with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pear

--with-fpm-user=www --with-fpm-group=www

# makeZEND_EXTRA_LIBS='-liconv'

# make install

3) 复制和修改php配置文件

# cp php.ini-production

/usr/local/php/lib/php.ini 或是

/usr/local/lib/php.ini

# cp/usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

# /usr/local/php/bin/php--ini //测试ini文件是否加载

注:Nginx+PHP整合,在安装时必须启用–enable-fastcgi 和 –enable-fpm

5 环境测试,写一个phpinfo文件测试一下


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8903908.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-22
下一篇2023-04-22

发表评论

登录后才能评论

评论列表(0条)

    保存