1. 程式人生 > 其它 >安裝samba伺服器

安裝samba伺服器

1、安裝依賴

sudo apt-get update

#安裝依賴:gcc、g++依賴庫
sudo apt-get install build-essential libtool

#安裝 pcre依賴庫(http://www.pcre.org/)
sudo apt-get install libpcre3 libpcre3-dev

#安裝 zlib依賴庫(http://www.zlib.net)
sudo apt-get install zlib1g-dev

#安裝ssl依賴庫
sudo apt-get install openssl

(1)PCRE庫支援正則表示式。如果我們在配置檔案nginx.conf中使用了正則表示式,那麼在編譯Nginx時就必須把PCRE庫編譯進Nginx,因為Nginx的HTTP模組需要靠它來解析正則表示式。另外,pcre-devel是使用PCRE做二次開發時所需要的開發庫,包括標頭檔案等,這也是編譯Nginx所必須使用的

(2)zlib庫用於對HTTP包的內容做gzip格式的壓縮,如果我們在nginx.conf中配置了gzip on,並指定對於某些型別(content-type)的HTTP響應使用gzip來進行壓縮以減少網路傳輸量,則在編譯時就必須把zlib編譯進Nginx

(3)如果伺服器不只是要支援HTTP,還需要在更安全的SSL協議上傳輸HTTP,那麼需要擁有OpenSSL。另外,如果我們想使用MD5、SHA1等雜湊函式,那麼也需要安裝它

2、下載解壓http://nginx.org/en/download.html

#下載
sudo wget http://nginx.org/download/nginx-1.20.2.tar.gz
#解壓 sudo tar -zxvf nginx-1.20.2.tar.gz cd nginx-1.20.2

(1)mianline版本,版本號中間數字一般為奇數,更新快,一個月就會發佈一個新版本,最新功能,bug修復等,穩定性差點。

(2)stable版本:穩定版,版本號中間數字一般為偶數。經過了長時間的測試,比較穩定,商業化環境中使用這種版本。

(3)Lengacy版本,遺產,遺留版本,以往的老版本。

3、編譯Nginx資訊

 sudo vim src/core/nginx.h

#修改前
#define nginx_version      1020002
#define NGINX_VERSION      "1.20.2"
#define
NGINX_VER "nginx/" NGINX_VERSION #修改後 #define nginx_version 1020002 #define NGINX_VERSION "1.20.2" #define NGINX_VER "Web Server" NGINX_VERSION #版本號也可以去掉,為了方便檢視,我選擇了保留
sudo vim src/http/ngx_http_header_filter_module.c

#修改前
static u_char ngx_http_server_string[] = "Server: nginx" CRLF;
static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF;

#修改後
static u_char ngx_http_server_string[] = "Server: Web Server" CRLF;
static u_char ngx_http_server_full_string[] = "Server: Web Server" CRLF;
static u_char ngx_http_server_build_string[] = "Server: Web Server" CRLF;
sudo vim src/http/ngx_http_special_response.c
#注意修改後無引號,因為修改前NGINX_VER為變數

#修改前
static u_char ngx_http_error_full_tail[] =
"<hr><center>" NGINX_VER "</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;


static u_char ngx_http_error_build_tail[] =
"<hr><center>" NGINX_VER_BUILD "</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;


static u_char ngx_http_error_tail[] =
"<hr><center>nginx</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;

#修改後
static u_char ngx_http_error_full_tail[] =
"<hr><center>Web Server</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;


static u_char ngx_http_error_build_tail[] =
"<hr><center>Web Server</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;


static u_char ngx_http_error_tail[] =
"<hr><center>Web Server</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;

4、編譯

#預設就在/usr/local/nginx
sudo ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

–prefix 指定安裝路徑
–with-http_stub_status_module 允許檢視nginx狀態的模組
–with-http_ssl_module 支援https的模組

sudo make 
sudo make install

引數說明:
編譯選項官方提供的有:
–prefix=path 定義一個目錄來儲存你的nginx的提供功能的資料夾,就這好比我們安裝軟體的時候軟體存放的目錄,如果我們在編譯的不指定安裝位置,那麼預設的位置/usr/local/nginx 目錄
–sbin-path=path 設定nginx執行指令碼的位置,這裡如果設定在path變數裡面,就可以在bash環境下,任意使用nginx命令,預設位置prefix/sbin/nginx 注意這裡的prefix是
在配置檔案裡面配置的路徑
–conf-path=path 配置nginx配置檔案的路徑,如果不指定這個選項,那麼配置檔案的預設路徑就會是 prefix/conf/nginx.conf
–pid-path =path 配置nginx.pid file的路徑,一般來說,程序在執行的時候的時候有一個程序id,這個id會儲存在pid file裡面,預設的pid file的放置位置是prefix/logs/nginx.pid
–error-log-path=path 設定錯誤日誌的存放路徑,如果不指定,就預設 prefix/logs/error.log
–http-log-path= path 設定http訪問日誌的路徑,如果不指定,就預設 prefix/logs/access.log
–user=name 設定預設啟動程序的使用者,如果不指定,就預設 nobody
–group=name 設定這個使用者所在的使用者組,如果不指定,依然是nobody
這些是我們常用的編譯選項,其他的可以均保持預設,如需特殊指定,可上nginx官網查閱 http://nginx.org/en/docs/configure.html
下面是一些不常用的選項
–with-http_ssl_module -開啟HTTP SSL模組,使NGINX可以支援HTTPS請求。需要安裝了OPENSSL
–with-http_flv_module
–with-http_stub_status_module - 啟用 “server status” 頁(可有可無)
–without-http_gzip_module - 禁用 ngx_http_gzip_module. 如果啟用,需要 zlib 。
–without-http_ssi_module - 禁用 ngx_http_ssi_module
–without-http_referer_module - 禁用 ngx_http_referer_module
–without-http_rewrite_module - 禁用 ngx_http_rewrite_module. 如果啟用需要 PCRE 。
–without-http_proxy_module - 禁用 ngx_http_proxy_module
–without-http_fastcgi_module - 禁用 ngx_http_fastcgi_module
–without-http_memcached_module - 禁用 ngx_http_memcached_module
–without-http_browser_module - 禁用 ngx_http_browser_module
–http-proxy-temp-path=PATH - Set path to the http proxy temporary files
–http-fastcgi-temp-path=PATH - Set path to the http fastcgi temporary files
–without-http - 禁用 HTTP server(用作代理或反向代理)
–with-mail - 啟用 IMAP4/POP3/SMTP 代理模組
–with-mail_ssl_module - 啟用 ngx_mail_ssl_module
–with-openssl=DIR - Set path to OpenSSL library sources

#查詢Nginx安裝路徑
whereis nginx

#啟動Nginx
sudo nginx

#檢視Nginx程序
ps -ef|grep nginx

#停止Nginx
sudo nginx -s stop
sudo nginx -s quit

#重新載入Nginx配置
sudo nginx -s reload

參考文獻:https://blog.csdn.net/A156348933/article/details/85335089

https://blog.csdn.net/lingbing5719/article/details/116479391

https://www.jianshu.com/p/e49389635d6d