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. 如何運(yùn)行sendmail
3. sendmail.cf
4. 郵件中樞與分發(fā)代理
5. 宏
6. 規(guī)則
7. 規(guī)則集0
9. qmail
10. router
11. cvs
12. bind
13. openssh
1. 簡(jiǎn)單使用
2. 配置文件
3. scp
4. 使用key 做驗(yàn)證
5. rsync 與ssh 配合使用
6. cvs
14. Khttpd
網(wǎng)絡(luò)服務(wù)
[目錄](méi)
,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
[目錄](méi)
smbd
更改/etc/smb.conf,主要要確定下面的內(nèi)容:
workgroup=MYWKGP
smb passwd file=/etc/smbpasswd
security=user (使用unix 用戶安全)
encrypt passwords= yes
然后就可以添加目錄了, 首先添加宿主目錄:
(其實(shí)就是把對(duì)應(yīng)的行的注釋去掉)
[homes]
comment = home directory
browseable = no
writeable= yes
還可以再加一個(gè)共享目錄:
[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
輸入訪問(wèn)口令, 以后在windows 98中只要提供winfake 和對(duì)應(yīng)口令
就可以訪問(wèn)/home/fake和/public目錄
有時(shí)windows 95/98會(huì)出現(xiàn)一些兼容問(wèn)題, 研究encrypt passwords=那一行吧 ================================================================== 最好用swat 來(lái)設(shè)置吧,把/etc/inet.conf最后swat 前的注釋去掉
然后重啟inetd ,就可以通過(guò)任意一個(gè)機(jī)器用瀏覽器來(lái)配置了
輸入地址http://samba_server:901/即可
95/98/nt都可以的說(shuō),還好這里什么機(jī)器都有,嘿嘿,都可以互相
訪問(wèn)的,包括打印,95/98網(wǎng)絡(luò)登錄時(shí)要用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í),還沒(méi)搞清楚,不過(guò)這樣馬馬虎虎能工作,一定要設(shè)
#否則mount 上的設(shè)備umount 不掉,一直busy 的說(shuō),: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ù)用戶不同而變化,本來(lái)就有的,不是我加的說(shuō)
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
,path = /var/spool/samba
print ok = Yes
browseable = No
#我自己加的一個(gè)共享目錄
[public]
comment = Public Software
path = /home/ftp/pub
guest ok = Yes
[目錄](méi)
apache 虛擬服務(wù)器
多域名單IP 的:
1. 首先要解決域名的問(wèn)題, 你可以用nslookup <你的域名>看看該域名是不是指向了你IP, *.yeah.net本來(lái)就是做的虛擬主機(jī), 所以解析出來(lái)都是指向www.yeah.net (202.96.152.198), 通常情況下, apache啟動(dòng)時(shí)會(huì)檢查你用作虛擬主機(jī)的域名。
2. 改httpd.conf, 加
ServerAdmin I007@263.net
DocumentRoot /home/I007/public_html
ServerName I007.com (這里只能寫(xiě)域名)
多IP 的:
1. 最好每個(gè)IP 還是能對(duì)應(yīng)一個(gè)域名
2. 加載ip_alias模塊 (/sbin/insmod ip_alias)
3. 加IP (/sbin/ifconfig eth?:? ???.???.???.???)
4. 改httpd.conf, 和上面差不多
可以看出, 兩者可以共存, 以上均做過(guò)實(shí)驗(yàn), 沒(méi)有問(wèn)題..
[目錄](méi)
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
*解開(kāi)源文件
tar xzvf php-3.0.tar.gz
*進(jìn)入php-3.0源文件目錄
./configure --with-mysql=/usr --with-apxs=/usr/sbin/apxs --with-config-file -path=/etc/httpd (還有其他選項(xiàng), 可以運(yùn)行 ./configure --help 看看)
*建一個(gè)modules 目錄
mkdir modules
*進(jìn)入regex 目錄
運(yùn)行 make r (這一步可能不必要)
運(yùn)行 make lib
*退回上一級(jí)目錄
運(yùn)行 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
*測(cè)試
查看mysqld 是否已經(jīng)運(yùn)行. 如果沒(méi)有, 先運(yùn)行mysqld
將php3源文件下tests 目錄下的mysql 文件拷貝到 /home/httpd/html目錄下 lynx localhost/mysql.php3
如果有問(wèn)題, 可以將mysql.php3中的127.0.0.1改為localhost
[目錄](méi)
apache apacheJserv
============================================================================= 環(huán)境:mdk7
首先使用BJLC 光盤(pán)上的jdk1.2pre2
具體裝過(guò)程略
rpm: apache-1.3.9 apache-devel jsdk-2.0
,tgz: Apache-Jserv1.1 gnujsp-1.0.0
解開(kāi)Jserv 的src
./configure --enable-EAPI --with-JSDK=/usr/lib/classes/jsdk.jar --with-apxs=/usr/sbin/apxs
應(yīng)該沒(méi)有問(wèn)題, 很順利編譯通過(guò)
再/etc/httpd/conf/httpd.conf
在最后(一定要在最后否則有很多小麻煩)
Include ./jserv/jserv.conf
重新啟動(dòng)apache
如果能看到應(yīng)該就差不多了
試http://localhost/jserv/
一般是403 forbidden
如果是forbidden
修改
jserv.conf
搜索Location
里面有一段allow
改成allow localhost.localdomain
好像就可以了
用localhost 或者是127.0.0.1都不行
反正這是我碰到的倒霉事希望大家能一次成功
到這apache-jserv 就算是完成了, 也就是有了
一個(gè)servlet 容器并且有了在apache 里面的模塊
能夠同這個(gè)容器進(jìn)行通信, 通信協(xié)議最好用
apjv12, 反正所由地方都設(shè)成apjv12就沒(méi)有問(wèn)題
否則很可能出現(xiàn)不匹配的情況, 最后導(dǎo)致
500錯(cuò)誤, 在log 中顯示malformed fata
前面提到servlet 容器建好了
Jserv 調(diào)通了, 還有兩個(gè)很有用的log 文件
在我的mdk7里面是
/usr/logs/里面的mod_jserv.log和jserv.log
這兩個(gè)文件在調(diào)試中極有用
它們的權(quán)限要求nobody 可以寫(xiě)
所以我的做法是
chmod 664 *
chgrp nobody *
大牛是不是這樣做, 我不知道
可能這樣會(huì)有安全性問(wèn)題
前面如果你看到了jserv 的狀態(tài)頁(yè)點(diǎn)擊apjv12://localhost:8007 應(yīng)該能夠看到各個(gè)zone 的配置
如果看不到應(yīng)該收到所謂selfservlet 一個(gè)選項(xiàng)
沒(méi)有打開(kāi)的提示, 打開(kāi)就好了好像是在jserv.properties 里面
接下來(lái)是搞gnujsp
解開(kāi)了會(huì)發(fā)現(xiàn)jsp 是完全用java 寫(xiě)成的例程
主要是兩個(gè)gnujsp-...jar 和servlet-...jar
反正我用的是gnujsp10和servlet-2.0-plus
,拷到/usr/servlet/jsp(這是隨便給的)
編寫(xiě)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, //先打開(kāi), 調(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 //就是編譯一個(gè)普通的java 文件一樣
首先要注意你選擇的scratchdir 一定要nobody 可寫(xiě),其次使用builtin 的javac
需要在jserv.properties 加上
wrapper.class...=/usr/jdk1.2/lib/tools.jar (這是我安裝的路徑)
到這里jsp 的zone 就差不多了
現(xiàn)在開(kāi)始在jserv.properties 里面指明zones
很簡(jiǎn)單不廢話了
最后是在jserv.conf 里面作mount ,照著例子寫(xiě)
也不難,前面有人貼過(guò)了
最后就可以試試自己的jsp 了
首先先從http://localhost/jserv/
里面看一看jsp 的zone 配制出來(lái)沒(méi)有
驗(yàn)證一下參數(shù)都正確
====================================================================================================
1. 先確認(rèn)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(這個(gè)目錄主要是用來(lái)存放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
,[目錄](méi)
apache tomcat
編譯得到mod_jserv.so和ApacheJServ.jar
在tomcat3.0的etc 子目錄里面有tomcat.conf ,在httpd.conf 里面Include 一下
啟動(dòng)tomcat(./tomcat.sh start)然后啟動(dòng)httpd, 看看成功了沒(méi)有。
如果不行, 我碰到的一個(gè)問(wèn)題是log file有問(wèn)題, 直接指定成下面的樣子
ApJServLogFile /var/log/httpd/mod_jserv.log
就過(guò)了。
最后實(shí)驗(yàn)http://localhost:8080/一下確信tomcat 跑了。然后實(shí)驗(yàn)http://localhost:8080/examples/jsp和
[目錄](méi)
java 環(huán)境(中文)
好象有許多人都碰到了這個(gè)問(wèn)題, 我以前也碰到過(guò), 在網(wǎng)上找了一些解決方法看了看, 在自己的機(jī)器上試了試, 都沒(méi)有解決問(wèn)題, 趁著這幾天把 Debian的中文問(wèn)題搞好了, 順便把這個(gè)也弄一弄, 終于搞明白了一些東西. 錯(cuò)誤之處還請(qǐng)大家指教. 這里主要指的是 Swing 中顯示的中文, 關(guān)于其他中文操作問(wèn)題, 暫不作討論.
其實(shí)說(shuō)起來(lái) Java 的中文問(wèn)題非常簡(jiǎn)單, 有兩個(gè)重要因素, 一個(gè)是編譯時(shí)的編碼(encoding), 另一個(gè)是字體. 這兩個(gè)缺一不可.
一, 編譯時(shí)的編碼:
指的是編譯 Java 的源程序時(shí)指定的編碼格式, 即使用
javac -encoding MyEncoding MyJavaFile.java
編譯 MyJavaFile 時(shí) -encoding 所指定的 MyEncoding. 通常中文的編碼有大陸和新加坡使用的 GB2312 以及 臺(tái)灣和香港使用的 Big5, 普通英文用的是ISO_8859_1. 這里只關(guān)注 GB2312. 如果在編譯的命令行中指定了編碼, 那么就使用指定的編碼格式, 如果沒(méi)有指定, 將使用系統(tǒng)缺省的編碼格式, 在 windows的中文簡(jiǎn)體版下都是 GB2312, 而 Linux 下不同的終端可以有不同的編碼, 可以直接設(shè)置環(huán)境變量 LC_ALL LANG 等指定相應(yīng)的不同類(lèi)型信息的編碼, 比如數(shù)字, 日期, 貨幣, 姓名等等. 可以用 locale 命令來(lái)看當(dāng)前終端所有的編碼. 在Java 程序中可以使用 System.getProperty("file.encoding"); (注 1) 來(lái)獲取當(dāng)前的編碼格式. 好了, 當(dāng)編譯的時(shí)候, 源碼中的中文字符串都會(huì)按照指定的或者缺省的編碼格式映射為相應(yīng)的 UNICODE , 而不是看做簡(jiǎn)單的 ASCII 字符. 所以編碼格式就是處理源碼中的各種各樣的字符, 與運(yùn)行時(shí)無(wú)關(guān), 所以如果你的源文件中沒(méi)有直接需要使用中文的地方, 比如菜單, 按鈕, 標(biāo)簽什么的, 就不需要指定編碼了.
二, 字體的選擇:
必須使用能夠顯示中文的字體, 好象有些廢話. 但還是有必要說(shuō)一說(shuō). AWT 可以在中文系統(tǒng)中直接顯示中文, 但是在不是中文系統(tǒng)但是有中文字體的系統(tǒng)中不能, 需要修改一下 $JAVA_HOME/jre/lib/font.properties,加入中文字體, 至于怎么加入, 就不談
,了. 而 Swing 不需要這樣, 只要你的系統(tǒng)中有中文字體就可以使用這樣的字體來(lái)顯示中文. 怎么知道一種字體能不能顯示中文呢? 看下面的程序片段: (注 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)中有沒(méi)有中文字體, 然后選擇一個(gè)就是了. 如果選擇了不能顯示中文的字體, 通常的情況是顯示方框. 好了, Swing 的中文顯示介紹完了, 輸入和編輯中文就和顯示差不多, 選一個(gè)字體就可以了, 具體得看你而 Linux 的具體設(shè)置了, 這里就不多說(shuō)了.
從以上兩點(diǎn)來(lái)看, 其實(shí)最重要的還是字體的選擇. 我的網(wǎng)站上有 ScreenShot和測(cè)試程序, 歡迎來(lái)訪問(wèn).
注 1: 據(jù) jdk1.2.2 的文檔, 并沒(méi)有這個(gè)屬性, 很奇怪, 但是確實(shí)可用.
注 2: jdk 1.2 以上自帶的字體支持 Unicode, 但是不支持 Unicode 漢字. 所以打出來(lái)的結(jié)果包含了 jdk 自帶的字體.
注 3: UNICODE 中, UNICODE 漢字從 ? 到 ? 中間, 豈 到 ?也有一些, 但是 GB2312 和 Big5 的漢字和字符都是在 一 到 ?中間.
參考文獻(xiàn):
jdk tools doc
一篇沒(méi)有作者名字, 也沒(méi)有出處的英文文章.
[目錄](méi)
sendmaild
最簡(jiǎn)提示:
主要的問(wèn)題是如何配置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ā)信沒(méi)問(wèn)題, 而遠(yuǎn)端機(jī)器卻不能發(fā)信, 是因?yàn)槿笔edhat.mc 生成的sendmail.cf 禁止了客戶服務(wù), 這樣:找到下面一行(sendmail.cf):