cd ~
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
sudo nano /etc/apt/sources.list # 添加以下兩句
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise nginx
sudo apt-get update
sudo apt-get install nginx
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx
Ubuntu 從通例源安裝 Nginx :
sudo apt-get install nginx
編譯安裝Nginx
wget http://nginx.org/packages/mainline/ubuntu/pool/nginx/n/nginx/nginx_1.5.7-1~precise_i386.deb
wget http://nginx.org/download/nginx-1.5.7.tar.gz
tar xzf nginx-1.5.7.tar.gz
cd nginx-1.5.7
(留意:Nginx1.5.7是Mainline版而非Stable版)
為了利便開拓和打點,我在根目次下新建了一個png目次,而且目次所有者配置為當前用戶,nginx就編譯在/png/nginx/1.5.7下面:
sudo mkdir /png
sudo chown eechen:eechen /png
運行用戶我界說為png:png,所以我需要新建這樣一個用戶:
sudo addgroup png --system
sudo adduser png --system --disabled-login --ingroup png --no-create-home --home /nonexistent --gecos "png user" --shell /bin/false
(新建用戶的呼吁可以參考官方Deb包里的預安裝劇本DEBIAN/preinst)
編譯參數參考了Nginx官方提供的Deb包(nginx -V可見).
--prefix=/png/nginx/1.5.7
--sbin-path=/png/nginx/1.5.7/sbin/nginx
--conf-path=/png/nginx/1.5.7/conf/nginx.conf
--error-log-path=/png/nginx/1.5.7/var/log/error.log
--http-log-path=/png/nginx/1.5.7/var/log/access.log
--pid-path=/png/nginx/1.5.7/var/run/nginx.pid
--lock-path=/png/nginx/1.5.7/var/run/nginx.lock
--http-client-body-temp-path=/png/nginx/1.5.7/var/cache/client_temp
--http-proxy-temp-path=/png/nginx/1.5.7/var/cache/proxy_temp
--http-fastcgi-temp-path=/png/nginx/1.5.7/var/cache/fastcgi_temp
--http-uwsgi-temp-path=/png/nginx/1.5.7/var/cache/uwsgi_temp
--http-scgi-temp-path=/png/nginx/1.5.7/var/cache/scgi_temp
--user=png
--group=png
--with-http_ssl_module
--with-http_realip_module
--with-http_addition_module
--with-http_sub_module
--with-http_dav_module
--with-http_flv_module
--with-http_mp4_module
--with-http_gunzip_module
--with-http_gzip_static_module
--with-http_random_index_module
--with-http_secure_link_module
--with-http_stub_status_module
--with-mail
--with-mail_ssl_module
--with-file-aio
--with-ipv6
留意:這一步按錯誤提示安裝依賴的包,這時就是apt要發威的時候了,好比我的系統安裝了這些包:
sudo apt-get -y install
build-essential
autoconf
libtool
libxml2
libxml2-dev
openssl
libcurl4-openssl-dev
libbz2-1.0
libbz2-dev
libjpeg-dev
libpng12-dev
libfreetype6
libfreetype6-dev
libldap-2.4-2
libldap2-dev
libmcrypt4
libmcrypt-dev
libmysqlclient-dev
libxslt1.1
libxslt1-dev
libxt-dev
libpcre3-dev
安裝好這些包后,下次編譯新版Nginx就不消再裝了,并且根基也滿意編譯PHP時configure的需求.
好了,configure樂成后就可以編譯安裝了:
time make && make install
time主要用來查察本次編譯耗時.
編譯好后可以看看這個家伙的個頭:
du -sh /png/nginx/1.5.7/sbin/nginx
5.5M /png/nginx/1.5.7/sbin/nginx
情況簡樸設置總結
減小Nginx編譯后的文件巨細:
編輯源文件 nginx-1.5.7/auto/cc/gcc 去除Debug信息(注釋掉即可):
# debug
# CFLAGS="$CFLAGS -g"
這樣編譯后的主措施巨細則為700多K,和Nginx官方提供的Deb包措施巨細臨近.
別的configure時去掉一些不需要的模塊,編譯后的可執行文件會更小.
雖然,我需要一個處事劇本用來打點Nginx,這時同樣可以借助官方Deb包里提供的處事劇本etc/init.d/nginx.
我把它放到/png/nginx/1.5.7/nginx,對開頭界說的幾個值(13到19行)舉辦稍加修改: