`
m2000hsf
  • 浏览: 99152 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux nginx php 安装完整步骤

 
阅读更多
nginx使用fastcgi方式连接php,在linux下面编译安装时要编译php支持fastcgi方式,其他的一些东西,照着原来的方式装就可以了。

分为以下步骤:
引用
1、安装php的fastcgi版
2、使用spawn-fcgi启动php的fastcgi引擎
3、配置nginx连接php的fastcgi引擎


0、环境lib
基本环境要求(如无特殊要求可以使用系统自带)
引用
zlib-1.2.1.tar.gz
freetype-2.1.5.tar.gz
libpng-1.2.5.tar.gz
gd-2.0.28.tar.gz
jpegsrc.v7.tar.tar
pcre-x.x.tar.gz 正则表达式下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
nginx-x.x.xx.tar下载地址:http://www.nginx.net/
php-x.x.x.tar.bz2下载地址:http://www.php.net/releases/ #php-x.x.x-fpm-x.x.x.diff.gz
libiconv-1.13.1.tar.gz
MySQL-server-5.5.9-1.rhel5.i386.rpm
包的下载地址见 http://herry-he.iteye.com/blog/1057816

#php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi下载地址:http://php-fpm.anight.org/


注:PHP的版本要和fpm的版本一致

1、安装php的fastcgi版

A1、安装zlib
   1. tar xzvf zlib-x.x.x.tar.gz   
   2. cd zlib-x.x.x  
   3. ./configure  
   4. make make install  


A2、安装freetype
# tar xzvf freetype-x.x.x.tar.gz  
# cd freetype-x.x.x  
# ./configure --prefix=/usr/local/modules/freetype  
# make  
# make install 


A3、安装libpng
   1. tar xzvf libpng-x.x.x.tar.gz  
   2. cd libpng-x.x.x  
   3. cp scripts/makefile.std makefile  
   4. make test  
   5. make install  


A3、安装jpeg
   1. tar xzvf jpegsrc.v8b.tar.gz  
   2. cd jpeg-6b  
   3. ./configure --prefix=/usr/local/modules/jpeg8 --enable-shared --enable-static  
   4. make && make install   


A4、安装GD
   1. tar xzvf gd-x.x.xx.tar.gz  
   2. cd gd-x.x.xx  
   3. ./configure --prefix=/usr/local/modules/gd --with-jpeg=/usr/local/modules/jpeg8 --with-png --with-zlib --with-freetype=/usr/local/modules/freetype  
   4. make && make install  


A5、安装pcre
# tar -zxvf pcre-x.x.tar.gz  
# cd pcre-x.x  
# ./configure  
# make && make install 


A6、给php添加iconv模块
tar -zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/libiconv
make
make install


A7、安装Linux Nginx
   1. tar -zxvf nginx-x.x.xx.tar.gz   
   2. cd nginx-x.x.xx  
   3. ./configure --prefix=/usr/local/nginx  
   4. make && make install  


A8、安装Linux Mysql
   1. rpm -ivh MySQL-server-4.0.14-0.i386.rpm 


A9、安装PHP
   1. tar -jxvf php-x.x.x.tar.bz2  
   2. gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1 
   3  cd php-x.x.x
   4. ./configure --prefix=/usr/local/php --with-gd --with-jpeg-dir=/usr/local/modules/jpeg8 --with-zlib --with-png --with-freetype --enable-magic-quotes --enable-fastcgi --with-mysql=/local/server/mysql/ --enable-track-vars --enable-ftp --with-config-file-path=/usr/local/php/etc --with-zip --enable-force-cgi-redirect  --with-iconv=/usr/local/libiconv --enable-fpm
   5. make && make install  
   6. cp php.ini-recommended /usr/local/php/etc/php.ini  



启动nginx
1. /usr/local/nginx/sbin/nginx


停止nginx
  
1. kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`
 

重启nginx
  
1. kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
 

添加到自启动
  
1. echo "/usr/local/nginx/sbin/nginx">>/etc/rc.local  



2、使用spawn-fcgi启动php的fastcgi引擎
可以直接启动php-cgi -b 127.0.0.1:9000
编译完成后在/usr/local/php/bin/下面就会有php-cgi这个可执行程序,使用spawn-fcgi启动php的fastcgi引擎:   
1. /data/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nobody -f /usr/local/php/bin/php-cgi -C 20
 

意思是fastcgi使用本机ip和端口9000提供服务,权限nobody,启动20个进程。其中主要留意-C这个参数,一般20个进程足够用了,觉得不够亦可开大,在我的机器上每个php-cgi进程会占用7-8兆内存,开100个就是700-800兆。

spawn-fcgi这个程序在nginx里没有提供,可以在 http://www.sudone.com/download/spawn-fcgi

下面我们就可以使用 spawn-fcgi 来控制php-cgi的FastCGI进程了

/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi

参数含义如下

    -f <fcgiapp> 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
    -a <addr> 绑定到地址addr
    -p <port> 绑定到端口port
    -s <path> 绑定到unix socket的路径path
    -C <childs> 指定产生的FastCGI的进程数,默认为5(仅用于PHP)
    -P <path> 指定产生的进程的PID文件路径
    -u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等

下载到,一般放在nginx的sbin目录下,然后要给它加上可执行权限:
  
1. chmod +x /data/nginx/sbin/spawn-fcgi  


3、配置nginx连接php的fastcgi引擎

首先弄一份fastcgi-params配置,在nginx的conf目录下建一份文本文件,内容是:
  
#fastcgi-params 
fastcgi_param QUERY_STRING $query_string; 
fastcgi_param REQUEST_METHOD $request_method; 
fastcgi_param CONTENT_TYPE $content_type; 
fastcgi_param CONTENT_LENGTH $content_length; 
fastcgi_param SCRIPT_NAME $fastcgi_script_name; 
fastcgi_param REQUEST_URI $request_uri; 
fastcgi_param DOCUMENT_URI $document_uri; 
fastcgi_param DOCUMENT_ROOT $document_root; 
fastcgi_param SERVER_PROTOCOL $server_protocol; 
fastcgi_param GATEWAY_INTERFACE CGI/1.1; 
fastcgi_param SERVER_SOFTWARE nginx; 
fastcgi_param REMOTE_ADDR $remote_addr; 
fastcgi_param REMOTE_PORT $remote_port; 
fastcgi_param SERVER_ADDR $server_addr; 
fastcgi_param SERVER_PORT $server_port; 
fastcgi_param SERVER_NAME $server_name; 
# PHP only, required if PHP was built with --enable-force-cgi-redirect 
fastcgi_param REDIRECT_STATUS 200; 
#end


  
server { 
	include port.conf; 
	server_name www.sudone.com sudone.com;
	location / { 
		index index.html index.php; 
		root /data/sudone/php/; 
	} 
	location ~ .php$ { 
		fastcgi_pass 127.0.0.1:9000; 
		fastcgi_index index.php; 
		fastcgi_param SCRIPT_FILENAME /data/sudone/php$fastcgi_script_name; 
		include fastcgi_params; 
	} 
}


拿下来之后,有几个需要改的地方:
1、server_name
2、location /里面的root
3、location ~ .php$里面的fastcgi_param SCRIPT_FILENAME


其中fastcgi_param SCRIPT_FILENAME的参数中,$fastcgi_script_name前面是php文件的路径一般和root一样的,最后不用写/,貌似会有点问题,不要画蛇添足。
分享到:
评论

相关推荐

    基于linux下nginx的安装及项目部署

    通过以上步骤,我们可以成功地在Linux系统上安装Nginx并配置反向代理和负载均衡,实现高效且稳定的项目部署。在实际环境中,还需要根据具体需求调整Nginx配置,以满足安全、性能和扩展性的要求。

    linuxnginx安装配置文件支持php.pdf

    在Linux系统上安装Nginx和PHP通常涉及以下步骤: 1. 安装PCRE库(Perl Compatible Regular Expressions):PCRE是Nginx处理URL路由和正则表达式的关键依赖。你可以通过下载pcre源码,解压,配置并编译安装。 2. ...

    linux nginx依赖包

    为了在Linux系统上顺利安装和运行Nginx,需要依赖一些基础的软件包。这里提到的几个文件是Nginx构建过程中必不可少的组件: 1. **libtool-2.4.2.tar.gz**:Libtool是一个用于管理和构建共享库的工具,它可以帮助...

    linux离线环境下nginx安装包-附带所有依赖环境和安装教程

    本文将详细介绍如何使用提供的Linux离线环境下Nginx安装包,包括所有必要的依赖环境和安装教程。 Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,它以其高效稳定和低内存占用而闻名。在Linux系统中,Nginx...

    linux+nginx+php+mysql环境配置指南.pdf

    本指南将指导您如何安装和配置 Linux+Nginx+PHP+MySQL 环境,以便于构建一个功能完善的 Web 服务器。 安装 Red Hat Linux 在开始安装 Linux 之前,需要选择语言和键盘布局。然后,选择基本存储设备,重新初始化...

    Linux nginx mysql php LNMP环境搭建

    ### Linux Nginx MySQL PHP (LNMP) 环境搭建详细步骤 #### 一、基础知识简介 在深入了解LNMP的安装配置之前,我们先简要回顾一下这四个组件的基本概念: - **Linux**:一个开源的操作系统,是服务器领域的主流选择...

    linux安装nginx的rpm包

    通过以上步骤,你就可以成功地在Linux上安装并运行Nginx了。在实际使用中,你可能还需要配置SSL证书以支持HTTPS,或者与其他服务(如PHP-FPM、MySQL)集成以提供动态内容。保持对Nginx的监控和日志分析也是运维过程...

    Linux+Nginx+Mysql+Php安装教程

    ### Linux+Nginx+Mysql+Php安装教程 #### Linux 安装步骤详解 ##### 1. 开始安装过程 - **选择安装类型**:在安装初始界面选择 "Install or upgrade an existing system",系统将自动运行后续安装流程。 ##### 2...

    linux下安装nginx所需要的包

    在Linux环境下,安装Nginx是一项常见的任务,尤其对于那些需要构建高效Web服务器或作为反向代理服务的用户来说。Nginx以其高性能、低内存占用和强大的负载均衡能力而闻名。在这个过程中,我们通常会从官方网站下载...

    linux下安装Nginx以及配置文件详解

    ### Linux 下 Nginx 的安装与配置详解 #### 一、Nginx 概述 Nginx(发音为 "engine X")是一款开源的 Web 服务器,它...通过上述步骤,你可以顺利地在 Linux 系统上安装并配置 Nginx,进而实现高效稳定的 Web 服务。

    Web环境搭建:Linux+Nginx+PHP+Mysql+Redis

    ### Web环境搭建:Linux+Nginx+PHP+MySQL+Redis #### 一、环境概述与推荐版本 在构建一个高效且稳定的商城系统时,选择合适的Web环境至关重要。本指南将介绍一套广泛应用于电商平台的技术栈——**Ubuntu + PHP + ...

    Linux安装nginx/mysql/php/zabbix

    ### Linux安装nginx/mysql/php/zabbix知识点详解 #### 环境搭建概述 本文将详细介绍如何在CentOS 7.4.1708上手动搭建一个包含Nginx、MySQL、PHP以及Zabbix的环境。这四个组件分别代表了Web服务器、数据库服务器、...

    Nginx1.22.0版本Linux已编译可直接使用

    在 Linux 环境中部署 Nginx,用户通常需要自行编译源代码,配置所需模块并安装。然而,这个“Nginx1.22.0 版本 Linux 已编译可直接使用”的压缩包提供了预编译的二进制文件,简化了部署过程,使得用户可以直接在 ...

    Linux实验-自动部署Nginx+PHP服务器.rar

    3. **安装PHP**:CentOS 7通常使用Remi仓库来安装最新版本的PHP,先安装Remi仓库`sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm`,然后安装PHP`sudo yum install php ...

    Linux Nginx Mysql PHP

    在IT领域,Linux、Nginx、MySQL和PHP(简称LNMP)是构建高效、稳定且可扩展的Web服务的常见组合。这个组合通常用于搭建动态网站和应用程序,因为它们各自都有独特的优点和功能。 **Linux**:作为操作系统,Linux以...

Global site tag (gtag.js) - Google Analytics