今天想學學 nginx,因而先把它安裝起來。按照 http://nginx.org/en/linux_packages.html 上面的方法,在個人 ubuntu 虛擬機上很容易地就安裝好了。但是要運行的時候,找了半天也沒找到。搜了一下,才知道是放在了 /etc/init.d 下,但是配置文件又不知道在哪放着了。感受這樣安裝完後很不方便,因而下載了 source,根據 nginx.org/en/docs/configure.html 上面說的安裝,固然先把前面裝的卸載了。須要的 PCRE 能夠在 https://ftp.pcre.org/pub/pcre/ 下載, zlib 能夠在 http://zlib.net/ 下載。html
在解壓 source 後的目錄下,運行以下命令:mysql
./configure --prefix=/opt/programs/nginx-1.12.2 --with-http_ssl_module --with-http_stub_status_module --with-pcre=/opt/programs/pcre-8.41 --with-openssl=/usr/bin/openssl --with-zlib=/opt/programs/zlib-1.2.11linux
一開始沒有加 --with-openssl=/usr/bin/openssl 這個參數,會報錯,說找不到 openssl,我明明是安裝的,上網找了一下,才發現安裝的 openssl 的執行文件不在 ./configure 默認搜索的幾個目錄下。加上這個參數後,就沒問題了。nginx
上面命令成功後,須要運行以下命令纔是真正安裝:sql
make && make installubuntu
讓我崩潰的事情發生了,上面下載的 PCRE 和 zlib 我都只是解壓了,並無安裝,運行上面的命令時報錯了(「recipe for target '/opt/programs/pcre-8.41/Makefile' failed」),看來還要安裝 PCRE 和 zlib, 安裝時候,遇到了不少依賴的包的版本不一致而沒法安裝的問題,有種崩潰的感受。不知道爲何按照第一種(package)的方式爲何就沒有這些問題。忽然想起來,之前這臺虛擬機連 mysql 安裝都有問題,也是包依賴版本啥的產生的問題,試了網上的各類方法都解決不了。仍是弄一臺新的虛擬機試一下吧。在新裝的虛擬上,執行下面的操做,毫無阻礙的成功了。在裝新的虛擬機的時候看到有說淘寶在 nginx 的基礎上,添加了一些功能,並徹底兼容 nginx,詳見 http://tengine.taobao.org,因而我裝的是這上面的 tengine.net
1. tar -zxvf tengine-2.2.2.tar.gzhtm
2. cd tengine-2.2.2ip
3. apt-get install makessl
4. apt-get install libpcre3 libpcre3-dev (會安裝須要的 pcre)
5. apt-get install zlib1g-dev (會安裝須要的 zlib)
6. apt-get install openssl libssl-dev (安裝須要的 openssl)
7. ./configure --prefix=/opt/programs/tengine \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre (不能直接複製,需去掉換行及 「\」 符號)
8. make && make install
運行nginx: /opt/programs/tengine/sbin/nginx
若是咱們修改了配置文件,能夠運行如下命令來檢查配置是否正確: /opt/programs/tengine/sbin/nginx -t
中止 nginx:/opt/programs/tengine/sbin/nginx -s stop
重啓 nginx:/opt/programs/tengine/sbin/nginx -s reload