joyfire的linux1系統(tǒng)管理—6網(wǎng)絡(luò)服務(wù)
網(wǎng)絡(luò)服務(wù) 目 錄1. 網(wǎng)絡(luò)服務(wù)1. wu-ftpd2. smbd3. apache 虛擬服務(wù)器4. apache php3 mysql5. apache apacheJserv6. ap
網(wǎng)絡(luò)服務(wù) 目 錄
1. 網(wǎng)絡(luò)服務(wù)
1. wu-ftpd
2. smbd
3. apache 虛擬服務(wù)器
4. apache php3 mysql
5. apache apacheJserv
6. apache tomcat 7. java 環(huán)境(中文)
8. sendmaild
1. sendmail 扮演的角色
2. 如何運行sendmail
3. sendmail.cf
4. 郵件中樞與分發(fā)代理
5. 宏
6. 規(guī)則
7. 規(guī)則集0
9. qmail
10. router
11. cvs
12. bind
13. openssh
1. 簡單使用
2. 配置文件
3. scp
4. 使用key 做驗證
5. rsync 與ssh 配合使用
6. cvs
14. Khttpd
網(wǎng)絡(luò)服務(wù)
[目錄]
,wu-ftpd
chmod 777 /home/ftpd/incoming
chown ftp /home/ftpd/incoming
chgrp ftp /home/ftpd/incoming
改etc 下的ftpaccess, 我的是這樣:
loginfails 2
class local real,guest,anonymous *.domain 0.0.0.0
class remote real,guest,anonymous *
limit local 20 Any /etc/msgs/msg.toomany
limit remote 100 SaSu|Any1800-0600 /etc/msgs/msg.toomany
limit remote 60 Any /etc/msgs/msg.toomany
readme README* login
readme README* cwd=*
message /welcome.msg login
message .message cwd=*
compress yes local remote
tar yes local remote
# allow use of private file for SITE GROUP and SITE GPASS?
private yes
# passwd-check
passwd-check rfc822 warn
log commands real
log transfers anonymous,real inbound,outbound
shutdown /etc/shutmsg
# all the following default to "yes" for everybody
delete no guest,anonymous # delete permission? overwrite no guest,anonymous # overwrite permission? rename no guest,anonymous # rename permission?
chmod no anonymous # chmod permission? umask no anonymous # umask permission? # specify the upload directory information
upload /home/ftp /pub no
upload /home/ftp /pub1 no
,upload /home/ftp /incoming yes
upload /home/ftp /pub1/incoming yes
upload /home/ftp /bin no
upload /home/ftp /etc no
# directory aliases... [note, the ":" is not required]
alias inc: /incoming
# cdpath
cdpath /incoming
cdpath /pub
cdpath /
# path-filter...
path-filter anonymous /etc/pathmsg ^[-A-Za-z0-9_.]*$ ^. ^-
path-filter guest /etc/pathmsg ^[-A-Za-z0-9_.]*$ ^. ^- # specify which group of users will be treated as "guests".
guestgroup ftponly
email user@hostname
[目錄]
smbd
更改/etc/smb.conf,主要要確定下面的內(nèi)容:
workgroup=MYWKGP
smb passwd file=/etc/smbpasswd
security=user (使用unix 用戶安全)
encrypt passwords= yes
然后就可以添加目錄了, 首先添加宿主目錄:
(其實就是把對應(yīng)的行的注釋去掉)
[homes]
comment = home directory
browseable = no
writeable= yes
還可以再加一個共享目錄:
[public]
comment = public directory
path=/public
public=yes
writeable=no
read only=yes
,printable=no
最后當(dāng)然是加入用戶, 比如想把fake 用戶當(dāng)成windows 系統(tǒng)中的winfake, 執(zhí)行 smbadduser fake:winfake
輸入訪問口令, 以后在windows 98中只要提供winfake 和對應(yīng)口令
就可以訪問/home/fake和/public目錄
有時windows 95/98會出現(xiàn)一些兼容問題, 研究encrypt passwords=那一行吧 ================================================================== 最好用swat 來設(shè)置吧,把/etc/inet.conf最后swat 前的注釋去掉
然后重啟inetd ,就可以通過任意一個機器用瀏覽器來配置了
輸入地址http://samba_server:901/即可
95/98/nt都可以的說,還好這里什么機器都有,嘿嘿,都可以互相
訪問的,包括打印,95/98網(wǎng)絡(luò)登錄時要用samba 里的用戶名哦
[global]
workgroup = IPC
netbios name = DATASERVER
server string = Data Server - Linux
encrypt passwords = Yes
log file = /var/log/samba/log.m
max log size = 50
#這三行設(shè)置超時,還沒搞清楚,不過這樣馬馬虎虎能工作,一定要設(shè)
#否則mount 上的設(shè)備umount 不掉,一直busy 的說,:PP
change notify timeout = 30
deadtime = 1
keepalive = 0
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = No
#這三行是umask 的設(shè)置,看情況設(shè)置吧
create mask = 0755
force create mode = 0755
force directory mode = 0755
#用戶的home 目錄,根據(jù)用戶不同而變化,本來就有的,不是我加的說
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
,path = /var/spool/samba
print ok = Yes
browseable = No
#我自己加的一個共享目錄
[public]
comment = Public Software
path = /home/ftp/pub
guest ok = Yes
[目錄]
apache 虛擬服務(wù)器
多域名單IP 的:
1. 首先要解決域名的問題, 你可以用nslookup <你的域名>看看該域名是不是指向了你IP, *.yeah.net本來就是做的虛擬主機, 所以解析出來都是指向www.yeah.net (202.96.152.198), 通常情況下, apache啟動時會檢查你用作虛擬主機的域名。
2. 改httpd.conf, 加
ServerAdmin I007@263.net
DocumentRoot /home/I007/public_html
ServerName I007.com (這里只能寫域名)
多IP 的:
1. 最好每個IP 還是能對應(yīng)一個域名
2. 加載ip_alias模塊 (/sbin/insmod ip_alias)
3. 加IP (/sbin/ifconfig eth?:? ???.???.???.???)
4. 改httpd.conf, 和上面差不多
可以看出, 兩者可以共存, 以上均做過實驗, 沒有問題..
[目錄]
apache php3 mysql
,*安裝apache-devel rpm包.
*安裝MySQL 相關(guān)的包.
rpm -ivh MySQL-3.22.25-1.i386.rpm
rpm -ivh MySQL-client-3.22.25-1.i386.rpm
rpm -ivh MySQL-devel-3.22.25-1.i386.rpm
*下載php3源文件php-3.0.tar.gz
*解開源文件
tar xzvf php-3.0.tar.gz
*進入php-3.0源文件目錄
./configure --with-mysql=/usr --with-apxs=/usr/sbin/apxs --with-config-file -path=/etc/httpd (還有其他選項, 可以運行 ./configure --help 看看)
*建一個modules 目錄
mkdir modules
*進入regex 目錄
運行 make r (這一步可能不必要)
運行 make lib
*退回上一級目錄
運行 make install
* cp modules/libphp3.so /etc/httpd/modules/
* cp php3.ini-dist /etc/httpd/php3.ini
* 修改/etc/httpd/conf/httpd.conf 加入
LoadModule php3_module modules/libphp3.so
AddModule mod_php3.c
修改/etc/httpd/conf/srm.conf 加入
AddType application/x-http-php3 .php3
*重起apache
/etc/rc.d/init.d/httpd restart
*測試
查看mysqld 是否已經(jīng)運行. 如果沒有, 先運行mysqld
將php3源文件下tests 目錄下的mysql 文件拷貝到 /home/httpd/html目錄下 lynx localhost/mysql.php3
如果有問題, 可以將mysql.php3中的127.0.0.1改為localhost
[目錄]
apache apacheJserv
============================================================================= 環(huán)境:mdk7
首先使用BJLC 光盤上的jdk1.2pre2
具體裝過程略
rpm: apache-1.3.9 apache-devel jsdk-2.0
,tgz: Apache-Jserv1.1 gnujsp-1.0.0
解開Jserv 的src
./configure --enable-EAPI --with-JSDK=/usr/lib/classes/jsdk.jar --with-apxs=/usr/sbin/apxs
應(yīng)該沒有問題, 很順利編譯通過
再/etc/httpd/conf/httpd.conf
在最后(一定要在最后否則有很多小麻煩)
Include ./jserv/jserv.conf
重新啟動apache
如果能看到應(yīng)該就差不多了
試http://localhost/jserv/
一般是403 forbidden
如果是forbidden
修改
jserv.conf
搜索Location
里面有一段allow
改成allow localhost.localdomain
好像就可以了
用localhost 或者是127.0.0.1都不行
反正這是我碰到的倒霉事希望大家能一次成功
到這apache-jserv 就算是完成了, 也就是有了
一個servlet 容器并且有了在apache 里面的模塊
能夠同這個容器進行通信, 通信協(xié)議最好用
apjv12, 反正所由地方都設(shè)成apjv12就沒有問題
否則很可能出現(xiàn)不匹配的情況, 最后導(dǎo)致
500錯誤, 在log 中顯示malformed fata
前面提到servlet 容器建好了
Jserv 調(diào)通了, 還有兩個很有用的log 文件
在我的mdk7里面是
/usr/logs/里面的mod_jserv.log和jserv.log
這兩個文件在調(diào)試中極有用
它們的權(quán)限要求nobody 可以寫
所以我的做法是
chmod 664 *
chgrp nobody *
大牛是不是這樣做, 我不知道
可能這樣會有安全性問題
前面如果你看到了jserv 的狀態(tài)頁點擊apjv12://localhost:8007 應(yīng)該能夠看到各個zone 的配置
如果看不到應(yīng)該收到所謂selfservlet 一個選項
沒有打開的提示, 打開就好了好像是在jserv.properties 里面
接下來是搞gnujsp
解開了會發(fā)現(xiàn)jsp 是完全用java 寫成的例程
主要是兩個gnujsp-...jar 和servlet-...jar
反正我用的是gnujsp10和servlet-2.0-plus
,拷到/usr/servlet/jsp(這是隨便給的)
編寫gjsp.properties 文件
關(guān)鍵是
servlet.gnujsp.class=org.gjt.jsp.JspServlet
servlet.gnijsp.initArgs=checkclass=true, //這樣編譯好的jspservlet 可以利用
pagebase=/home/httpd/html,
scratchdir=/usr/servlets/jsp/scratch, //這里要有文章
debug=true, //先打開, 調(diào)好了再關(guān)掉
compiler=builtin-javac -classpath //這里builtin-javac 需要jdk1.2的tools.jar
classpath:scratchdir:/usr/servlets/jsp/gnujsp.jar:
/usr/servlets/jsp/servlet.jar:/usr/servlets/jsp/beans //指定編譯用的classpath
-d scratchdir -deprication source //就是編譯一個普通的java 文件一樣
首先要注意你選擇的scratchdir 一定要nobody 可寫,其次使用builtin 的javac
需要在jserv.properties 加上
wrapper.class...=/usr/jdk1.2/lib/tools.jar (這是我安裝的路徑)
到這里jsp 的zone 就差不多了
現(xiàn)在開始在jserv.properties 里面指明zones
很簡單不廢話了
最后是在jserv.conf 里面作mount ,照著例子寫
也不難,前面有人貼過了
最后就可以試試自己的jsp 了
首先先從http://localhost/jserv/
里面看一看jsp 的zone 配制出來沒有
驗證一下參數(shù)都正確
====================================================================================================
1. 先確認apachejserv 已能正常工作
2. 把gnujsp10.jar,servlet-2.0-plus.jar 拷到/home/httpd/sevlets目錄下
3. 修改jserv.conf, 加入
ApJServAction .jsp /servlets/org.gjt.jsp.JspServlet
ApjServMount /java /root(這個目錄主要是用來存放jsp 生成的java
和class 文件, 可視具體情況而定)
4. 修改jserv.properties, 加入
wrapper.classpath=/usr/jdk/lib/tools.jar
wrapper.classpath=/home/httpd/servlets/gnujsp10.jar
wrapper.classpath=/home/httpd/servlets/servlet-2.0-plus.jar
5. 修改zone.properties, 加入
repositories=/home/httpd/java/
servlet.gnujsp.code=org.gjt.jsp.JspServlet
servlet.org.gjt.jsp.JspServlet.initArgs=checkclass=true
servlet.org.gjt.jsp.JspServlet.initArgs=scratchdir=/home/httpd/java
servlet.org.gjt.jsp.JspServlet.initArgs=compiler=builtin-javac -encoding enco
ding -classpath classpath -d scratchdir -deprecation source
,[目錄]
apache tomcat
編譯得到mod_jserv.so和ApacheJServ.jar
在tomcat3.0的etc 子目錄里面有tomcat.conf ,在httpd.conf 里面Include 一下
啟動tomcat(./tomcat.sh start)然后啟動httpd, 看看成功了沒有。
如果不行, 我碰到的一個問題是log file有問題, 直接指定成下面的樣子
ApJServLogFile /var/log/httpd/mod_jserv.log
就過了。
最后實驗http://localhost:8080/一下確信tomcat 跑了。然后實驗http://localhost:8080/examples/jsp和
[目錄]
java 環(huán)境(中文)
好象有許多人都碰到了這個問題, 我以前也碰到過, 在網(wǎng)上找了一些解決方法看了看, 在自己的機器上試了試, 都沒有解決問題, 趁著這幾天把 Debian的中文問題搞好了, 順便把這個也弄一弄, 終于搞明白了一些東西. 錯誤之處還請大家指教. 這里主要指的是 Swing 中顯示的中文, 關(guān)于其他中文操作問題, 暫不作討論.
其實說起來 Java 的中文問題非常簡單, 有兩個重要因素, 一個是編譯時的編碼(encoding), 另一個是字體. 這兩個缺一不可.
一, 編譯時的編碼:
指的是編譯 Java 的源程序時指定的編碼格式, 即使用
javac -encoding MyEncoding MyJavaFile.java
編譯 MyJavaFile 時 -encoding 所指定的 MyEncoding. 通常中文的編碼有大陸和新加坡使用的 GB2312 以及 臺灣和香港使用的 Big5, 普通英文用的是ISO_8859_1. 這里只關(guān)注 GB2312. 如果在編譯的命令行中指定了編碼, 那么就使用指定的編碼格式, 如果沒有指定, 將使用系統(tǒng)缺省的編碼格式, 在 windows的中文簡體版下都是 GB2312, 而 Linux 下不同的終端可以有不同的編碼, 可以直接設(shè)置環(huán)境變量 LC_ALL LANG 等指定相應(yīng)的不同類型信息的編碼, 比如數(shù)字, 日期, 貨幣, 姓名等等. 可以用 locale 命令來看當(dāng)前終端所有的編碼. 在Java 程序中可以使用 System.getProperty("file.encoding"); (注 1) 來獲取當(dāng)前的編碼格式. 好了, 當(dāng)編譯的時候, 源碼中的中文字符串都會按照指定的或者缺省的編碼格式映射為相應(yīng)的 UNICODE , 而不是看做簡單的 ASCII 字符. 所以編碼格式就是處理源碼中的各種各樣的字符, 與運行時無關(guān), 所以如果你的源文件中沒有直接需要使用中文的地方, 比如菜單, 按鈕, 標簽什么的, 就不需要指定編碼了.
二, 字體的選擇:
必須使用能夠顯示中文的字體, 好象有些廢話. 但還是有必要說一說. AWT 可以在中文系統(tǒng)中直接顯示中文, 但是在不是中文系統(tǒng)但是有中文字體的系統(tǒng)中不能, 需要修改一下 $JAVA_HOME/jre/lib/font.properties,加入中文字體, 至于怎么加入, 就不談
,了. 而 Swing 不需要這樣, 只要你的系統(tǒng)中有中文字體就可以使用這樣的字體來顯示中文. 怎么知道一種字體能不能顯示中文呢? 看下面的程序片段: (注 2)
Font[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFFonts();
System.out.println("Chinese Fonts: n");
for (int i = 0; i < fonts.length; i )
{
if (fonts[i].canDisplayUpTo("一") > 0) // 注 3
{
System.out.println(fonts[i].getFontName());
}
}
好了, 知道了系統(tǒng)中有沒有中文字體, 然后選擇一個就是了. 如果選擇了不能顯示中文的字體, 通常的情況是顯示方框. 好了, Swing 的中文顯示介紹完了, 輸入和編輯中文就和顯示差不多, 選一個字體就可以了, 具體得看你而 Linux 的具體設(shè)置了, 這里就不多說了.
從以上兩點來看, 其實最重要的還是字體的選擇. 我的網(wǎng)站上有 ScreenShot和測試程序, 歡迎來訪問.
注 1: 據(jù) jdk1.2.2 的文檔, 并沒有這個屬性, 很奇怪, 但是確實可用.
注 2: jdk 1.2 以上自帶的字體支持 Unicode, 但是不支持 Unicode 漢字. 所以打出來的結(jié)果包含了 jdk 自帶的字體.
注 3: UNICODE 中, UNICODE 漢字從 ? 到 ? 中間, 豈 到 ?也有一些, 但是 GB2312 和 Big5 的漢字和字符都是在 一 到 ?中間.
參考文獻:
jdk tools doc
一篇沒有作者名字, 也沒有出處的英文文章.
[目錄]
sendmaild
最簡提示:
主要的問題是如何配置sendmail.cf.
如果你用的是redhat, 執(zhí)行:
cd /usr/lib/sendmail-cf/cf
m4 redhat.mc > sendmail.cf
cp sendmail.cf /etc/sendmail.cf
sendmail -bd(或者reboot)
上面的方法配置之后服務(wù)器發(fā)信沒問題, 而遠端機器卻不能發(fā)信, 是因為缺省redhat.mc 生成的sendmail.cf 禁止了客戶服務(wù), 這樣:找到下面一行(sendmail.cf):