CentOS安裝與配置LNMP

來源:互聯網
上載者:User

標籤:blog   http   color   io   os   使用   java   ar   for   

本文PDF文檔下載:http://www.coderblog.cn/doc/Install_and_config_LNMP_under_CentOS.pdf

本文EPUB文檔下載:http://www.coderblog.cn/doc/Install_and_config_LNMP_under_CentOS.epub

原文連結:http://www.coderblog.cn/article/36/

CentOS安裝與配置LNMP(1):Nginx安裝與常用命令

Nginx是一個輕量級的HTTP伺服器,與龐大的Apache相比有以下優勢,在效能上,它戰用很少的系統資源,能支援更多的並發串連,達到更高的訪問效率;在功能上,Nginx是優秀的Proxy 伺服器和負載平衡伺服器;在安裝配置上,Nginx安裝簡單、配置靈活。而CentOS又是最常用的網站伺服器的Linux系統,本文將介紹購買VPS主機或者雲主機後,如何在純淨系統下安裝與配置Nginx。

一、安裝環境
  • 作業系統:CentOS
  • 安裝軟體:Nginx 1.6.0
  • 安裝方式: yum
  • 安裝說明:以下操作如無特別說明,請在root使用者或者具有root許可權的使用者下執行
二、安裝

一般CentOS系統的yum軟體源中,都沒有含有Nginx軟體,故我們需要匯入額外的yum軟體源。

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

yum install nginx

安裝後的檔案清單

  • 自啟動指令檔: /etc/init.d/nginx
  • 主程式檔案: /usr/sbin/nginx
  • 設定檔目錄: /etc/nginx/
  • 主設定檔: /etc/nginx/nginx.conf
  • 各網站的設定檔 /etc/nginx/conf.d/*.conf
  • 記錄檔目錄:/var/log/nginx/
  • 訪問日誌:/var/log/nginx/access.log
  • 錯誤記錄檔:/var/log/nginx/error.log
三、程式啟動

/etc/init.d/nginx start

Or

/etc/init.d/nginx restart

如果你看到以下結果,表示Nginx程式已經成功啟動了

Starting nginx: [ OK ]

四、查看網站

一般網站伺服器都沒有提供圖形化的介面,故我們需要通過遠程在查看伺服器上的網站,首先,獲得網站伺服器的IP。

ifconfig

然後我們就可以在瀏覽器裡,輸入http://伺服器的IP/來查看我們的網站,如果你看到以下的結果,那麼恭喜了,你的網站已經能夠正常訪問了

五、Nginx的常用命令
  • 查看Nginx版本:nginx -v
  • 測試組態檔案是否正確: nginx -t
  • 測試特定設定檔是否正確: nginx -t -c *filepath*
  • 啟動/停止/重新啟動

/etc/init.d/nginx start

/etc/init.d/nginx stop

/etc/init.d/nginx restart

  • 修改設定檔後,不啟動重新載入配置:nginx -s reload
六、故障排除

如果你的網站無法正常訪問,請按以下步驟檢查:

1、查看80連接埠是否已被Nginx使用

netstat -tlunp Or netstat -tlunp|grep :80

如果有以下內容,則Nginx程式已正常監聽80連接埠

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 573/nginx

2、查看網站在本地是否能夠訪問

curl http://localhost/ 如果返回Nginx歡迎頁面的HTML代碼則正常

3、80連接埠被系統阻止外部存取

方法一:停用iptables服務

iptables stop

chkconfig iptables off

方法二:開通80連接埠的外部存取

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

/etc/init.d/iptables save

4、查看錯誤記錄檔檔案

more /var/log/nginx/error.log

CentOS安裝與配置LNMP(2):Nginx最佳化

在簡單地安裝完Nginx後,需要對其進行配置,如配置網站的檔案路徑,多網站共用同一連接埠,與PHP的結合,還有對其進行最佳化。

一、主設定檔

nginx的主設定檔路徑:/etc/nginx/nginx.conf

user  nginx;worker_processes  1;error_log  /var/log/nginx/error.log warn;pid        /var/run/nginx.pid;events {    worker_connections  1024;}http {    include       /etc/nginx/mime.types;    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  /var/log/nginx/access.log  main;    sendfile        on;    #tcp_nopush     on;    keepalive_timeout  65;    #gzip  on;    include /etc/nginx/conf.d/*.conf;}
  • user nginx; 運行nginx程式的使用者
  • worker_processes 1; worker進程的個數,建議修改為和CPU的核心數一樣的數量,如4核CPU,則修改為4
  • error_log /var/log/nginx/error.log warn; 錯誤記錄檔的檔案路徑與記錄的日誌類型
  • pid /var/run/nginx.pid; 存放Nginx進程號的檔案,以後可通過此檔案向Nginx發送資訊,如 kill -HUP `cat /var/run/nginx.pid`
  • worker_connections 1024; worker支援的並發量,需要支援高並發量的伺服器,可修改此值為65536,此修改必須與linux的核心配合才能發揮作用;
  • include /etc/nginx/mime.types; 設定mime類型,類型由mime.type檔案定義
  • 定義日誌格式,格式名稱命令為main:
 
log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘                          ‘$status $body_bytes_sent "$http_referer" ‘                          ‘"$http_user_agent" "$http_x_forwarded_for"‘;各欄位意義如下:$remote_addr與$http_x_forwarded_for用以記錄用戶端的ip地址;$remote_user:用來記錄用戶端使用者名稱稱;$time_local: 用來記錄訪問時間與時區;$request: 用來記錄請求的url與http協議;$status: 用來記錄請求狀態;成功是200,$body_bytes_sent :記錄發送給用戶端檔案主體內容大小;$http_referer:用來記錄從那個頁面連結訪問過來的;$http_user_agent:記錄用戶端瀏覽器的相關資訊;                     
  • access_log /var/log/nginx/access.log main;記錄檔路徑,main為剛才定義的日誌格式名稱
  • sendfile on; sendfile指令指定 nginx 是否調用sendfile 函數(zero copy 方式)來輸出檔案,對於普通應用,必須設為on。如果用來進行下載等應用磁碟IO重負載應用,可設定為off,以平衡磁碟與網路IO處理速度,降低系統uptime。
  • keepalive_timeout 65; keepalive的逾時時間
  • include /etc/nginx/conf.d/*.conf; 此句是包含/etc/nginx/conf.d/目錄下的.conf檔案作為設定檔的內容
二、主設定檔的一些額外設定1、開啟gzip

一般伺服器的配置都比較強大,而網路頻寬都比較小,利用gzip功能,在發送網頁內將網頁內容進行壓縮,用戶端瀏覽器在收到檔案名稱,再進行解壓縮,這樣可以節省大量的網路頻寬。 在主設定檔中加入以下選項:

gzip  on;  #開啟gzipgzip_min_length 1k;  #內容大小小於1KB的將不壓縮,因為可能越壓越大gzip_buffers 4 16k;  #gzip緩衝設定系統擷取4個16KB單位的緩衝用於儲存gzip的壓縮結果資料流#gzip_http_version 1.0;gzip_comp_level 2;   #壓縮層級gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php; #需要進行壓縮的MIME TYPEgzip_vary off;gzip_disable "MSIE [1-6]\."; #對於IE6以下的瀏覽器,不進行壓縮
2、提高檔案上傳的大小

Nginx預設的可上傳檔案在大小隻有1M,這遠遠不能滿足我們的需求,因此可加入以下選項以提高上傳檔案大小。

client_max_body_size 10m;

三、網站設定檔路徑

Nginx的各網站設定檔存放在/etc/nginx/conf.d/目錄下,每個.conf檔案代表每一個獨立的網站,我們來看一個經典的conf檔案的結構,即/etc/nginx/conf.d/default.conf檔案:

server {    listen       80;    server_name  localhost;    #charset koi8-r;    #access_log  /var/log/nginx/log/host.access.log  main;    location / {        root   /usr/share/nginx/html;        index  index.html index.htm;    }    #error_page  404              /404.html;    # redirect server error pages to the static page /50x.html    #    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/share/nginx/html;    }    # proxy the PHP scripts to Apache listening on 127.0.0.1:80    #    #location ~ \.php$ {    #    proxy_pass   http://127.0.0.1;    #}    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000    #    #location ~ \.php$ {    #    root           html;    #    fastcgi_pass   127.0.0.1:9000;    #    fastcgi_index  index.php;    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;    #    include        fastcgi_params;    #}    # deny access to .htaccess files, if Apache‘s document root    # concurs with nginx‘s one    #    #location ~ /\.ht {    #    deny  all;    #}}

我們獨個解讀一下

  • 所有配置必須包括在server{}
  • listen 80 ; 監聽80連接埠
  • server_name localhost; 通過網址名稱與其它網站區分開,此處應該修改為你的申請的網域名稱網址,多個網址請用空格分開,如:server_name www.coderblog.cn coderblog.cn;,另外,這裡的網址也可以是Regex的形式,如server_name (www\.)?coderblog.cn;
  • charset koi8-r; 檔案編碼,一般設定為charset utf-8;
  • access_log /var/log/nginx/log/host.access.log main; 訪問日誌的檔案路徑與需要記錄的日誌類型,main為nginx.conf定義的日誌格式

  • 網站檔案的存放路徑,以及預設的文檔名稱,如,你訪問http://www.coderblog.cn/,實際是訪問http://www.coderblog.cn/index.htm
 
location / {    root   /usr/share/nginx/html;    index  index.html index.htm;}
  • error_page 404 /404.html; 當檔案沒有找到時,重定位到/404.html檔案

  • 當發生 500 502 503 504錯誤時,重定位到/50x.html檔案
 
error_page   500 502 503 504  /50x.html;location = /50x.html {   root   /usr/share/nginx/html;}
  • 配置某些檔案禁止訪問
 
location ~ /\.ht {    deny  all;}
四、修改配置後可能發生的錯誤

修改設定檔後,可用nginx -t測試組態檔案的正確性,以及需要用nginx -s reload重新載入設定檔。

1、修改檔案路徑後,訪問時發生403 Forbidden錯誤

可能原因1:缺少預設文件檔案,如root目錄下缺少index.html index.htm以及任何一個預設文件檔案,你那麼你直接存取網站網域名稱的時候,將發生403 Forbidden錯誤; 解決方案:添加至少一個預設文件到root目錄下

可能原因2:nginx使用者在root目錄下沒有讀許可權,例如將root目錄設定為/home/homeway,而該目錄的許可權為drwx------,即除了homeway使用者外,其它使用者沒有讀寫權限。 解決方案:將root目錄許可權修改為777,即任何人可讀可寫可執行,執行命令 chmod 777 /home/homeway -R即可

五、多網站共用80連接埠

Nginx實現多網站共用80連接埠其實很簡單,只要設定server_name屬性即可;如:我有兩個網站forum.coderblog.cn與blog.coderblog.cn,那麼,我只需要在/etc/nginx/conf.d/下新增兩個檔案 /etc/nginx/conf.d/forum.coderblog.cn.conf

listen       80;server_name  forum.coderblog.cn;

/etc/nginx/conf.d/blog.coderblog.cn.conf

listen       80;server_name  blog.coderblog.cn;

好了,本文就先講到這裡,下一篇將講NGINX與PHP結合。

CentOS安裝與配置LNMP(3):Nginx與PHP結合

PHP可以說是目前最流行的網站慣用語言,之前兩篇文章已經講了如果在CentOS環境下搭建與最佳化Nginx環境,本篇文章將講述PHP在CentOS下的安裝,並結合Spawn-fcgi與Nginx進行組合使用。

一、PHP在CentOS下的安裝

截至目前為止,PHP最新版本為5.6.0,但實際生產環境中,PHP 5.3.3已經能夠滿足大部分程式的需求,運行比較穩定且擴充模組比較多,故推薦安裝PHP 5.3.3版本。

  • 作業系統:CentOS
  • 安裝軟體:PHP 5.3.3
  • 安裝方式: yum
  • 安裝說明:以下操作如無特別說明,請在root使用者或者具有root許可權的使用者下執行
二、安裝

rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm

yum install php php-mysql php-gd php-gd php-mcrypt php-xml php-xcache php-mbstring

安裝後的檔案清單

  • 設定檔 /etc/php.ini
  • 程式檔案 /usr/bin/php-cgi,使用php-cgi -b port的形式即可讓其監聽某一連接埠,但一般不推薦以此種方式運行
三、使用spawn-fcgi管理php進程

spawn-fcgi是lightpd中的一個組件,可單獨使用,請使用以下命令進行安裝

wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2tar -xvjf lighttpd-1.4.18.tar.bz2cd lighttpd-1.4.18./configuremakemake install

常用命令:

spawn-fcgi -C 5 -u nginx -g nginx -f /usr/bin/php-cgi -a 127.0.0.1 -p 9000

參數解釋:

  • -C 5 啟動5個PHP進程進行處理
  • -u nginx -g nginx 以使用者nginx及使用者組nginx運行php
  • -f /usr/bin/php-cgi 指定php-cgi的檔案路徑
  • -a 127.0.0.1 -p 9000 監聽的IP與連接埠

運行之後,使用netstat -tlunp可看到如下資訊

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      13320/php-cgi 

此時如果使用kill -9 pid 的形式,spawn-fcgi會認為該進程崩潰了,馬上又會啟動另外一個進程,故需要多次執行kill命令,次數與-C 5 指定的進程數相關,故結束進程時推薦使用pkill php-cgi的形式,一次性殺死所有的php-cgi進程。

四、配置Nginx的設定檔

要使php與nginx進行結合,需要在網站設定檔裡,增加對.php結尾的檔案進行處理的語句,例子如下:

location ~\.php$ {    root   /home/homeway/coder;    index  index.html index.htm;    fastcgi_index index.php;    fastcgi_pass  127.0.0.1:9000;    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;    fastcgi_param  QUERY_STRING       $query_string;    fastcgi_param  REDIRECT_STATUS    200;    include       fastcgi_params;}

主要配置解釋:

  • location ~\.php$ 匹配所有以.php結尾的檔案,以便對其進行處理
  • fastcgi_index index.php; 首頁檔案
  • fastcgi_pass 127.0.0.1:9000; 將該檔案傳遞給監聽該連接埠的程式進行處理,也就是我們的php-cgi程式
  • include fastcgi_params; 此參數設定檔裡需要進行兩處修改

/etc/nginx/fastcgi_params檔案裡增加以下資訊(如果已有則跳過)

# PHP only, required if PHP was built with --enable-force-cgi-redirectfastcgi_param  REDIRECT_STATUS    200;fastcgi_param  PATH_INFO          "";fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
五、測試回合

在網站的root路徑下新增test.php檔案,內容如下:

<?php echo phpinfo();?>

對該檔案進行訪問,如果出現了PHP的相關資訊,則表示PHP已經成功運行了。

CentOS安裝與配置LNMP(4):MySQL資料庫

MySQL資料庫是最流行的關係型資料庫之一,其功能與效能,足以滿足大部分中小企業的需求,故在資料庫選擇中,首先MySQL資料庫。本文將講述MySQL資料庫在CentOS下的安裝,雖然與Nginx沒有必然的聯絡,但作為整個Nginx系列文章的補充,希望能夠形成完整的CentOS下網站運行環境搭建的教程。

一、安裝環境
  • 作業系統:CentOS
  • 安裝軟體:MySQL 5.1.73
  • 安裝方式: yum
  • 安裝說明:以下操作如無特別說明,請在root使用者或者具有root許可權的使用者下執行
二、安裝

yum install mysql mysql-server

安裝後的檔案清單

  • /etc/my.cnf 設定檔
  • /usr/bin/mysql 文字介面的用戶端程式
  • /etc/init.d/mysqld MySQL服務啟動指令碼
  • /usr/bin/mysqladmin 對MySQL進行管理配置的程式
三、常用命令啟動MySQL服務

/etc/init.d/mysqld start 或者 service mysqld start

設定為開機啟動

chkconfig mysqld on

修改密碼

初次安裝後,初始密碼為空白,為了網站的安全性,需要對密碼進行修改,修改命令如下、

mysqladmin -uroot -p password coderblog

此時會要求你輸入原來的密碼,但因為初始密碼為空白,直接按斷行符號即可。

命令解釋如下:

  • -u root -p 使用root使用者登入,則需要輸入密碼
  • password coderblog 將密碼修改為coderblog
登入

mysql -u使用者 -p密碼

備份還原資料庫

mysqldump -u使用者 -p密碼 資料庫名 > 檔案路徑

如:

mysqldump -uroot -pcoder coder > /home/homeway/coder.sql

還原資料庫

進入mysql命令介面還原法:

mysql -uroot -pcoder> create database coder;> source /home/homeway/coder.sql;> exit

直接還原法: mysql -u使用者 -p密碼 資料庫名 -e ‘source 檔案路徑‘

-e為執行命令,執行後直接結束程式

mysql -uroot -pcoder coder -e ‘source /home/homeway/coder.sql‘

簡單的最佳化配置

/etc/my.cnf中新增如下內容

default-character-set=utf8key_buffer_size = 256Mmax_allowed_packet = 4Mthread_stack = 256Ktable_cache = 128Ksort_buffer_size = 6Mread_buffer_size = 4Mjoin_buffer_size = 8Mmyisam_sort_buffer_size = 64Mtable_cache = 512thread_cache_size = 64query_cache_size = 64Mtmp_table_size = 256Mmax_connections = 2048wait_timeout = 60thread_concurrency = 8
CentOS安裝與配置LNMP(5):使用GoAccess分析Nginx日誌並發送郵件報告

GoAccess是一款效能非常出色的日誌分析軟體,非常適合來分析Nginx產生的日誌,並且可以形成HTML報告,通過Crontab定時任務,每天分析主機上的日誌並發送報告到營運人員的郵箱,這樣便可以對網站的運行情況瞭然於胸。

一、安裝軟體
  • 日誌分析軟體 GoAccess : yum install goaccess
  • 郵件發送軟體 Mutt : yum install mutt
  • SMTP軟體 msmtp : yum install msmtp
二、日常使用

使用命令goaccess -f 記錄檔路徑來對一個記錄檔進行分析,第一次啟動時,會彈出一個對話方塊,詢問記錄檔的格式,如所示:

此時選擇第三個,即NCSA Commbined Log Format ,使用空格鍵進行選擇,然後斷行符號確定,然後GoAccess就會以迅雷不及掩耳之勢分析完整個記錄檔。

不想每次都對記錄檔的格式進行選擇的話,可以建立一個設定檔,比如~/.garc,內容如下:

color_scheme 1date_format %d/%b/%Ylog_format %h %^[%d:%^] "%r" %s %b "%R" "%u"

然後,啟動程式時,指定設定檔的路徑即可:

goaccess -p ~/.garc -f 記錄檔路徑

三、測試郵件發送功能1、設定郵件發送帳戶

編輯msmtp的設定檔~/.msmtprc

defaultsaccount gmailtls onauth onhost smtp.gmail.comport 587user 郵箱名稱from 郵箱名稱password 郵箱密碼tls_starttls ontls_trust_file /etc/pki/tls/certs/ca-bundle.crtaccount default: gmail

上面的例子是以GMail為例,大家可結合自己使用的郵箱進行設定,其中account gmail中的gmail為帳戶標識,最後一行account default: gmail指定預設帳戶為gmail,mutt發送郵件時使用預設帳戶進行發送。

也可以使用其它郵箱,不同的郵箱有些選項不太一樣,如使用QQ郵箱,則需要關閉tls_starttls,下面列一個QQ郵箱的例子:

defaultsaccount qqtls onauth onhost smtp.qq.comport 465user homeway88from [email protected]password 密碼tls_starttls offtls_trust_file /etc/pki/tls/certs/ca-bundle.crtaccount default: qq
2、配置mutt使用msmtp來發送郵件而不是sendmail

預設mutt使用sendmail來發送郵件,如果你的主機沒有架設郵局功能的話,發送的郵件只是發送到原生帳戶郵箱,而我們一般要使用外部smtp服務來將郵件發送到internet郵箱。

編輯Mutt的設定檔/etc/Muttrc.Local,增加以下內容即可,注意寄件者郵箱必須和上面指定的msmtp的寄件者郵箱一致。

set sendmail = "/usr/bin/msmtp"set from="寄件者郵箱"  set sendmail="/usr/local/msmtp/bin/msmtp"  set use_from=yes   set realname="寄件者"  
3、使用mutt發送測試郵件

mutt的常用發送郵件命令為

echo "郵件內容"| mutt -s "郵件標題" -a 附件檔案路徑 -c 收件者郵箱

四、定時組建記錄檔報告並發送郵件

分解任務

  • 定時 Crontab
  • 組建記錄檔報告 GoAccess
  • 發送郵件 mutt

定時任務的格式為:

分 時 日 月 星期 命令

假設我們要每天晚上23:59分組建記錄檔報告,則使用crontab -e,然後添加以下內容即可

59 23 * * * sh /home/homeway/report/nginx.sh

然後建立/home/homeway/report/nginx.sh,輸入以下內容

DATE=$(date +%Y%m%d)mkdir /home/homeway/report/$DATEcd /home/homeway/report/$DATEcp /home/homeway/log/access.log .echo "" > /home/homeway/log/access.logcat *.log > all.loggoaccess -f /home/report/$DATE/all.log -a -p ~/.garc > report.htmlecho "$DATE Report" | mutt -s "$DATE Report" -a /home/homeway/report/$DATE/report.html -c [email protected]

命令解釋如下:

  • DATE=$(date +%Y%m%d) 擷取當前日期,格式為年月日,如20140101
  • 然後建立該日期的歸檔檔案夾mkdir /home/homeway/report/$DATE,並把記錄檔拷貝到該檔案夾下和清空原來的記錄檔,使用cat *.log > all.log是因為通常主機上都有多個檔案,故需要把多個記錄檔合并成一個。
  • goaccess -f /home/report/$DATE/all.log -a -p ~/.garc > report.html 分析日誌並將結果輸出到report.html檔案
  • echo "$DATE Report" | mutt -s "$DATE Report" -a /home/homeway/report/$DATE/report.html -c [email protected],將該報告檔案作為附件發送到[email protected]郵箱。
五、結束語

至此,本系列的文章便告一段落啦,一邊寫文章一邊改善部落格,雖然花了很多時間,但是自己也很有收穫,可以對所學的技巧作一個梳理,以免時間長了就忘了;也希望可對後來者起到一些協助。

由於本人精力有限,文章難免有錯漏和不足之處,希望各位讀者不吝賜教。

 

文章:CentOS安裝與配置LNMP

HomeWay88

發表在: 程旭猿部落格 http://www.coderblog.cn/

原文連結:http://www.coderblog.cn/article/36/

轉載請註明出處

CentOS安裝與配置LNMP

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.