Linux系統伺服器搭建與實現
A. 如何搭建一台linux開發伺服器
在開發過程中,必然會出現多人同時工作、協著的情況,在嵌入式開發項目中更為平常,這樣可以加快項目周期,為產品上市佔得時間先機。目前,使用Linux作為開發產品的操作系統情況越來越多,使用越來越廣泛。為了交叉編譯,為了最接近開發目標,我們一般都會自己搭建一台Linux開發伺服器。Linux開發伺服器一些常用的功能必須支持,比如Samba、nfs、tftp、httpd等。 首先我們需要選擇合適的Linux操作系統作為伺服器的系統,推薦使用Fedora8、Fedora10等,筆者在長期使用的過程中覺得比較穩定吧!如何安裝該操作系統就不多說了。 裝好系統後,需要增加Linux OS用戶,可以使用命令#adser XXX;增加XXX用戶,#passwd XXX給其設置登錄密碼。當然使用圖形化創建用戶也很直觀、方便。在這個環節值得注意的一定要設置好該用戶的home目錄,一般都會設置到該用戶的工作目錄,各個用戶的工作目錄需要私有化、獨立開來,這樣方便些、安全些。 多用戶的賬戶有了,我們應該來打通網路功能了,Fedora有bug,在圖形化配置GATEWAY什麼的會不成功,請安裝如下方法修改: # cd cd /etc/sysconfig/network-scripts/ # vi ifcfg-eth0 修改配置文件如下: # Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller DEVICE=eth0 HWADDR=00:16:e6:db:c2:96 ONBOOT=yes BOOTPROTO=static //這個應該是「static」,而不是「dhcp」或「none」; USERCTL=yes PEERDNS=yes IPV6INIT=no NM_CONTROLLED=yes//這個應該是「yes」,如不修改,鏈接仍是disconnected; TYPE=Ethernet NETMASK=***.***.***.*** IPADDR=***.***.***.*** DNS1=***.***.***.*** DNS2=***.***.***.*** GATEWAY=***.***.***.*** step 3: # service network restart 接下來就需要調試一下Samba功能了,這樣在windows下編輯Linux下的代碼將非常的便利。命令行下操作方法如下: Vim /etc/samba/smbusers # Unix_name = SMB_name1 SMB_name2 … root = administrator admin nobody = guest pcguest smbguest dssun = dssun hmchen = hmchen 增加Samba用戶; Vim /etc/samba/smb.conf [dssun] comment = * path = /opt/STM/STLinux-2.3/devkit/dtvkit/dssun writeable = yes ; browseable = yes valid users = bluo, dssun, hmchen, hqian, sbxiang, tsfu, yrli 設置工作路徑,可讀寫性、有效訪問的用戶等。 在圖形化下也有配置菜單,這個就很簡單了,不再敘述。 有了Samba就方便很多了!編譯編輯都很不錯了!接下來要著手你的開發平台軟體,這個對於不同平台的SDK有不同的處理方法,根據自己的SDK來處理。 有了SDK後,我們編譯通過後,一般都會進行調試,如何方便的調試呢?一般都會想到使用nfs調試。 以Fedora為例,一般默認安裝的沒有包括tftp功能,可以使用yum來安裝,方便! #yum install tftp; #yum install tftp-server 還需要更改一下tftp的配置,如下: vim /etc/xinetd.d/tftp 修改server_args = -s /tftpboot -c,這里的-c一定要加上,否則只能下載不能上傳!!! service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot -c per_source = 11 cps = 100 2 flags = IPv4 } # mkdir /tftpboot # chmod 777 -R /tftpboot/ # service xinetd restart 記得要關閉防火牆、seLinux.不disabled seLinux,Samba有可能只能讀不能寫,切記。
B. 如何實現在Linux下創建服務程序
Linux系統能提供強大可靠的網路服務,並有管理程序對服務進行管理。例如我們熟悉的Web、FTP和電子郵件等,它們既可以單獨運行,也可以被守護進程inetd調用,而且運行得都非常好。但我們不能僅停留在贊嘆中,下面就給出兩個服務程序程序和一個客戶程序的例子,介紹服務程序和客戶程序之間是如何溝通的。另外還要編輯配置一些文件,讓服務程序也能接受服務管理程序管理。
這兩個服務程序功能相同,但一個是獨立服務程序,另一個是被inetd調用的服務程序。這是TCP/IP網路服務的兩大類,這里將兩個程序放在一起是為了比較程序結構和運行方式。兩服務程序都在Red Hat Linux 7.1和TurboLinux 7.0上調試通過。
獨立伺服器
TCP和UDP是兩大TCP/IP數據傳輸方式,套介面是建立伺服器客戶機連接的機制,首先介紹它們建立通信聯系的過程,然後給出一個TCP服務程序例子。
1.TCP套介面通信方式
對於TCP伺服器端,服務程序首先調用建立套介面的函數socket(),然後調用綁定服務IP地址和協議埠號函數bind()。綁定成功後調用被動監聽函數listen()等待客戶連接,還要調用獲取連接請求函數accept(),並一直阻塞到客戶連接請求的到達,這個函數獲取客戶機IP地址和協議埠號。
對於TCP客戶端,客戶程序啟動後後調用建立套介面函數socket(),然後調用連接函數connect(),此函數與伺服器通過三次握手建立連接。
伺服器和客戶機建立連接後,就可以使用讀函數read()和寫函數write()收發數據了。數據交換完成後便各自調用關閉套介面函數close()刪除套介面。TCP套介面通信方式見圖1所示。
圖1 TCP套介面通信方式
2.UDP套介面通信方式
UDP程序與TCP的區別是無需建立連接。伺服器首先啟動,然後等待用戶請求。客戶機啟動後便直接向伺服器請求服務,伺服器接到請求後給出應答。
對於UDP伺服器端,服務程序首先調用套介面函數socket(),然後調用綁定IP地址和協議埠號函數bind()。之後調用函數recvfrom()接收客戶數據,調用sendto()向客戶發送數據。
對於UDP客戶端,客戶機程序啟動後調用套介面函數socket(),然後調用sendto()向伺服器發送數據,調用recvfrom()接收伺服器數據。
雙方數據交換成功後,各自調用關閉套介面函數close()關閉套介面。UDP套介面通信方式見圖2所示。
圖2 UDP套介面通信方式
下面給出獨立服務程序的例子。這個程序雖然簡單,但是與復雜程序有著相同的結構。
//程序名:server.c
//功能:伺服器從客戶機讀入一個字元,並將排在此字元後面的字元回送客戶機
//伺服器埠:9000
#include "sys/types.h"
#include "sys/socket.h"
#include "stdio.h"
#include "netinet/in.h"
#include "arpa/inet.h"
#include "unistd.h"
int main()
{
int pid; //用於存放fork()執行結果
int server_sockfd,client_sockfd; //用於伺服器和客戶機套介面描述符
int bind_flag,listen_flag; //用於存放bind()和listen()執行結果
int server_address_length,client_address_length; //作為伺服器客戶機地址長變數
struct sockaddr_in server_address; //作為伺服器地址結構變數(含地址和埠)
struct sockaddr_in client_address; //作為客戶機地址結構變數(含地址和埠)
if((pid=fork())!=0) //用fork()產生新進程
exit(0) ;
setsid() ; //以子進程開始下面的程序
函數socket(),創建一個套介面,成功則返回套介面描述符。
server_sockfd=socket(AF_INET,SOCK_STREAM,0);
if(server_sockfd<0)
{
printf(「socket error /n」);
exit(1);
}
server_address.sin_family=AF_INET;
函數htonl()用於將32位主機位元組順序轉換為網路位元組順序,其中參數INADDR_ANY表示任何IP地址。
server_address.sin_addr.s_addr=htonl(INADDR_ANY);
函數htons()用於將16位主機位元組順序轉換為網路位元組順序,其中的參數是綁定的埠號,讀者可根據環境自行改動,目的是不與其它服務埠沖突。
server_address.sin_port=htons(9000);
server_address_length=sizeof(server_address);
函數bind()用於綁定本地地址和服務埠號,若調用成功返回值為0。
bind_flag=bind(server_sockfd,/
(struct sockaddr *)&server_address,/
server_address_length);
if(bind_flag<0)
{
printf(「bind error /n」);
exit(1);
}
函數listen(),指明伺服器的隊列長度,被動等待客戶連接,調用成功返回值為0。
listen_flag=listen(server_sockfd,5);
if(listen_flag<0)
{
printf(「listen error /n」);
exit(1);
}
while(1)
{
char ch;
函數accept()等待和獲取用戶請求,為每個新連接請求創建一個新的套介面,調用成功返回新套介面描述符。
client_sockfd=accept(server_sockfd,/
(struct sockaddr *)&client_address,/
&client_address_length);
函數read()和write()用於在伺服器和客戶機之間傳送數據,調用成功返回讀和寫的位元組數。
函數close(),用於程序使用完一個套介面後關閉套介面,調用成功返回值0。其中的參數為accept()創建的套介面的描述符client_sockfd。
read(client_sockfd,&ch,1);
printf(「cli_ch=%c」,ch);
ch++;
write(client_sockfd,&ch,1);
close(client_sockfd);
}
}
程序完成後就可以使用命令進行編譯。在命令行中輸入「gcc -o server server.c」,將server.c編譯成可執行程序server,這時便可用客戶程序進行測試。在命令行執行「./server」啟動服務程序,執行「netstat -na」查看有無server的服務埠。如果存在,則執行下面編寫的客戶程序「./client」。不過這僅是手工啟動的方法,下面給出用服務管理程序管理server程序的方法。只要在目錄/etc/rc.d/init.d下放入服務程序的腳本就能被服務程序讀到。在命令行執行「touch server」創建文件server,並將文件屬性改成可執行。在管理程序中並不能看到此服務名,腳本文件必須有一些結構才能被管理程序認為是服務程序腳本。
為了減少工作量,拷貝/etc/rc.d/init.d下腳本httpd,將拷貝腳本名命名為server,然後對其編輯。
(1)執行「cp httpd server」。
(2)用文本編輯器vi(其它編輯器亦可)將server打開進入編輯狀態。首先用字元串server替換httpd。然後找到daemon server行,如果編寫的程序放在變數PATH目錄中,不需要修改此行;如果把服務程序放在其它目錄中,就要寫服務的全路徑。例如程序在/root的目錄中,就要寫成daemon /root/server,還要刪除「rm -f /var/run/server.pid」這一行。
(3)執行「chmod 755 server」,將server屬性設定為可執行。
此時就可以用chkconfig、ntsysv等工具,在希望的運行級中增加這個新服務程序,然後測試客戶機與伺服器能否通信。
被xinetd調用的服務程序
在Linux系統中,有很多服務是被xinetd(較早版本使用的是inetd)超級守護伺服器啟動的。其實凡是基於TCP和UDP的服務都可使用超級守護進程啟動,只是在服務量很大影響效率的情況下不被採用。
1.依賴xinetd啟動的服務建立通信過程
為了與獨立伺服器程序比較,我們看一下依賴xinetd的伺服器是如何啟動的。
(1)xinetd啟動時讀取/etc/xinetd目錄中的文件(早期版本為/etc/inetd文件),根據其中的內容給所有允許啟動的服務創建一個指定類型的套介面,並將套介面放入select()中的描述符集合中。
(2)對每個套介面綁定bind(),所用的埠號和其它參數來自/etc/xinetd目錄下每個服務的配置文件。
(3)如果是TCP套介面就調用函數listen(),等待用戶連接。如果是UDP套介面,就不需調用此函數。
(4)所有套介面建立後,調用函數select()檢查哪些套介面是活動的。
(5)若select()返回TCP套介面,就調用accept()接收這個連接。如果為UDP,就不需調用此函數。
(6)xinetd調用fork()創建子進程,由子進程處理連接請求。
◆ 子進程關閉所有其它描述符,只剩下套介面描述符。這個套介面描述符對於TCP是accept()返回的套介面,對於UDP為最初建立的套介面。然後子進程連續三次p()函數,將套介面描述符復制到0、1和2,它們分別對應標准輸入、標准輸出和標准錯誤輸出,並關閉套介面描述符。
◆ 子進程查看/etc/xinetd下文件中的用戶,如果不是root用戶,就用調用命令setuid和setgid將用戶ID和組ID改成文件中指定的用戶。
(7)對於TCP套介面,與用戶交流結束後父進程需要關閉已連接套介面。父進程重新處於select()狀態,等待下一個可讀的套介面。
最後調用配置文件中指定的外部服務程序,外部程序啟動後就可與用戶進行信息傳遞了。
2.為xinetd編寫專門的服務程序
除了獨立服務程序能被xinetd啟動外,還可以為xinetd編寫專門的程序。此處的例子程序與上面server.c功能相同。不過兩者的程序區別是很大的,此例的代碼僅相當於上面傳輸數據的部分。我們還將程序名定為server.c,所以不能放在相同目錄中,同名僅是為了和上面程序對照。
#include "unistd.h"
int main()
{
char ch;
read(0,&ch,1);
ch++;
write(1,&ch,1);
}
將程序編譯成可執行文件,並做些設置就可被xinetd啟動。注意不要和上面的獨立服務程序server一起啟動,因為客戶程序寫得比較簡單,訪問的是固定埠,伺服器都設成了相同的埠號。
(1)編輯/etc/services文件,在行末增加一條記錄:
server 9000/tcp
(2)在目錄/etc/xinetd.d下編寫文件server,內容為:
service server
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /home/test/server (此處設置成自己程序所在的目錄)
}
如果使用的是較早版本,則需在/etc/inetd.conf文件中添加下面的行:
server tcp nowait root /path/to/yourdirectory/server
(3)執行/etc/rc.d/initd.d/xinetd restart重新啟動xinetd伺服器。早期版本執行/etc/rc.d/initd.d/inetd restart重新啟動inetd。
(4)執行netstat -an查看有沒有server程序使用的埠號,如果有就可使用下面客戶機程序進行測試了。
客戶機程序
下面就客戶機函數做一簡單介紹。
//程序名client.c
/*功能:從客戶的控制台輸入一個字元,然後將這個字元送到伺服器,並將伺服器返回的字元顯示出來*/
#include "sys/types.h"
#include "sys/socket.h"
#include "stdio.h"
#include "netinet/in.h"
#include "arpa/inet.h"
#include "unistd.h"
int main()
{
int sockfd;//
int address_len;
int connect_flag;
struct sockaddr_in address;
int connect_result;
char client_ch,server_ch;
函數socket()用於建立一個套介面,創建成功返回套介面描述符。
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
printf(「sockfd error /n」);
}
address.sin_family=AF_INET;
address.sin_addr.s_addr=inet_addr(「192.168.0.1」);/*讀者根據自己環境改成伺服器地址*/
address.sin_port=htons(9000);
address_len=sizeof(address);
函數connect()用於與伺服器建立一個主動連接,調用成功返回值為0。
connect_flag=connect(sockfd,(struct sockaddr *)&address,address_len);
if(connect_flag==-1)
{
perror(「client」);
exit(1);
}
printf(「Input a character :」);
函數scanf()用於從控制台輸入一個字元,並將字元存入client_ch的地址。函數write()和read()用於傳輸數據。函數printf()在客戶機屏幕上顯示伺服器傳回的字元。函數close()關閉套介面。
scanf(「%c」,&client_ch);
write(sockfd,&client_ch,1);
read(sockfd,&server_ch,1);
printf(「character from server : %c/n」,server_ch);
close(sockfd);
exit(0);
}
執行命令「gcc -o client client.c」,將client.c編譯成client。執行「./client」,在程序提示下輸入一個字元,就能看到伺服器傳回的字元。
以上介紹的僅是簡單的例子。平時見到的服務程序遠比它復雜,而且很多是多協議服務程序或是多協議多服務程序。多協議服務程序就是在main()中分別創建供服務的TCP和UDP套介面。為每個服務分別寫出相應程序好處是便於控制,但是這樣每個服務都啟動兩個伺服器,而它們的演算法響應是一樣的,就要耗費不必要的資源,並且出了問題排錯也較困難。多服務是將不同的服務集成在一起由一個程序完成,可用一個數組表示服務,數組中的每一項表示某協議某服務的一種,這樣很容易擴展程序的服務功能。
C. 如何搭建一個linux伺服器
在開發過程中,必然會出現多人同時工作、協著的情況,在嵌入式開發項目中更為平常,這樣可以加快項目周期,為產品上市佔得時間先機。目前,使用Linux作為開發產品的操作系統情況越來越多,使用越來越廣泛。為了交叉編譯,為了最接近開發目標,我們一般都會自己搭建一台Linux開發伺服器。Linux開發伺服器一些常用的功能必須支持,比如Samba、nfs、tftp、httpd等。
首先我們需要選擇合適的Linux操作系統作為伺服器的系統,推薦使用Fedora8、Fedora10等,筆者在長期使用的過程中覺得比較穩定吧!如何安裝該操作系統就不多說了。 裝好系統後,需要增加Linux OS用戶,可以使用命令#adser XXX;增加XXX用戶,
D. 如何最快搭建LINUX伺服器集群
1.2.並行技術
這是一個非常簡單的建造四節點的小集群系統的例子,它是構建在Linux操作系統上,通過MPICH軟體包實現的,希望這個小例子能讓大家對集群系統的構建有一個最基本的了解。
2.使用MPICH構建一個四節點的集群系統
這是一個非常簡單的建造四節點的小集群系統的例子,它是構建在Linux操作系統上,通過MPICH軟體包實現的,希望這個小例子能讓大家對集群系統的構建有一個最基本的了解。
2.1 所需設備
1).4台採用Pentium II處理器的PC機,每台配
置64M內存,2GB以上的硬碟,和EIDE介面的光碟驅動器。
2).5塊100M快速乙太網卡,如SMC 9332 EtherPower 10/100(其中四塊卡用於連接集群中的結點,另外一塊用於將集群中的其中的一個節點與其它網路連接。)
3).5根足夠連接集群系統中每個節點的,使用5類非屏蔽雙絞線製作的RJ45纜線
4).1個快速乙太網(100BASE-Tx)的集線器或交換機
5).1張Linux安裝盤
2.2 構建說明
對計算機硬體不熟的人,實施以下這些構建步驟會感到吃力。如果是這樣,請找一些有經驗的專業人士尋求幫助。
1. 准備好要使用的採用Pentium II處理器的PC機。確信所有的PC機都還沒有接上電源,打開PC機的機箱,在准備與網路上的其它設備連接的PC機上安裝上兩塊快速乙太網卡,在其它的 PC機上安裝上一塊快速乙太網卡。當然別忘了要加上附加的內存。確定完成後蓋上機箱,接上電源。
2. 使用4根RJ45線纜將四台PC機連到快速乙太網的集線器或交換機上。使用剩下的1根RJ45線將額外的乙太網卡(用於與其它網路相連的那塊,這樣機構就可以用上集群)連接到機構的區域網上(假定你的機構區域網也是快速乙太網),然後打開電源。
3. 使用LINUX安裝盤在每一台PC機上安裝。請確信在LINUX系統中安裝了C編譯器和C的LIB庫。當你配置TCP/IP時,建議你為四台PC分別指定為192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。第一台PC為你的伺服器節點(擁有兩塊網卡的那台)。在這個伺服器節點上的那塊與機構區域網相連的網卡,你應該為其指定一個與機構區域網吻合的IP地址。
4.當所有PC都裝好Linux系統後,編輯每台機器的/etc/hosts文件,讓其包含以下幾行:
192.168.1.1 node1 server
192.168.1.2 node2
192.168.1.3 node3
192.168.1.4 node4
編輯每台機器的/etc/hosts.equiv文件,使其包含以下幾行:
node1
node2
node3
node4
$p#
以下的這些配置是為了讓其能使用MPICH』s p4策略去執行分布式的並行處理應用。
1. 在伺服器節點
,建一個/mirror目錄,並將其配置成為NFS伺服器,並在/etc/exports文件中增加一行:
/mirror node1(rw) node2(rw) node3(rw) node4(rw)
2. 在其他節點上,也建一個/mirror目錄,關在/etc/fstab文件中增加一行:
server:/mirror /mirror nfs rw,bg,soft 0 0
3. /mirror這個目錄從伺服器上輸出,裝載在各個客戶端,以便在各個節點間進行軟體任務的分發。
4. 在伺服器節點上,安裝MPICH。MPICH的文檔可在
5.任何一個集群用戶(你必須在每一個節點新建一個相同的用戶),必須在/mirror目錄下建一個屬於它的子目錄,如 /mirror/username,用來存放MPI程序和共享數據文件。這種情況,用戶僅僅需要在伺服器節點上編譯MPI程序,然後將編譯後的程序拷貝到在/mirror目錄下屬於它的的子目錄中,然後從他在/mirror目錄下屬於它的的子目錄下使用p4 MPI策略運行MPI程序。
2.3 MPICH安裝指南
1.如果你有gunzip,就d下載mpich.tar.gz,要不然就下載mpich.tar.Z。你可以到http://www.mcs.anl.gov/mpi/mpich/downloa下載,也可以使用匿名FTP到ftp.mcs.anl.gov的pub/mpi目錄拿。(如果你覺得這個東西太大,你可以到pub/mpi/mpisplit中取分隔成塊的幾個小包,然後用cat命令將它們合並)
2.解壓:gunzip ;c mpich.tar.gz tar xovf-(或zcat mpich.tar.Ztar xovf-)
3.進入mpich目錄
4.執行:./configure為MPICH選擇一套適合你的實際軟硬體環境的參數組,如果你對這些默認選擇的參數不滿意,可以自己進行配置(具體參見MPICH的配置文檔)。最好選擇一個指定的目錄來安裝和配置MPICH,例如:
./configure -prefix=/usr/local/mpich-1.2.0
5.執行:make >&make.log 這會花一段較長的時間,不同的硬體環境花的時間也就不同,可能從10分鍾到1個小時,甚至更多。
6.(可選)在工作站網路,或是一台單獨的工作站,編輯mpich/util/machines/machines.xxx(xxx是MPICH對你機器體系結構取的名稱,你能很容易的認出來)以反映你工作站的當地主機名。你完全可以跳過這一步。在集群中,這一步不需要。
7.(可選)編譯、運行一個簡單的測試程序:
cd examples/basic
make cpi
ln ;s ../../bin/mpirun mpirun
./mpirun ;np 4 cpi
此時,你就在你的系統上運行了一個MPI程序。
8.(可選)構建MPICH其餘的環境,為ch_p4策略使
用安全的服務會使得任何啟動速度加快,你可以執行以下命令構建:
make serv_p4
(serv_p4是一個較新的P4安全服務的版本,它包含在MPICH 1.2.0版中),nupshot程序是upshot程序的一個更快版本,但他需要tk 3.6版的源代碼。如果你有這個包,你就用以下命令可以構建它:
make nupshot
9.(可選)如果你想將MPICH安裝到一個公用的地方讓其它人使用它,你可以執行:
make install 或 bin/mpiinstall
你可以使用-prefix選項指定MPICH安裝目錄。安裝後將生成include、lib、bin、sbin、www和man目錄以及一個小小的示例目錄,
到此你可以通告所有的用戶如何編譯、執行一個MPI程序。
E. Linux系統怎麼搭建DHCP伺服器呀
打開系統,掛載光碟。(小白可在桌面模式下,建議在命令行界面操作)
設置IP地址,主機與伺服器相互ping通
安裝DHCP伺服器(我的是用yum安裝的,也可以用rpm),yum install -y dhcp
將範本配置文件復制到/etc/dhcp目錄下替換掉空白的dhcpd.conf的主配置文件
dhcpd.conf配置文件:常用參數
ddns-update-style (none|interim|ad-hoc):定義所支持的DNS動態更新類型
ignore client-updates:忽略客戶端更新
default-less-time number(數字):定義默認IP租約時間
max-lease-time number(數字):定義客戶端IP租約時間的最大值
subnet 192.168.100.0 netmask 255.255.255.0{(定義作用域)
range 192.168.100.10 192.168.100.100;(指定動態IP地址范圍)
option routers 192.168.100.254;(網關)
option subnet-mask 255.255.255.0;(子網掩碼)
option domain-name"liunx65.com";(客戶端名稱)
option domain-name-servers 192.168.100.32;(DNS伺服器地址)
option broadcast-address 192.168.100.255;(廣播地址)
}
配置完成後保存退出並重啟DHCP服務,測試
設置DHCP自啟動(chkconfig --level 3 dhcp on)
F. linux伺服器怎麼搭建
方法一:安裝linux下的xampp,假如你不能離開管理工具,不習慣命令的話。方法二:單獨安裝包。如在redhatenterprise5.4下利用yum命令逐個安裝apache、mysql、php。安裝這三個就完成了LAMP完整的web伺服器結構。至於你說的GD庫是php內的一個庫,安裝php的時候應該都配備完全了,假如沒有你可以自己再下載添加。
G. linux伺服器怎麼搭建p
最近要涉及到伺服器的部署,用linux,所以新潮熱血,學了點linux伺服器的部署,配置,搭建,這里總結一下,不為別的,反正是日後留著來回顧一下就夠了,回憶一下大體步驟:
准備食材:
虛擬機:VMware_workstation_full_12.5.2
linux鏡像文件:ubuntu-14.04.1-desktop-amd64.iso
jdk1.8:jdk-8u11-linux-x64.tar.gz
tomcat:apache-tomcat-8.0.39-windows-x64.zip
首先,我需要一台虛擬機來構建自己的linux伺服器,於是搜索網上下載了VMvare,有很多,下了個最新的試試,感覺不錯,然後,再下個linux鏡像文件,在網上搜索下,虛擬機的安裝教程,一步一步的裝上,這里用了兩三天,主要是軟體問題,找了好多路子,但回頭一看,就用網上什麼系統之家,腳本之家,或者推薦的就行,從CSDN下載的一個也用不了,浪費了好多積分,讓我對它失望了一點,本來以為它是萬能的,不過沒事,路子多。也搜了好多文章,遇到點問題,如:系統不兼容,版本不匹配啥的,反正不好使就從來,一步一步,最後可算安成了,初次欣喜。
然後就是接下來重要的了,linux系統有了,可以先下個linux命令文檔,先敲一敲,因為我主要就是部署一下,也不用太多的命令,所以就學幾頁就不往下看了,以後有機會可以繼續看看。
熗鍋准備:先安裝個jdk,用得1.8,最新的,不過版本不重要,除非項目需要的jdk版本高,安裝好的linux很全,裡面的瀏覽器就可以下,注意是linux for jdk,要不然可不行。然後新建一個java文件夾在根目錄的(這里的根目錄要通過cd 再接/usr/進入,而不是home/xxx,可以通過pwd查看當前所在路徑)/usr/下,用來放置解壓後的jdk文件,這里因為後綴名是tar.gz所以直接用tar -xf 命令解壓,命令都是最簡單的,具體的中間-xf可以網路一下,不做詳解。
切菜:配置JDK的環境變數,這里用了點時間,因為感覺這個有點別扭,跟windows下不一樣,配置環境變數需要注意,自己的用戶可能沒有許可權,需要使用root許可權,而我剛開始許可權密碼不知道,就通過sudo passwd設置一下初始密碼,然後通過su root輸入密碼才進去的,當然密碼是看不見的。進去之後,到/etc/文件夾找到profile文件,通過文件編輯命令vi profile在文件的末尾加上變數參數:
JAVA_HOME=/usr/java/jdk1.8.0_11
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
這里是有不同,不用懷疑,比如說那個PATH,加進去之後:wq保存退出,然後可以查看一下,echo $PATH查看PATH,這時是沒有配上的,需要命令:source profile激活一下,把環境變數保存在profile里需要每次進來都要通過source激活一下,如果想只看不編輯文件的話可以輸入cat+文件名來查看。
炒菜:這下可以把下好的tomcat解壓到自定義的一個文件夾里了,我的是home/pengyy/tomcat/下,到config文件里修改一下埠號,vi命令編輯server.xml,裡面後來啟動的時候8005那個埠有沖突,我直接改了8088,然後又把http請求的埠改成了8001,OK,tomcat配置完成,沒什麼過多的步驟。
上菜:將一個完成的web項目打成war包,放在tomcat下的webapps里解壓,網上說,tomcat啟動情況下,放進去可以自動解壓,不過我的沒發生,不知道為啥,所以就人工解壓了,新建個文件夾,和項目根路徑相同,然後用jar -xvf xxx.war 命令解壓,不過如果報jar命令沒有找到,則是因為jdk環境變數,沒有激活的原因,這個地方我卡了好久,因為jar命令是基於jdk里的,除非你用unzip命令解壓,unzip命令的好處可以解壓並新建文件夾。不過我用著不好使,所以就用jar了,是麻煩了一點。
開吃:進入到tomcat下的bin目錄,輸入命令啟動:./start.sh&,終止命令是./shutdown.sh&,按TAB鍵時可以提示的哈,其實(./)是當前路徑的意思,可以不加&,如果加了,啟動或終止完事需要按ctrl+c返回到命令行。這樣項目就啟動了,可以查看日誌,去tomcat的logs目錄底下查看catalina.out日誌文件,可以通過cat查看文件命令,也可以tail -f(倒數多少行可以為數字) catalina.out來查看。如果埠號被佔用,可以用命令lsof -i:埠號 來查看埠號被佔用的進程號,或者停止該進程,或者修改tomcat的埠號都可以。而當你不確定是否終止了哪個項目的時候,可以通過輸入命令ps -ef|grep java來查看一下是否有在運行的項目,通過kill -9 進程號就可以幹掉哪個正在運行的項目了。最後通過ifconfig或者ip命令獲取虛擬機的Ip地址,在主機上通過ip+埠號+項目根路徑的方式訪問即可。
吃後感:感覺已經很詳細了,雖然有點啰嗦,但因為第一次寫,不僅是為了回顧一下,也是為了練練自己的總結能力,如果有太多錯誤的地方請及時指出,我會多加修改的,通過這次學習,感覺自己得到的好處真的不少,以前對這真是一竅不通,但,從安裝到遇到問題,到解決,到最後成功運行,幫助自己了解了太多的細節和不懂的地方,也許不是那麼精通,但已經比以前進步太多了。希望所有人都不只是去看一個東西,要多實踐才能往前走得更遠,加油!小小程序員。
附加甜點(命令):
cat(查看文本),
vi編輯文本命令:a(在字元右側插入),i(在字元左側插入),:wq,ZZ(保存退出),:q,q!(不保存退出) :w(保存繼續編輯),ctrl+F(翻頁),/字元(向後查找),?字元(向前查找),:!bash(退出,執行命令,exit返回繼續編輯),x(刪除單個字元),dd(刪除正行),u(回退修改)
mv file fileFolder(移動文件)
cp file fileFolder(復制文件)
rm -rf/f file(刪除文件夾/文件)
ls(查看文件目錄)
ls -a(查看所有文件包括隱藏)
ll(列出所有文件包括許可權等內容)
H. linux 文件伺服器怎麼搭建
在前面一個章節學習的FTP文件傳輸服務確確實實讓咱們在主機之間傳輸文件變得非常方便,但FTP協議的本質是傳輸文件,並不是共享文件,要想讓客戶端能夠直接在服務端上面修改文件內容還是比較麻煩的事情。於是在1987年時,由微軟和英特爾公司共同制訂了SMB伺服器通信協議(Server MessagesBlock),這項技術的誕生是為了解決區域網內的文件或列印機等資源的共享服務問題,讓多個主機之間共享文件變成越來越簡單。
後來到了1991年,當年還在讀大學的學生Tridgwell為了解決Linux與Windows系統之間的文件共享問題,便基於了這項SMB技術協議開發出了SMBserver這一款服務程序,SMBserver服務程序是一款基於SMB協議並由服務端和客戶端組成的開源文件共享軟體,通過非常簡單的配置就能夠實現Linux系統與Windows系統之間的文件共享工作。當時還在上學的Tridgwell想要把這款SMBServer軟體注冊成為商標,但卻被商標局以SMB是沒有意義的字元而拒絕了他的申請,經過Tridgwell不斷的翻看詞典,突然看到一個拉丁舞蹈的名字——SAMBA,如圖12-1所示,這個熱情洋溢的舞蹈名字中又恰好包含了SMB(SAMBA),於是這便是Samba服務程序名字的由來,現在已經成為了Linux系統與Windows系統之間共享文件的最佳選擇。
Samba服務程序的配置方法跟咱們以前學習過的服務很相似,首先咱們需要先通過yum軟體倉庫來安裝samba服務程序,這款軟體也恰巧是軟體包的名字,很好記吧~:
[root@linuxprobe~]#yuminstallsamba
Loadedplugins:langpacks,proct-id,subscription-manager
………………省略部分輸出信息………………
Installing:
sambax86_644.1.1-31.el7rhel527k
TransactionSummary
================================================================================
Install1Package
Totaldownloadsize:527k
Installedsize:1.5M
Isthisok[y/d/N]:y
Downloadingpackages:
Runningtransactioncheck
Runningtransactiontest
Transactiontestsucceeded
Runningtransaction
Installing:samba-4.1.1-31.el7.x86_641/1
Verifying:samba-4.1.1-31.el7.x86_641/1
Installed:
samba.x86_640:4.1.1-31.el7
Complete!
安裝後打開Samba服務程序的主配置後發現竟然有320行呢!有沒有被嚇到?但仔細一看發現其實大多都是以#(井號)開頭的注釋信息行,既然您手中已經擁有了劉遄老師的經驗之書,就肯定不會讓您去「死啃」這些東東的~:
[root@linuxprobe ~]# cat /etc/samba/smb.conf
# This is the main Samba configuration file. For detailed information about the
# options listed here, refer to the smb.conf(5) manual page. Samba has a huge
# number of configurable options, most of which are not shown in this example.
#
# The Official Samba 3.2.x HOWTO and Reference Guide contains step-by-step
# guides for installing, configuring, and using Samba:
# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf
#
# The Samba-3 by Example guide has working examples for smb.conf. This guide is
# generated daily: http://www.samba.org/samba/docs/Samba-Guide.pdf
#
# In this file, lines starting with a semicolon (;) or a hash (#) are
# comments and are ignored. This file uses hashes to denote commentary and
# semicolons for parts of the file you may wish to configure.
#
# Note: Run the "testparm" command after modifying this file to check for basic
# syntax errors.
#linuxprobe.com
………………省略部分輸出信息………………
由於這次配置文件中的注釋信息行實在太多,不便於分析裡面的重要參數,因此咱們可以先將配置文件改個名字,然後使用cat命令讀入主配置文件內容後通過grep命令-v參數(反向選擇)分別去掉所有以#(井號)和;(分號)開頭的注釋信息行,對於剩餘的空白行可以再用^$來表示並反選過濾,最後將過濾後的可用參數信息通過重定向符覆蓋寫入到原始文件名稱中即可。samba服務程序過濾後的參數並不復雜,為了更方便同學們查閱參數功能,劉遄老師在重要參數行後面都寫上了注釋說明:
[root@linuxprobe~]#mv/etc/samba/smb.conf/etc/samba/smb.conf.bak
[root@linuxprobe~]#cat/etc/samba/smb.conf.bak|grep-v"#"|grep-v";"|grep-v"^$">/etc/samba/smb.conf
[root@linuxprobe~]#cat/etc/samba/smb.conf
I. Linux伺服器搭建實戰詳解的目錄
第1章 Linux系統概述 1
1.1 Linux的發展 1
1.2 Linux常見版本 2
1.2.1 Red Hat Linux 2
1.2.2 Debian Linux 2
1.2.3 Ubuntu Linux 3
1.3 Linux操作系統 3
1.3.1 Linux操作系統結構 3
1.3.2 Linux操作系統特點 5
1.3.3 Linux操作系統的應用領域 6
1.3.4 Red Hat Enterprise Linux 5 7
1.4 Red Hat Enterprise Linux 5的兩個版本 8
1.5 安裝和管理Red Hat Enterprise Linux 8
1.5.1 安裝前的准備 8
1.5.2 與其他操作系統並存的問題 10
1.5.3 Red Hat Enterprise Linux的安裝階段 11
1.6 Linux操作系統的引導與登錄 19
1.6.1 多系統引導管理器——GRUB及LILO 19
1.6.2 Linux的啟動過程 20
1.6.3 Linux的關閉與重新引導 20
1.6.4 Linux系統的登錄和退出 20
1.7 GNOME和KDE桌面管理器 22
1.7.1 GNOME桌面環境 23
1.7.2 KDE桌面環境 31
1.7.3 定製自己的桌面 42
第2章 FTP伺服器 45
2.1 FTP服務簡介 45
2.1.1 FTP工作原理 45
2.1.2 匿名用戶訪問的產生 46
2.1.3 FTP服務的連接模式 46
2.1.4 幾種流行的FTP伺服器軟體 48
2.2 安裝vsFTPd服務 49
2.2.1 安裝vsFTPd軟體 49
2.2.2 FTP服務的啟動與關閉 50
2.3 vsFTPd的相關配置 52
2.3.1 配置匿名用戶登錄環境 53
2.3.2 監聽地址與控制埠 53
2.3.3 FTP模式與數據埠 54
2.3.4 ASCII模式 55
2.3.5 超時選項 55
2.3.6 負載控制 55
2.3.7 用戶設置 56
2.3.8 用戶登錄控制 57
2.3.9 目錄訪問控制 57
2.3.10 文件操作控制 58
2.3.11 新增文件許可權設置 58
2.3.12 日誌設置 58
2.4 安裝與配置PureFTPD伺服器的 59
2.4.1 安裝Apache服務 59
2.4.2 安裝MySQL資料庫 61
2.4.3 安裝PureFTPD 62
2.4.4 生成PureFTPD服務管理腳本 64
2.4.5 配置匿名用戶登錄環境 64
2.4.6 安裝Zend Optimizer 65
2.4.7 WebPureFTP的安裝與配置 66
2.4.8 生成MySQL資料庫 67
2.4.9 生成pure-ftpd資料庫配置文件 68
2.4.10 使用webpureftp管理虛擬用戶 68
2.5 FTP伺服器的訪問 69
2.5.1 Linux環境下訪問FTP伺服器 69
2.5.2 Windows環境下訪問FTP伺服器 70
第3章 電子郵件伺服器 71
3.1 電子郵件服務概述 71
3.1.1 電子郵件服務簡介 71
3.1.2 郵件專有名詞解釋 72
3.1.3 POP3與SMTP協議 73
3.2 Postfix郵件伺服器 74
3.2.1 安裝Postfix郵件伺服器 74
3.2.2 Postfix配置文件 76
3.2.3 Postfix基本配置 77
3.2.4 虛擬別名域 80
3.2.5 用戶別名 80
3.2.6 SMTP認證 81
3.2.7 啟動和停止Postfix服務 83
3.2.8 配置與訪問電子郵件客戶端 84
3.3 POP和IMAP郵件服務 87
3.3.1 dovecot服務 87
3.3.2 CyrusImapd服務 88
3.4 Web支持電子郵件 92
3.4.1 Squirrelmail的安裝與配置 92
3.4.2 登錄Squirrelmail 94
第4章 Web伺服器 95
4.1 Web概述 95
4.1.1 Web服務簡介 95
4.1.2 HTTP協議簡介 96
4.1.3 Web伺服器軟體 99
4.2 Apache概述 99
4.2.1 Apache的誕生 100
4.2.2 安裝Apache服務 101
4.3 啟動與停止Apache服務 103
4.4 Apache服務的基本配置方法 106
4.4.1 httpd.conf配置文件 106
4.4.2 Apache服務主配置文件的構成 107
4.5 Apache伺服器控制存取的方式 112
4.5.1 Options選項 113
4.5.2 瀏覽許可權的設置 113
4.6 Apache服務的高級配置 116
4.6.1 虛擬目錄簡介 116
4.6.2 配置與管理虛擬主機 117
4.6.3 用戶認證和授權 119
4.6.4 配置SSI 123
4.6.5 MIME類型簡介 124
4.7 創建並配置動態網站 124
4.7.1 創建並配置JSP動態網站 124
4.7.2 創建並配置CGI動態網站 131
第5章 DHCP伺服器 133
5.1 DHCP服務概述 133
5.1.1 DHCP服務的實現原理 133
5.1.2 IP地址租約和更新 134
5.1.3 DHCP伺服器分配的IP地址類型 135
5.2 安裝DHCP服務 137
5.2.1 做好DHCP伺服器安裝前的准備 137
5.2.2 安裝DHCP服務的方法 138
5.2.3 啟動及停止DHCP服務 141
5.3 配置DHCP服務 142
5.3.1 DHCP配置文件及格式 142
5.3.2 配置IP作用域 145
5.3.3 配置客戶機的IP 選項 146
5.3.4 設置租約期限 147
5.3.5 保留特定的IP地址 147
5.3.6 多網段的IP地址的分配 148
5.3.7 DHCP伺服器配置實例 149
5.4 配置DHCP客戶機 150
5.4.1 以Linux操作系統作為客戶端配置 150
5.4.2 以Windows操作系統作為客戶端配置 152
第6章 DNS伺服器 155
6.1 DNS服務概述 155
6.1.1 DNS服務簡介 155
6.1.2 DNS提供的服務 156
6.1.3 DNS查詢原理和規劃 156
6.1.4 DNS域名解析 158
6.2 DNS服務的安裝 158
6.2.1 安裝DNS服務 159
6.2.2 安裝Chroot軟體包 159
6.2.3 DNS服務的啟動與停止 160
6.3 配置主要名稱伺服器 161
6.3.1 主配置文件 161
6.3.2 設置根區域和主區域 162
6.3.3 設置反向解析區域 165
6.3.4 根伺服器信息文件 166
6.3.5 區域文件 166
6.3.6 反向解析區域文件 169
6.3.7 功能實現 170
6.3.8 測試DNS伺服器 170
6.4 配置輔助DNS伺服器 174
6.5 配置緩存Cache-only伺服器 175
6.6 DNS客戶端的配置 176
6.6.1 在Linux下配置DNS客戶端 176
6.6.2 在Windows下配置DNS客戶端 177
第7章 代理伺服器 179
7.1 代理伺服器概述 179
7.1.1 代理伺服器的工作流程 179
7.1.2 代理伺服器的作用及相關應用 180
7.2 安裝Squid Server 181
7.2.1 Squid簡介 181
7.2.2 Squid Server的安裝 182
7.3 Squid Server的基本配置 184
7.3.1 設置監聽的IP和埠 184
7.3.2 設置緩存大小 184
7.3.3 訪問控制設置 186
7.3.4 指定Squid可以使用內存的理想值 188
7.3.5 其他參數設置 188
7.3.6 設置錯誤提示為中文 189
7.3.7 初始化Squid Server 189
7.4 啟動與停止代理伺服器 192
7.4.1 設置Squid服務隨系統的啟動而自動啟動 193
7.4.2 重新載入配置文件 195
7.5 Squid Server高級配置 195
7.5.1 實現透明代理 195
7.5.2 Squid安全設置 197
7.5.3 Squid外部程序支持選項 199
7.6 Squid日誌管理 199
7.6.1 日誌選項 199
7.6.2 Squid代理伺服器日誌系統的構成 199
7.6.3 日誌及流量分析軟體——Webalizer 200
7.6.4 Webalizer軟體的應用 204
7.7 不同環境下的代理客戶端的配置 205
7.7.1 Linux系統下Firefox代理設置 205
7.7.2 Windows系統下IE代理配置 207
第8章 Samba伺服器 209
8.1 Samba服務概述 209
8.1.1 Samba服務簡介 209
8.1.2 Samba服務的安裝 209
8.1.3 Samba服務的圖形化配置方法 212
8.1.4 啟動、停止和重啟Samba服務 216
8.2 Samba服務的配置文件 216
8.2.1 Samba服務的主要配置文件 217
8.2.2 Samba服務的密碼文件 217
8.2.3 Samba服務的日誌文件 218
8.3 smb.conf文件詳解 218
8.3.1 smb.conf文件結構 219
8.3.2 smb.conf文件的語法和變數 220
8.3.3 smb.conf文件詳解 220
8.3.4 smb.conf文件中的段 223
8.3.5 Samba服務具體參數設置 223
8.4 Samba服務功能實現 225
8.4.1 指定Samba所要加入的工作組 225
8.4.2 注釋說明伺服器 226
8.4.3 限制可訪問伺服器IP地址的范圍 226
8.4.4 列印機設置 227
8.4.5 設置guest賬號匿名登錄 228
8.4.6 設置日誌文件名、存放路徑及大小 228
8.4.7 伺服器安全設置 229
8.4.8 具體的共享設置 232
8.5 共享的資源訪問 234
8.5.1 不同客戶端主機的資源訪問 234
8.5.2 本機Windows分區和Linux分區的資源互訪 235
第9章 NFS伺服器 237
9.1 NFS服務簡介 237
9.1.1 使用NFS的優勢 237
9.1.2 NFS服務的組件 238
9.2 RPC簡介 238
9.3 安裝並配置NFS服務 239
9.3.1 安裝NFS服務 239
9.3.2 配置NFS服務 240
9.3.3 NFS文件的存取許可權 242
9.4 啟動與停止NFS服務 243
9.5 在客戶端掛載NFS文件系統 244
9.5.1 查看NFS伺服器信息 244
9.5.2 載入NFS伺服器共享目錄 245
9.5.3 自動掛接NFS文件系統 246
第10章 LDAP目錄服務 247
10.1 目錄服務概述 247
10.1.1 X.500簡介 247
10.1.2 初識LDAP 248
10.1.3 X.500與LDAP 251
10.1.4 流行的目錄服務產品 252
10.2 深入認識LDAP 254
10.2.1 LDAP的幾種基本模型 254
10.2.2 如何規劃目錄樹 256
10.2.3 LDAP的應用領域 257
10.3 安裝LDAP 257
10.3.1 安裝Berkeley DB 257
10.3.2 安裝OpenLDAP 260
10.4 配置OpenLDAP 261
10.4.1 OpenLDAP的基本配置 261
10.4.2 啟動OpenLDAP伺服器 262
10.5 為OpenLDAP建立初始化數據 263
10.6 LDAP圖形界面管理工具簡介 264
10.6.1 主要的LDAP圖形界面管理工具 264
10.6.2 安裝phpLDAPadmin 266
10.7 配置phpLDAPadmin 268
10.7.1 生成phpLDAPadmin主配置文件 268
10.7.2 phpLDAPadmin的基本配置 268
10.8 使用OpenLDAPadmin管理目錄樹 271
10.8.1 進入phpLDAPadmin 271
10.8.2 創建組織單元 272
10.8.3 創建用戶組 274
10.8.4 創建用戶賬號 276
10.9 實現LDAP服務的身份驗證 277
10.9.1 實現Linux系統用戶驗證 277
10.9.2 實現FTP用戶驗證 279
10.9.3 實現Web用戶驗證 280
第11章 SSH伺服器 281
11.1 SSH服務概述 281
11.1.1 SSH服務簡介 281
11.1.2 公鑰加密體系結構 282
11.2 SSH服務的安裝 283
11.3 配置SSH伺服器 283
11.4 SSH服務的啟動和停止 286
11.4.1 啟動SSH服務 286
11.4.2 重啟SSH服務 287
11.4.3 自動啟動SSH服務 287
11.4.4 停止SSH服務 288
11.5 使用SSH客戶端 288
11.5.1 SSH客戶端在Windows平台下的使用 288
11.5.2 SSH客戶端在Linux平台下的使用 289
第12章 MySQL資料庫的配置 293
12.1 MySQL概述 293
12.1.1 MySQL簡介 293
12.1.2 MySQL的應用領域 294
12.2 安裝MySQL 295
12.2.1 安裝前的准備 295
12.2.2 MySQL的具體安裝過程 295
12.3 啟動與停止MySQLD服務 298
12.4 配置及使用MySQL服務 298
12.4.1 修改MySQL管理員的口令 299
12.4.2 MySQL資料庫的創建和使用 299
12.4.3 MySQL數據表的創建和使用 300
12.4.4 索引的創建和刪除 304
12.4.5 用戶的創建和刪除 305
12.4.6 用戶許可權的設置 306
12.5 圖形化配置MySQL 309
12.5.1 安裝phpMyAdmin 309
12.5.2 配置phpMyAdmin虛擬目錄 310
12.5.3 使用phpMyAdmin 311
第13章 使用Webmin配置各種服務 313
13.1 Webmin的概述 313
13.1.1 Webmin簡介 313
13.1.2 Webmin特性 313
13.1.3 Webmin主要功能 314
13.2 安裝和配置Webmin 317
13.2.1 Perl語言解釋器的安裝 318
13.2.2 Net-SSLeay perl和OpenSSL的安裝 318
13.2.3 安裝與訪問Webmin 319
13.2.4 設置Webmin為中文界面 321
13.2.5 停止和啟動Webmin服務 322
13.3 用Webmin配置服務 323
13.3.1 Samba服務的配置 323
13.3.2 NFS服務的配置 327
13.3.3 DNS服務的配置 328
13.3.4 Web服務的配置 331
13.3.5 網路防火牆與NAT服務配置 336
13.3.6 代理服務配置 342
13.3.7 SSH服務的配置 349
第14章 Linux命令行 351
14.1 Linux Shell概述 351
14.1.1 Linux Shell簡介 351
14.1.2 系統默認Shell——Bash Shell 351
14.1.3 設置使用其他Shell 352
14.2 啟動Shell 353
14.2.1 終端啟動Shell 353
14.2.2 直接啟用Shell 354
14.2.3 直接啟動命令行窗口 354
14.3 Shell指令詳解 355
14.3.1 目錄及文件管理指令 355
14.3.2 信息顯示指令 360
14.3.3 網路基本配置指令 363
14.3.4 關機和注銷指令 366
14.4 配置Shell環境 367
14.4.1 Shell環境變數 367
14.4.2 環境變數設置 369
14.4.3 Shell環境配置文件 370
14.5 使用vim文本編輯器 371
14.5.1 vim編輯器簡介 371
14.5.2 常用vim指令 372
14.5.3 vim的定製 376
第15章 Linux操作系統中的 網路連通性測試 377
15.1 網路線路的連通性測試 377
15.1.1 雙絞線的線芯 377
15.1.2 測試直通雙絞線 378
15.1.3 測試交叉雙絞線 378
15.1.4 利用ping命令測試網路連通性 379
15.2 路由跟蹤 382
15.2.1 traceroute命令 382
15.2.2 traceroute顯示代碼 383
15.2.3 traceroute命令選項的應用 384
15.3 Linux圖形界面下測試網路 386
15.3.1 進入「Network Tools」窗口 386
15.3.2 網路設備查詢 387
15.3.3 網路連通性測試 387
15.3.4 網路信息統計 388
15.3.5 網路路由跟蹤 388
15.3.6 網路埠掃描 389
15.3.7 網路查閱 389
15.3.8 查詢登錄用戶的信息 390
15.3.9 域名查詢工具 390
第16章 Linux網路管理 391
16.1 靜態IP地址管理工具 391
16.1.1 IP地址 391
16.1.2 子網掩碼 392
16.1.3 TCP/IP配置文件 392
16.1.4 在圖形界面下配置乙太網絡 392
16.1.5 在命令模式下配置乙太網 397
16.2 動態IP地址分配工具 400
16.2.1 獲取動態IP地址 400
16.2.2 安裝DHCP服務 401
16.2.3 DHCP服務的啟動與停止 404
16.2.4 DHCP服務的配置 405
16.3 網路地址表管理工具 407
16.3.1 顯示ARP緩存 407
16.3.2 管理ARP緩存 408
第17章 軟體基礎管理 409
17.1 Kickstart簡介 409
17.1.1 安裝Kickstart 409
17.1.2 Debian/Ubuntu的自動化安裝 419
17.2 Linux操作系統中的軟體包管理 420
17.2.1 RPM簡介 420
17.2.2 RPM軟體包管理系統的應用 423
17.3 Debian的軟體包管理系統 434
17.3.1 DPKG簡介 434
17.3.2 DPKG軟體包管理系統應用 435
第18章 軟體包高級管理 441
18.1 APT——高級軟體包管理 441
18.1.1 APT概述 441
18.1.2 應用APT軟體包管理系統 442
18.2 YUM——智能化的RPM軟體包管理 452
18.2.1 YUM概述 452
18.2.2 應用YUM軟體包管理系統 453
18.3 Linux內核的升級 462
18.3.1 獲取內核源代碼 463
18.3.2 配置內核 464
18.3.3 編譯內核 467
18.3.4 安裝內核 469
第19章 用戶和進程管理 471
19.1 用戶管理 471
19.1.1 用戶賬號文件 471
19.1.2 用戶群組文件 474
19.1.3 命令行方式的用戶管理 476
19.1.4 圖形界面方式的用戶管理 486
19.1.5 命令行方式的群組管理 486
19.2 進程管理 490
19.2.1 進程及作業 490
19.2.2 進程式控制制 490
19.2.3 作業控制 494
第20章 管理Linux文件系統及磁碟 497
20.1 管理Linux文件系統 497
20.1.1 Linux文件系統結構 497
20.1.2 常見的文件系統 497
20.1.3 文件類型 498
20.1.4 文件壓縮與歸檔 498
20.1.5 文件鏈接 503
20.1.6 安裝文件系統 505
20.2 磁碟管理 507
20.2.1 硬碟簡介 507
20.2.2 管理磁碟分區 509
20.2.3 使用磁碟管理命令 529
20.2.4 磁碟配額管理問題 539
第21章 Linux系統安全 549
21.1 系統安全基礎設置 549
21.1.1 BIOS安全 549
21.1.2 賬號安全 549
21.2 系統安全高級設置 552
21.2.1 重要文件 552
21.2.2 防止攻擊系統 553
21.2.3 開啟安全服務 555
21.2.4 審計日誌 556
21.2.5 文件和目錄許可 558
J. linux怎麼搭建ftp伺服器
FTP 是文件傳輸協議(File Transfer Protocol)的縮寫。顧名思義,FTP用於計算機之間通過網路進行文件傳輸。你可以通過FTP在計算機賬戶間進行文件傳輸,也可以在賬戶和桌面計算機之間傳輸文件,或者訪問在線軟體歸檔。但是,需要注意的是多數的FTP站點的使用率非常高,可能需要多次重連才能連接上。 今天來說一下在RHEL5下使用VSftpd來搭建ftp伺服器,在搭建之前首先要考慮自己的工作環境,我搭建ftp干什麼,公司的具體要求是什麼,然後再根據公司的需求來具體實施。下面是搭建的具體實驗步驟: 一、首先確定系統中已經安裝了VSftpd軟體包,可以使用如下命令來查看並安裝: liwei@linux# rpm -qagrep vsftpd (如果有的話執行第二條就行了,若沒安裝,可以使用如下命令來安裝) liwei@linux# mount /dev/cdrom /media //掛載光碟到系統中 liwei@linux# rpm -vih /media/Server/vsftpd-版本號 //安裝VSftpd 二、安裝好VSftpd軟體包後,然後就是給伺服器配置一個靜態IP地址,當然動態也可以,但一般伺服器最好使用靜態IP。配置IP地址的方法如下,我以配置192.168.0.1地址為例: liwei@linux# vi /etc/sysconfig/network-scritps/ifcfg-eth0 在打開的配置文件中修改: 復制代碼代碼如下: DEVICE=eth0 BOOTPROTO=static HAWADDR=00:0C:29:A2:8B:B8 ONBOOT=yes IPADDR=192.168.0.1 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 三、配置好IP地址後,然後就可以根據你自己的要求來修改vsftpd的配置文件來達到你的目標了,vsftpd的主配置文件為/etc/vsftpd/vsftpd.conf。下面用幾個例子來說明一下vsftpd的各個配置選項的作用。 1.匿名用戶配置: 在vsftpd.conf配置文件中,默認是允許匿名用戶登錄FTP伺服器的,但不允許上傳文件、不允許在伺服器上創建目錄,我們可以修改以下一些配置項來達到自己的要求: 復制代碼代碼如下: anonymous_enable=YES //接受匿名用戶 no_anon_password=YES //匿名用戶登錄時不詢問口令 anon_root=目錄路徑 //匿名用戶登錄後所在的位置,可以根據自己的實際需求來修改 write_enable=YES //可以上傳(全局控制) file_open_mode=0666 //上傳文件的許可權,配合umask使用 anon_upload_enable=NO //匿名用戶可以上傳 anon_mkdir_write_enable=YES //匿名用戶可以建立目錄 anon_other_write_enable=YES //匿名用戶可以重名名、刪除等許可權 anon_world_readable_only=YES //如果設為YES,匿名用戶登入者會被允許下載可閱讀的文檔 chown_uploads=YES //所有匿名上傳的文件的所屬用戶將會被更改為chown_username chown_username=user //匿名上傳文件所屬用戶名 除了以上這些匿名用戶的選項外我們還可以添加一些設置FTP伺服器的公共選項,通過這些選項可以為FTP伺服器設置一些不同的歡迎信息。 復制代碼代碼如下: ftpd_banner=Welcom to my FTP Server!!! //登錄時顯示的歡迎信息 dirmessage_enable=YES //允許為目錄配置顯示信息,顯示每個目錄下面message_file文件的內容 setproctitle_enable=YES //顯示會話狀態信息 下面來舉個例子來說明一下匿名用戶的應用: 為了公司的員工工作方便,公司決定搭建一台FTP伺服器,要達到的功能如下: 1.允許公司的任何員工把自己的一些文檔傳上FTP伺服器上保存起來以便下次使用, 2.允許員工自己創建目錄 3.員工登錄成功後顯示歡迎信息 如果要達到以上的要求只需要在vsftpd.conf配置文件中修改以下選項就OK了,如果默認沒有一些選項,可以自己手動添加: 復制代碼代碼如下: anonymous_enable=YES write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES ftpd_banner=Welcom to my FTP Server!!! 注意:如果只設置了anon_upload_enable=YES,但選項write_enabl未設置(或者設置成了NO),則匿名用戶仍然不能上傳文件。還有別忘記了修改FTP所處的文件夾的許可權。 修改完以上配置文件後,使用命令service vsftpd restart重啟一下vsftpd服務然後測試就OK了,其實上面這個例子很不安全,我只是舉個例子,如果實際中使用,可以使用下面講到的另兩種方法都可以。 2.本地用戶配置: 復制代碼代碼如下: local_enable=YES //啟用本地用戶 local_umask=022 //本地用戶上傳的文件的許可權,可以參考linux許可權部分來了解 local_root=目錄路徑 //本地用戶登錄FTP伺服器後所處的目錄 chroot_local_user=YES //限制本地用戶的根目錄為自己的主目錄 chroot_list_enable=YES //如果啟動這項功能,則所有列在chroot_list_file之中的使用者都不能更改根目錄 chroot_list_file=限制的用戶所處的文件路徑 在FTP伺服器上通常會有很多的本地用戶,那麼有時候我們希望一些用戶可以登錄FTP伺服器,而有的用戶我們不希望他們登錄,遇到這種情況該怎麼解決呢?可以使用如下選項來實現些功能: 復制代碼代碼如下: userlist_enable=YES //啟用userlist功能模塊 userlist_deny=YES //拒絕userlist文件中列出的用戶登錄FTP伺服器 userlist_file=userlist文件的的路徑 以上選項的意思就是我們假如不想讓一部分人登錄FTP伺服器,那麼我們可以寫一個文件把這些用戶加入到這個文件中去,然後把上面這個功能打開然後在userlist_file選項那指向這個文件的所在地,這樣這個文件中的用戶就不能登錄FTP伺服器了。相反假如我們userlist_deny設置成NO的話,意思就是userlist_file指向的那個文件里的用戶可以登錄FTP伺服器,其它用戶則不能登錄FTP伺服器。 本地用戶的應用比較簡單,只要系統中可以登錄的用戶要登錄FTP伺服器,直接輸入系統的用戶名和密碼就可以登錄了,默認登錄後是在自己的家目錄里,也就是/home/用戶文件夾里。許可權的控制就是修改這個目錄的許可權來控制就OK了。如果想控制某些用戶禁止登錄,則可以按照上面的userlist功能來進行限制就行了。 除了以上匿名用戶和本地用戶外的一些參數外還有網路和連接參數及下面會提到的日誌功能配置。 四、網路和連接參數配置, 下面是一些常用的網路和連接參數: 復制代碼代碼如下: max_clients=1000 //可接受的最大連接數,可以根據自己的實際情況來修改 max_per_ip=5 //每個IP地址的最大連接數,可以根據自己的實際情況來修改 anon_max_rate=51200 //匿名用戶的帶寬(b/s) local_max_rate=5120000 //本地用戶的帶寬(b/s) idle_session_timeout=600 //空閑連接超時時間 data_connection_timeout=120 //數據傳輸超時時間 ACCEPT_TIMEOUT=60 //PAVS請求超時時間 connect_timeout=60 //PORT模式連接超時時間 connect_from_port_20=YES //使用標準的20埠來連接FTP listen_address=地址或網段 //綁定到某個IP或網段,其他IP不能訪問該FTP listen_port=2121 //綁定到某個埠 ftp_data_port=2020 //數據傳輸埠 pasv_max_port=0 //PASV連接模式時可以使用port范圍的上界,0表示任意。 pasv_min_port=0 //PASV連接模式時可以使用port范圍的下界,0表示任意。 以上各個選項後都有說明,有需要的可以自己根據自己的情況來添加,這里就不再詳述了。其中PORT模式是FTP工作模式中的主動模式,PASV模式是FTP工作模式中的被動模式。 五、日誌功能配置 vsftpd可啟用日誌功能,這樣,文件的上傳與下載信息將被完整地記錄在xferlog_file選項所設置的日誌文件中,設置日誌功能的選項如下: 復制代碼代碼如下: xferlog_enable=YES //開啟日誌功能 xferlog_file=文件路徑 //日誌文件的存放位置 xferlog_std_format=YES //使用標准格式記錄日誌 vsftpd的專用日誌模式配置選項: 復制代碼代碼如下: al_log_enable=YES //採用vsftpd自己專用的日誌記錄方式 log_ftp_enable=YES //記錄所有的FTP命令日誌 vsftpd_log_file=文件路徑 //指定vsftpd日誌文件的位置 當以上兩種日誌功能都設置為NO時,還可以使用系統日誌來記錄FTP的日誌,設置選項如下: syslog_enable=YES //啟用後,默認的日誌寫入到/var/log/messages里 雖然可以使用這種方式來記錄FTP日誌,但是推薦使用最上面的兩種,因為這樣查看日誌時候比較清楚,容易分析日誌。 六、其他常用選項設置 復制代碼代碼如下: ascii_upload_enable=YES //用ASCII模式上傳, ascii_download_enable=YES //用ASCII模式下載 dirmessage_enable=YES //設置每個子目錄的歡迎信息。 banner_file=文件路徑 //設置歡迎信息的文件 ls_recurse_enable=YES //允許用戶使用ls -R命令 pam_service_name=vsftpd //定義PAM使用的名稱,默認為vsftpd guest_enable=YES //將所有的非匿名用戶都視為guest,即啟用虛擬用戶 guest_username=virtual //定義guest的使用者名稱