ubuntu 14.04 编译安装 nginx
下载源码包 nginx 地址:
http://nginx.org/en/download.html 下载nginx 1.4.7
编译前先安装两个包:
直接编译安装会碰到缺少pcre等问题,这时候只要到再安装两个包就ok
sudo apt-get install libpcre3-dev aptitude libssl-dev这样再make install就可以成功了
执行如下操作来安装openssl及其开发函数库:
- $ sudo apt-get install openssl
- $ sudo apt-get install libssl0.9.8
- $ sudo apt-get install libssl-dev
依赖包安装完毕以后 就可以编译安装nginx
正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。 ububtu平台编译环境可以使用以下指令
apt-get install build-essential apt-get install libtool
centos平台编译环境使用如下指令 安装make:
yum -y install gcc automake autoconf libtool make
安装g++:
yum install gcc gcc-c++
下面正式开始
--------------------------------------------------------------------------- 一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。 1.选定源码目录
可以是任何目录,本文选定的是/usr/local/src
cd /usr/local/src
2.安装PCRE库
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz tar -zxvf pcre-8.34.tar.gz cd pcre-8.34
./configure make
make install
3.安装zlib库
http://zlib.net/zlib-1.2.8.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:
cd /usr/local/src
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
4.安装ssl(某些vps默认没装ssl)
cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz tar -zxvf openssl-1.0.1c.tar.gz
5.安装nginx
Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:
cd /usr/local/src
wget http://nginx.org/download/nginx-1.4.2.tar.gz tar -zxvf nginx-1.4.2.tar.gz cd nginx-1.4.2
./configure --sbin-path=/usr/local/nginx/nginx \ --conf-path=/usr/local/nginx/nginx.conf \ --pid-path=/usr/local/nginx/nginx.pid \ --with-http_ssl_module \ --with-pcre=/usr/local/src/pcre-8.34 \ --with-zlib=/usr/local/src/zlib-1.2.8 \ --with-openssl=/home/mdpi/openssl-1.0.1c \
make
make install
4.启动nginx
sudo /usr/local/nginx/sbin/nginx
关闭nginx
sudo /usr/local/nginx/sbin/nginx -s stop
重读nginx配置文件
sudo /usr/local/nginx/sbin/nginx -s reload
启动nginx出现的错误 :nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
使用命令关闭占用80端口的程序
sudo fuser -k 80/tcp
##建立软链接sudo ln -s /usr/local/nginx/sbin/nginx /etc/init.d/##启动nginx/etc/init.d/nginx
之后就打开浏览器 输入http://localhost ;
测试一下吧!
!!!给nginx 设定支持PHP功能
首先编辑
sudo vi /usr/local/nginx/conf/nginx.conf
直接修改
location / {
root /usr/local/nginx/html/; //网站的根路径 是 /usr/local/nginx/html/下
index index.html index.htm index.php; //主页文件的类型
}
location ~ \.php$ {
root /usr/local/nginx/html; // /网站的根路径 是 /usr/local/nginx/html/下
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; //支持php的路径 意思就是 在/usr/local/nginx
include fastcgi_params; /html 的目录下 支持php的文件
}
修改这两处即可让nginx 支持 php 功能
然后 sudo /etc/init.d/nginx -s reload //重新载入nginx 的配置文件
=============================================================
相关错误:
启动nginx的时候,提示sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
解决办法: ln -s /usr/local/lib/libpcre.so.1 /usr/local/nginx/lib