`
hanqunfeng
  • 浏览: 1542100 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux下nginx连接PHP5.5

 
阅读更多

之前介绍的

linux下PHP5.5的安装【oci8,pdo-oci,memcache,Zend OPCache扩展】 

所有工具都是自己下载安装,虽然可以使用最新版,但是比较麻烦,还是推荐使用yum安装吧。

 

一。安装php5.5

1.安装依赖包

yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel libaio -y

 

2.安装php5.5

tar -zxvf php-5.5.6.tar.gz

cd php-5.5.6

 

cat config.nice
'./configure' \
'--prefix=/usr/local/php5' \
'--with-config-file-path=/usr/local/php5/etc' \
'--with-bz2' \
'--with-curl' \
'--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' \
'--with-mysqli=mysqlnd' \
'--with-mysql=mysqlnd' \
'--enable-dom' \
'--enable-xml' \
'--enable-fpm' \
'--with-libdir=lib64' \
'--enable-pdo' \
'--with-oci8=instantclient,/usr/lib/oracle/11.2/client/lib' \
'--with-pdo-oci=instantclient,/usr,10.2.0.1' \
"$@"

 编译过程有可能报如下错误:

checking for known struct flock definition… configure: error: Don’t know how to define struct flock on this system, set –enable-opcache=no

解决方法:

yum groupinstall "Development tools" 

 

说明:以上配置根据自己需要选择就行,如果使用nginx+php,就必须使用php-fpm。

make

make install

 

3.配置php5.5

cp php-5.5.6/php.ini-production /usr/local/php5/etc/php.ini  #php配置文件

cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf #php-fpm配置文件

 

4.启动php-fpm

/usr/local/php5/sbin/php-fpm

查看是否启动成功:

netstat -lnt | grep 9000

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN

或者使用如下命令,查看是否9000端口被php-fpm占用:

netstat -tunpl | grep 9000

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      2124/php-fpm 

 

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

打开pid = run/php-fpm.pid前的注释,这样fpm的进程就会被写入这个文件:/usr/local/php5/var/run/php-fpm.pid

 

php-fpm 关闭:

kill -INT `cat /usr/local/php5/var/run/php-fpm.pid`

或者:pkill php-fpm

 

php-fpm 重启:

kill -USR2 `cat /usr/local/php5/var/run/php-fpm.pid`

 

修改了php.ini后要记得重启php-fpm。

 

二。nginx配置

1.http下增加如下内容:

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;    
fastcgi_connect_timeout 300;    
fastcgi_send_timeout 300;    
fastcgi_read_timeout 300;    
fastcgi_buffer_size 64k;    
fastcgi_buffers 4 64k;    
fastcgi_busy_buffers_size 128k;    
fastcgi_temp_file_write_size 128k;    
fastcgi_cache TEST;    
fastcgi_cache_valid 200 302 1h;    
fastcgi_cache_valid 301 1d;    
fastcgi_cache_valid any 1m;  

 下面是对上述代码的含义进行介绍。

第一行代码是为FastCGI缓存指定一个文件路径、目录结构等级、关键字区域存储时间和非活动删除时间。

fastcgi_connect_timeout:指定连接到后端FastCGI的超时时间。

fastcgi_send_timeout:指定向FastCGI传送请求的超时时间,这个值是已经完成两次握手后向FastCGI传送请求的超时时间。

fastcgi_read_timeout:指定接收FastCGI应答的超时时间,这个值是已经完成两次握手后接收FastCGI应答的超时时间。

fastcgi_buffer_size:用于指定读取FastCGI应答第一部分需要用多大的缓冲区,这个值表示将使用1个64KB的缓冲区读取应答的第一部分(应答头),可以设置为fastcgi_buffers选项指定的缓冲区大小。

fastcgi_buffers:指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求。如果一个PHP脚本所产生的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓存;如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于硬盘。一般这个值应该为站点中PHP脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“16 16k”、“4 64k”等。

fastcgi_busy_buffers_size:的默认值是fastcgi_buffers的两倍。

fastcgi_temp_file_write_size:表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍。

fastcgi_cache:表示开启FastCGI缓存并为其指定一个名称。开启缓存非常有用,可以有效降低CPU的负载,并且防止502错误的发生,但是开启缓存也会引起很多问题,要视具体情况而定。

fastcgi_cache_valid:fastcgi用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一个小时,将301应答缓存1天,其他应答均缓存1分钟。

 

2.server下配置如下内容:

        location ~* \.(php[3-9]?|phtm[l]?)(\/.*)*$ {
                fastcgi_index index.php;
                fastcgi_pass 127.0.0.1:9000;
                include fastcgi_params;
                set $path_info "";
                set $real_script_name $fastcgi_script_name;
                if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                        set $real_script_name $1;
                        set $path_info $2;
                }
                fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
                fastcgi_param SCRIPT_NAME $real_script_name;
                fastcgi_param PATH_INFO $path_info;
        }

 

这里的配置方式可以支持CI、ThinkPHP等基于PATH_INFO的请求方式。

 

还有,如果希望隐藏index.php,则在上面的配置下进行如下配置:

 

location /ICBBS {       
                if (!-e $request_filename){
                rewrite (.*) /ICBBS/index.php/$1;       
                }
        }

 

 说明:ICBBS就是你的项目名称,这里将所有以ICBBS请求的不存在路径跳转到/ICBBS/index.php。

 

 

 

分享到:
评论

相关推荐

    一键搭建lnmp(nginx 1.13.6+mysql5.5)

    lnmp是一种流行的Web服务器解决方案,组成部分包括Linux操作系统、Nginx Web服务器、Mysql数据库和PHP编程语言。本文档将指导您一步步搭建lnmp环境,包括安装Nginx 1.13.6、Mysql 5.5和PHP 5.3。 Nginx 1.13.6安装 ...

    linux nginx下配置独立的svn

    ### Linux Nginx环境下配置独立SVN服务器 #### 一、引言 在现代软件开发过程中,版本控制系统的使用越来越普遍。Subversion(SVN)作为一款广泛应用的集中式版本控制系统,对于团队协作开发有着不可替代的作用。...

    一键lnmp(nginx 1.13+mysql5.5+php5.3)

    一键LNMP环境搭建工具是为简化Linux系统中Nginx、MySQL和PHP的安装过程而设计的实用程序。这个特定的版本组合——Nginx 1.13、MySQL 5.5和PHP 5.3——是针对某个时期的流行配置,旨在提供一个高效且稳定的Web服务器...

    一键lnmp(mysql分离)(nginx 1.13+mysql5.5+php5.3)-详细笔记文档总结-带安装包

    在这种情况下,Nginx负责处理客户端的HTTP请求,通过fastcgi_pass指令将PHP请求传递给PHP-FPM,而数据库操作则通过网络连接到单独的MySQL服务器。这种分离模式需要配置Nginx的proxy_pass或fastcgi_pass指令,以及...

    mysql5.5+php+nginx脚本自动化部署

    在“mysql5.5+php+nginx脚本自动化部署”场景中,这个过程旨在通过脚本简化在CentOS、Ubuntu等Linux操作系统上安装和配置这些组件的过程。以下是该自动化部署可能涉及的步骤和知识点: 1. **环境准备**:首先,确保...

    memcache 扩展,php5.5 32,64 位,以及其他版本下载地址

    在PHP5.5版本中,对于32位和64位操作系统,需要安装对应的memcache扩展才能使用。这个扩展通常以`.dll`文件形式提供,例如 `memcache.dll`,这是Windows环境下PHP的动态链接库文件。在Linux或Mac等其他操作系统上,...

    php-5.5.18.tar.gz

    PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适合于Web开发,能够嵌入到HTML...然而,值得注意的是,由于5.5.x系列已不再维护,对于新项目,推荐使用更高版本的PHP,以获得持续的安全更新和支持。

    PHP5.5安装PHPRedis扩展及连接测试方法

    PHP5.5安装PHPRedis扩展及连接测试方法 本文针对PHP5.5版本的用户,详细介绍了如何安装PHPRedis扩展,并进行连接测试。PHPRedis是一个PHP的Redis客户端扩展,它提供的函数与Redis命令基本一致,大大降低了学习成本...

    php-5.5.4 linux 安装压缩包

    这个压缩包“php-5.5.4”提供了PHP 5.5.4版本的源代码,适用于那些希望在Linux环境下手动编译安装PHP的用户。下面我们将详细探讨PHP 5.5.4版本的主要特性、安装步骤以及相关的注意事项。 PHP...

    DebianLNMP一键安装包Debian6系统下的Nginx/PHP5.3/MySQL最快最新

    在Debian6系统下安装LNMP(Debian6 + Nginx1.2.x + PHP5.3.x + MySQL5.5.x 最省资源一键安装包)只需要上面两条命令。 DebianLNMP是一个用Linux Shell编写的可以为Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、...

    Linux系统下为Nginx安装多版本PHP

    注意假如php5.5是主版本已经安装在/usr/local/php目录下,那么再安装其他版本的php再指定不同安装目录即可。 安装PHP # wget http://cn2.php.net/get/php-5.4.44.tar.gz/from/this/mirror # tar zxvf ...

    linux(centos5.5)/windows下nginx开启phpinfo模式功能的配置方法分享

    在Linux系统(以CentOS 5.5为例)下,为了启用phpinfo模式,需要对nginx的配置文件nginx.conf进行编辑。phpinfo模式是一种用于测试和调试PHP环境的工具,它可以显示关于PHP运行环境的大量信息。通过配置文件中的特定...

    LINUX搭建PHP5.4+Nginx1.3.9+Mysql5.5.21

    本文详细介绍了如何在CentOS 6.3环境下搭建PHP5.4+Nginx1.3.9+Mysql5.5.21的Web服务器环境。这个环境能够支持PHP应用的运行,同时利用Nginx作为高性能的Web服务器,以及MySQL作为数据库存储。需要注意的是,由于这些...

    在linux centos下安装php环境,卸载php环境详细步骤.zip

    然后,添加EPEL(Extra Packages for Enterprise Linux)存储库,因为PHP 5.5不在默认的CentOS仓库中,执行`sudo yum install epel-release`。接着,安装`php55w`及相关组件,如CLI(命令行接口)、common、gd(图形...

    DebianLNMP一键安装包Debian6系统下的Nginx PHP5.3 MySQL最快最新

    在Debian6系统下安装LNMP(Debian6 + Nginx1.2.x + PHP5.3.x + MySQL5.5.x 最省资源一键安装包)只需要上面两条命令。 DebianLNMP是一个用Linux Shell编写的可以为Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、...

    linux上源码安装apache2.4 nginx1.2 php5.3.10 mysql5.3

    ### Linux环境下源码安装Apache 2.4、Nginx 1.20、PHP 5.3.10及MySQL 5.5 #### 一、准备工作:基础软件安装 在Ubuntu系统中,需要先确保一些基础工具的安装,避免后续编译过程中出现问题。 ```bash sudo apt-get ...

    MagickWand For PHP 5.5/5.6/7.0/7.1/7.2/7.3 (Win32/x64)

    MagickWand For PHP。支持PHP版本5.5.x / 5.6.x / 7.0.x / 7.1.x / 7.2.x / 7.3.x Thread Safe, x86 / x64 添加 extension=php_magickwand.dll。采用 ImageMagick 版本:6.9.10-59 Q32。暂不支持 PHP 7.4

    Linux 下安装 php 5.1.6 及其相关 rpm包合集

    本教程将详述如何在Linux环境下,特别是CentOS 5.5系统上安装PHP 5.1.6及其相关RPM包的合集。 首先,了解RPM(Red Hat Package Manager)是Linux发行版中用于软件包管理的一种工具,它能够方便地安装、升级、查询和...

Global site tag (gtag.js) - Google Analytics