您的位置:

nginxphp5.2,ceph nginx

本文目录一览:

windows nginx 安装php什么版本

1、下载如下这几个版本都可以

PHP5.2.13 官方最终版

PHP5.3.29 目前使用最多的PHP版本

PHP 5.6 (5.6.4RC1) 官方最新的稳定版

RunHiddenConsole.exe 用来隐藏Nginx和PHP的小工具

2、Nginx for windowsz最新稳定版nginx-1.6.2

3、mysql选择5.5的版本

如何架设Nginx+Php Web服务器

1、首先需要准备的应用程序包。nginx:nginx/Windows-1.0.4php:php-5.2.16-nts-Win32-VC6-x86.zip(nginx下php是以FastCGI的方式运行,所以咱们下载非线程安全也就是nts的php包)(还会用到)RunHiddenConsole:RunHiddenConsole.zip2、安装与配置。 1)php的安装与配置。直接解压下载好的php包,到D盘wnmp目录(D:\wnmp),这里把解压出来的文件夹重命名成php5。进入文件夹修改php.ini-recommended文件为php.ini,并用Editplus或者Notepad++打开来。找到extension_dir="./ext"更改为extension_dir="D:/wnmp/php5/ext"往下看,再找到;extension=php_mysql.dll;extension=php_mysqli.dll前面指定了php的ext路径后,只要把需要的扩展包前面所对应的“;”去掉,就可以了。这里打开php_mysql.dll和php_mysqli.dll,让php支持mysql。当然不要忘掉很重要的一步就是,把php5目录下的libmysql.dll文件复制到C:\Windows目录下,也可以在系统变量里面指定路径,当然这里咱选择了更为方便的方法。到这里,php已经可以支持mysql了。接下来来配置php,让php能够与nginx结合。找到;cgi.fix_pathinfo=1去掉这里的封号。cgi.fix_pathinfo=1这一步非常重要,这里是php的CGI的设置。 2)nginx的安装与配置。把下载好的nginx-1.0.4的包同样解压到D盘的wnmp目录下,并重命名为nginx。接下来,咱们来配置nginx,让它能够和php协同工作。进入nginx的conf目录,打开nginx的配置文件nginx.conf,找到location/{roothtml;#这里是站点的根目录indexindex.htmlindex.htm;}将roothtml;改为rootD:/wnmp/www;再往下,找到复制代码#passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000##location~\.php${#roothtml;#fastcgi_pass127.0.0.1:9000;#fastcgi_indexindex.php;#fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;#includefastcgi_params;#}复制代码先将前面的“#”去掉,同样将roothtml;改为rootD:/wnmp/www;。再把标记为红色的/scripts改为“$document_root”,这里的“$document_root”就是指前面“root”所指的站点路径,这是改完后的:复制代码#passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000#location~\.php${rootD:/wnmp/www;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;}复制代码保存配置文件,就可以了。nginx+php的环境就初步配置好了,来跑跑看。咱们可以输入命令来启动php,并手动启动nginx,当然也可以利用脚本来实现。首先把下载好的RunHiddenConsole.zip包解压到nginx目录内,RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭。然后来创建脚本,命名为“start_nginx.bat”,咱们在Notepad++里来编辑它复制代码@echooffREMWindows下无效REMsetPHP_FCGI_CHILDREN=5REM每个进程处理的最大请求数,或设置为Windows环境变量setPHP_FCGI_MAX_REQUESTS=1000echoStartingPHPFastCGIRunHiddenConsoleD:/wnmp/php5/php-cgi.exe-b127.0.0.1:9000-cD:/wnmp/php5/php.iniechoStartingnginxRunHiddenConsoleD:/wnmp/nginx/nginx.exe-pD:/wnmp/nginx复制代码再另外创建一个名为stop_nginx.bat的脚本用来关闭nginx@echooffechoStoppingnginxtaskkill/F/IMnginx.exenulechoStoppingPHPFastCGItaskkill/F/IMphp-cgi.exenulexit做好后,是这样的这样,咱们的服务脚本也都创建完毕了。双击start_nginx.bat看看进程管理器是不是有两个nginx.exe的进程和一个php-cgi.exe的进程呢?这样nginx服务就启动了,而且php也以fastCGI的方式运行了。到站点目录下,新建一个phpinfo.php的文件,在里面编辑保存后,打开浏览器输入“phpinfo.php”,如果看到就说明,nginx+php的环境已经配置好了

nginx和php 怎么安装mysqli扩展

在 centos 下编译安装 php 时,有时候经常会忘了某些扩展,比如 pdo,mysqli,但是到扩展目录下,我们又找不到相应的 扩展文件,(.so 文件) ,这样的情况下只能 编译安装该模块,生成对应的 so 文件,然后在 php.ini 中添加相应的 扩展记录,重启 php就可以了,我们以安装 mysqli 为例。

首先进入 php 源码包 如果 找不到可以可下载一个 地址在这里:解压

tar xvzf php-5.2.17.tar.gz

cdphp-5.2.17/ext/mysqli/

然后运行 php 安装目录下的 phpize

/usr/local/nginx_php-5.2.17/bin/phpize

(根据自己的 php 安装目录来查找,不一定是这个目录,如果找不到,可以根据 phpinfo() 来查看)然后编译安装 mysqli 扩展

#./configure --prefix=/usr/local/mysqli --with-php-config=/usr/local/nginx_php-5.2.17/bin/php-config --with-mysqli=/usr/local/mysql/mysql_config安装

make make install

然后在 php 的扩展目录下已经生成了 mysqli.so 文件打开 php.ini 文件,看是否有如下内容

extension_dir = "/usr/local/nginx_php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613/"如果没有就添加上

再添加一条:

extension=mysqli.so

保存。

重启 php。可以看到 mysqli 已经安装完成了。

Linux系统中设置多版本PHP共存配合Nginx服务器使用

应用环境

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

wget

-c

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

如何编译windows nginx php

作了N多次php环境的搭建,网上的方法还真是多,但是实际操作起来总有一些大大小小的出入,很多错误经常让我纠结不已.久病成医,渐渐地我自己就总结出了一些经验。自我感觉良好。

这种方法并非以前所流行的apache 加 php_module 的方式运行,我是采用nginx 作为web服务器,以fastcgi的方式运行php。

linux下编译:

nginx我还是习惯选择8.54的版本,它的编译依赖以下几个软件包,解压这些源码包,在configure中设置好这些源码的路径,nginx在编译的时候会自己将他们编译进去的:

 pcre: 主要用于rewrite等模块

 zlib: 这个不用说了

 openssl: 如果你还知道https这个东西,那么你懂的~~~(当然你可以不需要这个功能)

 md5 /sha1: 这两者都是用于生成信息摘要的希哈算法,这俩个东西不是必须的,但是我发现如果不选择其中一个那么openssl是不会成功地编译进nginx的

下面是我自己写的一个安装脚本,有temp-path字样的编译选项所设置都是nginx在运行时产生的临时文件的路径,pid-path,lock-path也是临时文件路径,log-path是日志文件路径,我因为自己机子上一些权限的问题所以要设置一下.一般情况下其实这些是不必要的,nginx默认会统统把生成的这些文件放在自己的安装目录下.

tmp=/tmp/nginx

log=/home/jsckdao/log

pcre=~/Downloads/pcre-8.02

zlib=~/Downloads/zlib-1.2.5-src

openssl=~/Downloads/openssl-0.9.8q

md5=~/Downloads/md5-1.3.0

./configure --prefix=/usr/local/nginx \

--http-proxy-temp-path=${tmp}/nginx-proxy.tmp \

--http-fastcgi-temp-path=${tmp}/nginx-fcgi.tmp \

--http-uwsgi-temp-path=${tmp}/nginx-uwsgi.tmp \

--http-scgi-temp-path=${tmp}/nginx-scgi.tmp \

--http-client-body-temp-path=${tmp}/nginx-client.tmp \

--pid-path=${tmp}/nginx.pid \

--lock-path=${tmp}/nginx.lock \

--http-log-path=${log}/http.log \

--error-log-path=${log}/http-error.log \

--with-pcre=$pcre \ #pcre 源码包的路径

--with-zlib=$zlib \ #zlib 源码包的路径

--with-http_ssl_module \ #起用ssl支持

--with-openssl=$openssl #openssl 源码包路径

make

make install

php(5.2)的编译可以复杂点,也可以简单点,因为我们编译php时主要目的是编译它的脚本引擎和一些核心库,很多外围的东西不一定非要在编译php的时候加进去,可以在需要的时候将它们编译成扩展库再修改配置文件来加载它们。

我的编译代码如下:

./configure --prefix=/usr/local/php \

--with-mysql=/usr/local/mysql \#设置mysql的安装路径

--enable-fastcgi \ #开启fastcgi支持

--enable-debug #支持调试

make

make install

其实关于mysql的那一句都是可以不要的,只是我懒得再编译一次mysql扩展,所以就这样把它直接编译进php了,这样做的前提是你必须先安装mysql。

令外还有一些注意事项:编译php时必须确保系统中拥有libxml2与libxml2-dev这俩个软件包,因为php默认会将xml的功能编译进去,所以xml的支持是必不可少的。还有一个就是autoconf这条命令了,在编译扩展的时候,phpize会调用系统中的这个命令来生成扩展包的configure文件,没有它你就不能作扩展了,这一点也是要记住的,毕竟linux下的php不像windows版那样事先把所有的扩展都编译好了。

至于window下nginx,php的安装就没有什么难度了,下个zip包,解压就能用,只要稍微配置就可以了.

配置:

如果只是想让php能运行的话那么直接输入命令:

./php-cgi -b 3344

这样就开启了php的fastcgi进程了,-b参数是绑定该进程的侦听端口,随便找个没用的端口填就可以了,这里绑定的是3344.

然后在nginx的配置文件中加上这么几行:

location ~ \.php$ {

root  /home/jsckdao/www; #这是你网站的根目录

fastcgi_pass127.0.0.1:3344; #这里指定了fastcgi进程侦听的端口,nginx就是通过这里与php交互的

fastcgi_index  index.php;

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

include fastcgi_params;

}

如果要改nginx的侦听端口的话找到"listen"这么一项,改就是了.运行nginx,在/home/jsckdao/www目录中写一个测试文件test.php:

?php

phpinfo();

?

访问,如果显示了php所以的配置信息,那么就基本没什么问题,已经可以用这个环境写些php代码了.

至于php的调试器我选择xdebug,不为什么,习惯所致。加载xdebug时,在配置文件中的写法根据系统的不同好像也有点不同。linux下是:zend_extension_debug=path,window中加载的dll有两种,一种文件名会带有ts的后缀,这种要这要样写:zend_extension_ts=path另外一种就这样:zend_extension=path,path一定要写绝对路径。虽然ts为何意我也不是很清楚,但是这些设置是一定不可以搞错的。

设置好后重新运行php-cgi,然后重新访问test.php,如果有xdebug的那一块出现了,那么就成功了.

当然这是一个很简单的配置,只能让你运行php,要想真正做成你需要的开发环境,还需要你根据自己的需要修改php和nginx的配置文件,这些配置内容很多,我自己也在学习中,就不好多讲了.

另外有一点需要注意,php的配置文件在它的源码包中有两个:php.ini-dist和php.ini-recommended,分别是针对生成环境和开发环境的配置.你需要把其中一个改名为php.ini.重启后查看phpinfo()的页面,靠上的地方有一项"Loaded Configuration File",它的值如果就是你的php.ini的路径,那么就没问题了,如果不是话,就看看上面一项"Configuration File (php.ini) Path",你把你的php.ini文件移到这个目录下在重启就可以了.因为php默认会在这个路径下寻找php.ini的.当然你也可以在运行php-cgi的时候设置你的php.ini路径,比如这样:

php-cgi -b 3344 -c /home/jsckdao/php.ini

这样就是把/home/jsckdao/php.ini这个文件作为配置文件了.

按钮!!