Nginx是一个轻量级的高性能Webserver、反向代理server、邮件(IMAP/POP3/SMTP)server,是Igor Sysoev为俄罗斯訪问量第二的Rambler.ru网站开发,第一个公开版本号0.1.0公布于2004年10月4日。以类BSD许可证的形式公布。

Nginx选择epoll and kqueue 作为开发模型并使用C编写,在系统资源和CPU使用率上比Apache有着较大的优势。同一时候安装很easy,配置文件简洁(支持perl语法),启动easy,差点儿能够做到7*24小时不间断执行,即时执行数月也不须要重新启动,同一时候支持不间断服务的情况下进行软件版本号升级。

此前一直是在用Apacheserver。php作为apache的一个模块执行。同一时候也在网上见到非常多比較过两者的文章和资料,众说纷纭。决定亲自来尝试一下。本文作为尝试的一个记录。供以后备忘和回想。

本文安装环境:

Linux 2.6.32-358.el6.x86_64  Red Hat Enterprise Linux Server release 6.4 (Santiago)

单核为Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz 的8核处理器。内存为32G

一、安装Nginx

Nginx安装须要依赖三个基础包,这是最基础的三个包,很多其它扩展模块可通过手冊安装。

  • zlib:主要用于支持将http内容进行gzip压缩,用于降低网络传输流量
cd  /usr/local    #选定安装的文件夹
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
  • pcre:用于支持nginx的正則表達式。配置文件里都须要用到正則表達式
cd   /usr/local
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.gz
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure
make
make install
  • openssl:用于nginx支持https请求
cd  /usr/local
wget http://www.openssl.org/source/openssl-1.0.1i.tar.gz
tar -zxvf openssl-1.0.1i.tar.gz
cd openssl-1.0.1i
./configure
make
make install

这里使用Nginx眼下最新版1.7.4,下载地址为http://nginx.org/download/nginx-1.7.4.tar.gz。

安装过程中须要指定之前安装的三个包的路径。

这里指定的pcre文件夹不是安装好的文件夹,而是源代码文件夹。另外假设出现例如以下错误:
src/core/ngx_regex.h:15:18: fatal error: pcre.h: No such file or directory

是由于nginx版本号的不同,缺少开发依赖包,须要安装:

apt-get install libpcre3-dev

对于指定openssl的路径。假设系统默认安装了。那么使用例如以下命令找出openssl所在路径:

which openssl

然后将这个路径放在nginx的--with-openssl选项后。

tar -zxvf nginx-1.7.4.tar.gz
cd nginx-1.7.4
./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre-8.35 --with-zlib=/usr/local/zlib-1.2.8 --with-openssl=/usr/local/openssl-1.0.1i
make
make install

管理:

  • 启动: /usr/local/nginx/sbin/nginx
  • 停止:kill  -QUIT  `cat /usr/local/nginx/logs/nginx.pid`
  • 重新启动:kill  -HUP  `cat
    /usr/local/nginx/logs/nginx.pid`  或者 /usr/local/nginx/sbin/nginx -s reload
  • 改动配置文件:vim  /usr/local/nginx/conf/nginx.conf
  • 加入到自启动:echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
Nginx眼下不能直接支持php,必须借助fastcgi来驱动php,一般使用php-fpm来使nginx支持php,并且php-fpm在php5.3之后就集成到php源代码中了。不需另外下载安装。比較方便。

二、php安装

首先针对php可能依照须要安装php的依赖包:libxml2、libpng、libjpeg、libcurl、freetype等,这里不再赘述。

tar -zxvf php-5.5.11.tar.gz
cd php-5.5.11
./configure --prefix=/usr/local/php5.5 --enable-mbstring --with-mcrypt --with-mhash ................. --enable-fasecgi --enable-fpm
make && make install

configure中省略的是其它的依赖包选项,能够自行取舍,最后的--enable-fpm选项一定要加上。nginx就是通过php-fpm来驱动php的。配置文件在 /usr/local/php5.5/php-fpm.conf进行配置:

<value name="listen_address">127.0.0.1:9000</value>改动为<value name="listen_address">IP:9000</value>
<value name="sendmail_path">/usr/sbin/sendmail -t -i</value>
<value name="display_errors">1</value> <value name="user">nobody</value> //去凝视
<value name="group">nobody</value> //去凝视
<value name="allowed_clients">127.0.0.1</value> //同意连接的PC,本机就用127.0.0.1
启动php-fpm# /usr/local/php/sbin/php-fpm start加入到自启动# echo "/usr/local/php/sbin/php-fpm start">>/etc/rc.local

之后改动/usr/local/nginx1.7.4/conf/nginx.conf文件,使得nginx支持php:

location / {
root $documentroot;
index index.html index.htm index.php;
expires 30m;
} location ~ /.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $documentroot$fastcgi_script_name;
include fastcgi_params;
}

Nginx是通过php-fpm监听的9000port来解析PHP请求的。





Linux安装Nginx1.7.4、php5.5.15和配置的更多相关文章

  1. CentOS7安装Nginx-1.9.9+PHP5.6

    linux系统CentOS7 Nginx 下载地址http://nginx.org/en/download.html wget下载路径http://nginx.org/download/nginx-1 ...

  2. 一、linux下nginx1.7.8+php5.6.3的环境配置

    部分参考:http://www.cnblogs.com/simpman/p/4151662.html http://blog.zyan.cc/nginx_php_v6 1.利用linux系统自带的yu ...

  3. CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.7.15+PHP7.0.11

    准备篇 一.防火墙配置 CentOS 7.2默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.se ...

  4. Geoserver2.15.1 配置自带 GeoWebCache 插件发布 ArcGIS Server 瓦片(附配置好的 Geoserver2.15.1 下载)

    之前写过一篇关于 Geoserver2.8.5 版本的部署配置发布 ArcGIS Server 瓦片点击查看,那是下载 Geoserver2.8.5 源码编译,重新打包 jar 来部署配置思路的,版本 ...

  5. CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14

    准备篇: CentOS 7.0系统安装配置图解教程 http://www.osyunwei.com/archives/7829.html 一.配置防火墙,开启80端口.3306端口 CentOS 7. ...

  6. CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28

    [准备工作] #在编译安装lnmp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y r ...

  7. CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.6.33+PHP5.6.26

    准备篇 一.防火墙配置 CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.se ...

  8. CentOS 6.6编译安装Nginx1.6.2+MySQL5.6.21+PHP5.6.3

    http://www.osyunwei.com/archives/8867.html 一.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables #编辑防火墙配置 ...

  9. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2

    说明: 操作系统:CentOS 6.2 32位 系统安装教程:CentOS 6.2安装(超级详细图解教程): http://www.osyunwei.com/archives/1537.html 准备 ...

随机推荐

  1. NSPredicate 的使用(持续更新)

    NSPredicate 谓词工具一般用于过滤数组数据,也可用来过滤CoreData查询出的数据. 1). 支持keypath 2). 支持正则表达式 在使用之前先新建3个类 Teacher Info ...

  2. 解决sqlite删除数据或者表后,文件大小不变的问题

    原因分析: sqlite采用的是变长纪录存储,当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的"空闲列表"中用于存储你下次插入的数据,用于提高效率,磁盘空间并没有丢 ...

  3. openshift 添加cron定时任务

    一般linux添加cron任务是在/etc/crontab,但是由于openshift的权限木有这么开放,所以如果需要设置定时任务的话,需要在如下的文件夹下添加你的sh文件,因为我需要的是每天运行一次 ...

  4. iOS开发-UITableView常用方法

    UITableView常用来展示数据,类似于Android中的ListView,相对于Android中的ListView而言,UITableView的实现是非常简单,继承UITableViewData ...

  5. Gson 使用总结 高级用法

    Gson基本用法 参考:http://www.jianshu.com/p/e740196225a4 Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,前者实现反序列 ...

  6. jQuery多媒体播放器插件jQuery Media Plugin使用方法

    jQuery Media Plugin是一款基于jQuery的网页媒体播放器插件,它支持大部分的网络多媒体播放器和多媒体格式,比如:Flash, Windows Media Player, Real ...

  7. windows server 2008 远程桌面(授权、普通用户登录)~ .

    大家好,因公司上ERP系统,用户端需要远程到服务器,但大家都知道微软默认只有2个,所以没有办法达到我公司的要求. 在网上找了很久也没有找到合适的文章,要不就这里说一点,那里说一点,没有一个全的,还有很 ...

  8. Win10 Docker 安装使用

    1.前言 Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. 2.安装准备 需要的条件为: 64bit Windows 10,开启Hyper-V 2.1 下载Doc ...

  9. POJ2762 Going from u to v or from v to u? 强连通+缩点

    题目链接: poj2762 题意: 给出一幅单向图.问这张图是否满足   随意两点ab 都能 从a到达b 或  从b到达a 题解思路: 推断一幅图是否满足弱连通 首先想到的是将图中的 强连通分量(能互 ...

  10. jQuery cssHook的经典例子

      /*--------------------------- example ------------------------------*/ $.cssHooks.foo = { get: fun ...