標籤:server listen type hat net 壓縮 libxml2 index.php dir
Nginx是一個輕量級的高效能Webserver、反向 Proxyserver、郵件(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.gztar -zxvf zlib-1.2.8.tar.gzcd zlib-1.2.8./configuremakemake install
- pcre:用於支援nginx的正則表達式。設定檔裡都須要用到正則表達式
cd /usr/localwget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.gztar -zxvf pcre-8.35.tar.gzcd pcre-8.35./configuremakemake install
cd /usr/localwget http://www.openssl.org/source/openssl-1.0.1i.tar.gztar -zxvf openssl-1.0.1i.tar.gzcd openssl-1.0.1i./configuremakemake 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.gzcd 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.1imakemake 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.gzcd php-5.5.11./configure --prefix=/usr/local/php5.5 --enable-mbstring --with-mcrypt --with-mhash ................. --enable-fasecgi --enable-fpmmake && 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和配置