亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

Debian系統下為PHP程序配置Nginx服務器的基本教程

2024-08-30 12:27:49
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Debian系統下為PHP程序配置Nginx服務器的基本教程,這里使用到了FastCGI和php-fpm,需要的朋友可以參考下
 

  Nginx 目前來說已經很流行了,所以打算把現有的Apache先替換一部分,在批量部署和管理方面都要考慮到。因為nginx的所有模塊都是靜態編譯的不像apache那樣可以動態添加模塊,所以在一開始就要考慮清楚需求,結合現在很火的LAMP模式,其中P最常見的是PHP,目前較好的FastCGI的管理器有spaw-fcgi和php-fpm,而php老版本都是需要源碼安裝通過打補丁的方式把php-fpm打進去,spaw-fcgi是lighttpd默認的FastCGI管理器,因為牽扯到源碼安裝,當前的軟件包版本在大規模部署起來不是很方便,但是還是有解決辦法的。

    Nginx安裝方法:

    1 apt網絡安裝

       修改源列表

vi /etc/apt/sources.list#加入以下源deb http://nginx.org/packages/debian/ squeeze nginxdeb-src http://nginx.org/packages/debian/ squeeze nginx

        更新源列表并通過apt安裝nginx

apt-key add nginx_signing.keyapt-get updateapt-get install nginx

    2 源碼編譯安裝
       先安裝編譯環境, 由于nginx在以后的使用中會需要用到perl正則、壓縮算法、SSL等特性,所以我們需要提前安裝相關庫文件。

apt-get install build-essential apt-get install libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev libssl0.9.8

        下載最新的穩定版nginx

wget http://nginx.org/download/nginx-1.2.3.tar.gz
        解壓查看編譯選項

tar zxvf nginx-1.2.3.tar.gzcd nginx-1.2.3#--help可以看到可以配置的參數./configure --help

       查看編譯可選的配置參數(以下只是一些常用的配置項):

      
--prefix=PATH                      nginx的默認安裝路徑,沒有指定的話。默認為/usr/local/nginx

--sbin-path=PATH                nginx可執行命令文件的路徑,沒有指定的話,默認<prefix>/sbin/nginx

--conf-path=PATH               nginx配置文件路徑,沒有指定的話,默認為<prefix>/conf/nginx.conf

--error-log-path=PATH        在nginx.conf中沒有使用error_log指定錯誤日志路徑時,默認<prefix>/logs/error.log

--http-log-path=PATH         定義被訪問文件的日志存放路徑,如果在nginx.conf中沒有使用access_log指定,默認為<prefix>/logs/access.log

--pid-path=PATH                    當在nginx.conf中沒有使用pid指定pid文件路徑時,默認為<prefix>/logs/nginx.pid

--lock-path=PATH                   鎖文件存放路由,如果在nginx.conf中沒有指定,則默認為<prefix>/logs/nginx.lock

--user=USER                        如果在Nginx.conf中沒有使用user定義進程運行的屬主,則默認為nobody

--group=GROUP                       如果在Nginx.conf中沒有使用user定義進程運行的屬組,則默認為nobody

--builddir=DIR                     set build directory

--with-rtsig_module                使用rtsig模式

--with-select_module               使用select模式,如果當前平臺沒有其他有效模式,則默認編譯

--without-select_module            禁止select模式

--with-poll_module                 使用poll模式,如果當前平臺沒有其他有效模式,則默認編譯

--without-poll_module              禁止poll模式

--with-file-aio                    enable file AIO support

--with-ipv6                        開啟IPV6支持

--with-debug                       開啟debug

以下這些模塊默認沒有開啟,可以使用--with命令開啟以下模塊

  --with-http_ssl_module             開啟ssl模塊

  --with-http_realip_module          可以在后端記錄客戶端IP

  --with-http_addition_module        enable ngx_http_addition_module

  --with-http_flv_module             開啟flv模塊

  --with-http_mp4_module             開啟mp4模塊

  --with-http_gzip_static_module     開啟gzip模塊

  --with-http_secure_link_module     enable ngx_http_secure_link_module

  --with-http_stub_status_module     開啟狀態查看模塊

 

  以下模塊默認是開啟的,可以使用--without選項關閉相關模塊

  --without-http_charset_module      disable ngx_http_charset_module

  --without-http_gzip_module         禁用gzip壓縮模塊

  --without-http_ssi_module          禁用ssl模塊

  --without-http_userid_module       disable ngx_http_userid_module

  --without-http_access_module       禁用access模塊

  --without-http_auth_basic_module   禁用auth_basic認證模塊

  --without-http_autoindex_module    禁用列目錄模塊

  --without-http_geo_module          禁用geo模塊

  --without-http_map_module          禁用map模塊

  --without-http_referer_module      disable ngx_http_referer_module

  --without-http_rewrite_module      禁用重定向模塊

  --without-http_proxy_module        禁用代理模塊

  --without-http_fastcgi_module      禁用fastcgi模塊

  --without-http_uwsgi_module        disable ngx_http_uwsgi_module

  --without-http_scgi_module         disable ngx_http_scgi_module

  --without-http_memcached_module    disable ngx_http_memcached_module

  --without-http_limit_conn_module   disable ngx_http_limit_conn_module

  --without-http_limit_req_module    disable ngx_http_limit_req_module

  --without-http_empty_gif_module    disable ngx_http_empty_gif_module

  --without-http_browser_module      disable ngx_http_browser_module

  --without-http_upstream_ip_hash_module    禁用upstream模塊

 --with-http_perl_module            開啟perl模塊
  --with-perl_modules_path=PATH      設置perl模塊路徑
  --with-perl=PATH                   為perl庫設置路徑
  --http-client-body-temp-path=PATH  set path to store http client request body temporary files
  --http-proxy-temp-path=PATH        set path to store http proxy temporary files
  --http-fastcgi-temp-path=PATH      set path to store http fastcgi temporary files
  --http-uwsgi-temp-path=PATH        set path to store http uwsgi temporary files
  --http-scgi-temp-path=PATH         set path to store http scgi temporary files
  --without-http                     禁用http服務
  --without-http-cache               禁用http cache
  --with-mail                       開啟mail服務
  --with-mail_ssl_module             在mail服務中開啟ssl
  --without-mail_pop3_module         disable ngx_mail_pop3_module
  --without-mail_imap_module         disable ngx_mail_imap_module
  --without-mail_smtp_module         disable ngx_mail_smtp_module
  --with-google_perftools_module     開啟google_perftools模塊
  --with-cpp_test_module             開啟cpp_test模塊
  --add-module=PATH                  enable an external module
  --without-pcre                     禁止使用perl正則庫
  --with-pcre                        強制使用perl正則庫

     編譯安裝

./configure --prefix=/etc/nginx/ --user=nginx --group=nginx --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_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-file-aio --with-ipv6

    結果如下圖:

Debian系統下為PHP程序配置Nginx服務器的基本教程

  編譯并安裝

make && make install

     PS:FastCGI回顧
     FastCGI是一個可伸縮地、高速地在HTTP server和動態腳本語言間通信的接口。多數流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同時,FastCGI也被許多腳本語言所支持,其中就有PHP。FastCGI是從CGI發展改進而來的。傳統CGI接口方式的主要缺點是性能很差,因為每次HTTP服務器遇到動態程序時都需要重新啟動腳本解析器來執行解析,然后結果被返回給HTTP服務器。這在處理高并發訪問時,幾乎是不可用的。另外傳統的CGI接口方式安全性也很差,現在已經很少被使用了。FastCGI接口方式采用C/S結構,可以將HTTP服務器和腳本解析服務器分開,同時在腳本解析服務器上啟動一個或者多個腳本解析守護進程。當HTTP服務器每次遇到動態程序時,可以將其直接交付給FastCGI進程來執行,然后將得到的結果返回給瀏覽器。這種方式可以讓HTTP服務器專一地處理靜態請求或者將動態腳本服務器的結果返回給客戶端,這在很大程度上提高了整個應用系統的性能。
    Nginx不支持對外部程序的直接解析,所有的外部程序(包括PHP)必須通過FastCGI接口來調用。FastCGI接口在Linux下是socket,(這個socket可以是文件socket,也可以是ip socket)。為了調用CGI程序,還需要一個FastCGI的wrapper(wrapper可以理解為用于啟動另一個程序的程序),這個wrapper綁定在某個固定socket上,如端口或者文件socket。當Nginx將CGI請求發送給這個socket的時候,通過FastCGI接口,wrapper接納到請求,然后派生出一個新的線程,這個線程調用解釋器或者外部程序處理腳本并讀取返回數據;接著,wrapper再將返回的數據通過FastCGI接口,沿著固定的socket傳遞給Nginx;最后,Nginx將返回的數據發送給客戶端,這就是Nginx+FastCGI的整個運作過程。

Debian系統下為PHP程序配置Nginx服務器的基本教程

php-fpm

PHP5.3版本源碼已經默認支持php-fpm了,但是debian6認為它還沒經過廣泛的測試,所以在debian6的軟件倉庫中,雖然php版本為5.3.3,但是卻沒包含php-fpm,如果不想手工編譯安裝php的話可以換一個源。
     
     修改源列表

vi /etc/apt/sources.listdeb http://packages.dotdeb.org stable alldeb-src http://packages.dotdeb.org stable all

    更新源列表,安裝php5-fpm

apt-get update wget http://www.dotdeb.org/dotdeb.gpgcat dotdeb.gpg | apt-key add -apt-get install php5-fpm

    安裝其他常用php5組件

apt-get install php5 php5-cgi php5-cli php5-mysql php5-memcache

    啟動php-fpm

/etc/init.d/php5-fpm start

    這樣的話最基本的nginx+php環境就搭建完畢了。   

Nginx配置文件粗解
nginx的配置文件結構類似下圖這樣的結構:

Debian系統下為PHP程序配置Nginx服務器的基本教程

配置文件主要參照編譯完成后生成的默認配置文件。

   主模塊的配置選項

    user指令設置進程以什么用戶運行,在源碼編譯安裝時指定的nginx用戶,如果在編譯時沒有指定,默認是nobody賬戶,在配置文件中此行處于注釋狀態,  user 指令可以設置兩個參數,第一個指定進程所屬用戶,第二個是可選,指定進程所屬組

  user nginx nobody;

    設置工作進程數,一個工作進程為一個單線程,在CPU密集型環境中,可以設置worker_processes數目為CPU核數

  worker_processes 4;

    指定nginx錯誤日志文件的位置,如果要禁止錯誤日志使用error_log /dev/null,error_log可以存在于不同的字段main、http、server等,文件后面可以指定記錄的日志的默認等級。

  error_log logs/error.log;

    設置pid文件路徑,可以使用kill命令發送相關信號

  pid    logs/nginx.pid;

    event模塊配置選項,event模塊主要控制nginx處理連接的方式

  events {  #如果在configure時指定的不止一個事件模型,可以通過use告訴nginx要使用哪一個模型:seletc、poll、kqueue、epoll、rtsig、/dev/poll、eventport等  use epoll;  #worker_connections和worker_processes可以計算你的理論最大鏈接數, worker_connections*worker_processes  worker_connections 1024;}

    http模塊里面主要是對http服務器相關屬性進行設置

  

 http {  #可以用include指令包含一些其他文件,支持通配符,可以使用絕對路徑,也可以使用相對路徑,相對路徑以nginx.conf為根據  include    mime.types;  #設置默認的MIME類型  default_type application/octet-stream;  #描述記錄日志的格式,在定義格式時可以使用一些變量,各個變了的含義可以從各個模塊匯總查找  log_format main '$remote_addr - $remote_user [$time_local] "$request" '           '$status $body_bytes_sent "$http_referer" '           '"$http_user_agent" "$http_x_forwarded_for"';  #指定訪問日志的路徑和格式,緩沖區大小  access_log logs/access.log main;  #sendfile拷貝文件在內核態完成,更加高效  sendfile    on;  #tcp_nopush   on;  #可以設置兩個值,第一個表示客戶端與服務器長連接的超時時間,超過這個時間,服務器將關閉連接。第二個值指定的應答頭中keep-alive中timeout的值,讓瀏覽器知道什么時候關閉連接。  keepalive_timeout 65;  #開啟gzip壓縮  gzip on;  #在三次握手時,發送給客戶端應答后的超時時間,目前還沒進入連接狀態,只完成了兩次握手,如果在規定時間沒收到應答包,nginx將關閉鏈接  send_timeout 30  server {     xxx  }}

    server模塊嵌在http模塊中,主要用來配置虛擬主機

  server {    #指定server字段中可以被訪問到的ip地址及端口    listen    80;    #將http請求的主機頭與server中的server_name參數進行匹配,并找出第一個結果,如果沒有server_name參數匹配上,則第一個出現listen的server將被匹配,多域名用空格分割    server_name www.nginx.com;    #設個指令是應答頭重的content-type字段使用指定的編碼集,off表示不在應答頭重添加content-type信息    charset off;    #指定www.nginx.com域名的訪問日志路徑及格式    access_log logs/host.access.log main;    #如果在url中沒有指定文件,則設置一個默認主頁,可以設置多個文件,空格分開,可以在http、server、location中設置    index index.php index.htm;    #根據URL的不同需求進行配置,可以使用字符串和正則匹配,最確切的匹配被使用,搜索到第一個后會停止    # ~* 不區分大小寫;~ 區分大小寫;^~ 禁止在字符串匹配后檢查正則;= 在URL和location之間精確匹配,匹配完成后不做額外搜索。    location /i/ {      #請求到達后的文件根目錄,在請求中root會把location匹配的值加到root指定的值后面,請求/i/a.php,則會是/html/i/a.php響應      root  html;      #在location中設置index      index index.html index.htm;    }    #為錯誤代碼指定相應的錯誤界面,可以用在http、server、location字段中。    error_page 404       /404.html;    # redirect server error pages to the static page /50x.html    error_page  500 502 503 504 /50x.html;    #精確匹配50x.html,真實響應是/html/50x.html    location = /50x.html {      root  html;    }    # proxy the PHP scripts to Apache listening on 127.0.0.1:80    location ~ /.php$ {      proxy_pass  http://127.0.0.1;    }    #配置php腳本傳至fastcgi    location ~ /.php$ {     root      html;     fastcgi_pass  127.0.0.1:9000;     fastcgi_index index.php;     #/scripts是php腳本所在的目錄      fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;      include    fastcgi_params;    }    #拒絕訪問.htaccess文件    location ~ //.ht {      deny all;    }  }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人精品电影久久久| 国产91精品黑色丝袜高跟鞋| 免费不卡欧美自拍视频| 国产v综合ⅴ日韩v欧美大片| 欧美成人一区二区三区电影| 国产在线观看精品一区二区三区| 欧美中文在线视频| 精品福利樱桃av导航| 中文字幕自拍vr一区二区三区| 国产日韩视频在线观看| 欧洲成人性视频| 中文字幕视频一区二区在线有码| 国产欧美日韩亚洲精品| 91国语精品自产拍在线观看性色| 亚洲国产日韩欧美综合久久| 亚洲视频欧美视频| 一区二区亚洲欧洲国产日韩| 少妇精69xxtheporn| 欧美日韩另类在线| 最新亚洲国产精品| 青青草原成人在线视频| 欧美成人国产va精品日本一级| 97久久精品人人澡人人爽缅北| 欧美在线不卡区| 亚洲2020天天堂在线观看| 日韩精品久久久久久久玫瑰园| 欧美黄色片视频| 国产啪精品视频| 亚洲欧美国产精品va在线观看| 欧美在线一区二区视频| 8090成年在线看片午夜| 成人av色在线观看| 日韩欧美成人精品| 亚洲精品综合久久中文字幕| 国产精品午夜视频| 国产精品尤物福利片在线观看| www.欧美精品| 隔壁老王国产在线精品| 国产福利视频一区| 国产成人精品视频| 亚洲在线视频观看| www国产亚洲精品久久网站| 欧美在线影院在线视频| 国产欧美日韩丝袜精品一区| 97久久久免费福利网址| 一区国产精品视频| 欧美一级片免费在线| 精品欧美激情精品一区| 亚洲已满18点击进入在线看片| 国产精品久久久久久网站| 日韩在线视频免费观看高清中文| 欧美特黄级在线| 欧美性xxxxxxxxx| 亚洲人成网站色ww在线| 日韩在线视频观看正片免费网站| 欧美大片在线影院| 在线亚洲男人天堂| 久久精品视频在线播放| 精品国产福利在线| 欧美日韩国产丝袜美女| 午夜精品一区二区三区在线播放| 中文字幕久久亚洲| 国产午夜精品一区理论片飘花| 亚洲无限av看| 欧美日韩国产丝袜另类| 欧美精品在线观看| 2021国产精品视频| 国产噜噜噜噜久久久久久久久| 成人国产精品免费视频| 91av免费观看91av精品在线| 亚洲精品短视频| 久久久久久国产三级电影| 国产精品视频xxxx| 国模gogo一区二区大胆私拍| 欧美精品第一页在线播放| 北条麻妃99精品青青久久| 亚洲欧洲一区二区三区久久| 国产精品aaaa| 成人免费在线网址| 欧美理论电影网| 不卡中文字幕av| 亚洲综合精品一区二区| 亚洲精品在线不卡| 欧美美女操人视频| 亚洲精品动漫100p| 久久久久亚洲精品成人网小说| 日韩影视在线观看| 欧美日韩国产影院| 亚洲欧洲在线免费| 久久久久久噜噜噜久久久精品| 欧美日韩性视频在线| 38少妇精品导航| 国产一区二区三区四区福利| 亚洲一级免费视频| 日韩在线国产精品| 日韩欧美一区视频| 久国内精品在线| 亚洲黄色www| 亚洲天堂免费视频| 97在线看福利| 在线观看欧美日韩| 欧美性资源免费| 久久久久久久97| 在线视频欧美性高潮| 国产精品91久久| 日韩黄色高清视频| 国产精品网址在线| 成人网在线免费看| 国产精品电影久久久久电影网| 欧美午夜精品在线| 97av在线播放| 91九色国产社区在线观看| 欧美小视频在线观看| 午夜精品一区二区三区在线视| 97福利一区二区| 国产噜噜噜噜噜久久久久久久久| 欧美富婆性猛交| 91热精品视频| 欧美日韩亚洲国产一区| 亚洲图片在线综合| 国产精品久久婷婷六月丁香| 亚洲天堂男人天堂女人天堂| 亚洲欧美在线看| 国产精品成人久久久久| 日韩电影免费观看在线| 国产精品久久久久7777婷婷| 国产精品久久久久久久久久久不卡| 亚洲国产精品视频在线观看| 久久精品中文字幕| 久久久久中文字幕| 日韩美女视频在线观看| 欧美多人乱p欧美4p久久| 久久777国产线看观看精品| 91久久国产综合久久91精品网站| www.亚洲男人天堂| 日韩一级裸体免费视频| 中文字幕日韩av电影| 92福利视频午夜1000合集在线观看| 国产成人精品电影久久久| 亚洲一级免费视频| 精品国内亚洲在观看18黄| 久久99精品国产99久久6尤物| 亚洲色图美腿丝袜| 欧美日韩精品在线视频| 精品美女久久久久久免费| 精品人伦一区二区三区蜜桃网站| 亚洲国产成人精品久久| 日韩av电影在线免费播放| 国产精品日韩在线播放| 亚洲一区二区在线| 日韩国产一区三区| 国产中文字幕91| 欧美激情视频在线免费观看 欧美视频免费一| 久久久www成人免费精品| 精品一区精品二区| 久久人人爽人人爽人人片av高请| 一区二区国产精品视频| 2019中文字幕在线免费观看| 亚洲999一在线观看www| 亚洲free性xxxx护士hd| 91午夜理伦私人影院| 美日韩丰满少妇在线观看| 91久久在线播放| 亚洲美女在线视频|