乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      小組開發(fā)環(huán)境搭建: apache ftp cvs samba

       農(nóng)夫子oice 2007-07-13

      小組開發(fā)環(huán)境搭建: apache+ftp+cvs+samba


      內(nèi)容摘要:本文主要介紹一些小組開發(fā)環(huán)境搭建中經(jīng)常會(huì)遇到一些服務(wù)器服務(wù)設(shè)置,這些服務(wù)很多都是鑒于大部分的開發(fā)客戶端仍然是Windows設(shè)置的,每個(gè)服務(wù)都提供了簡(jiǎn)單的基本配置示范。包括:

      • IP管理(DHCP):服務(wù)器IP地址的管理和解析(結(jié)合SAMBA的WINS服務(wù)),開發(fā)客戶端的IP管理;
      • WEB服務(wù)(APACHE):文檔共享,CVS的WEB界面瀏覽,論壇工具等;
      • FTP服務(wù)(FTP):用于文件下載/共享;
      • 版本控制(CVS):程序源代碼和文檔的版本控制;
      • 文件共享(SAMBA):基于NETBIOS的文件共享,方便WINDOWS客戶端的訪問(wèn)(比如一些工具的安裝等);
      • 數(shù)據(jù)庫(kù)服務(wù)器(MYSQL):一些應(yīng)用的后臺(tái)數(shù)據(jù)庫(kù)服務(wù);
      • 備份機(jī)制(wget + rsync):備份

      很多設(shè)置是缺省按照在bash環(huán)境中,在tcsh環(huán)境中,有一些設(shè)置不太一致。

      服務(wù)器規(guī)劃如下:

       __________________             _______________
      |APACHE WEB SERVER |            | File Backup |
      |SAMBA SHARE       |            |             |
      |DHCP SERVER       |            | DHCP Backup |
      |CVS SERVER        |            | MySQL server|
      |WIKI/BLOG SERVER  | <=Backup=> |             |
      |Database backup   |            |             |
      --------------------            ---------------
      

      硬件準(zhǔn)備:至少要2臺(tái)服務(wù)器

      1. 從理論上說(shuō),任何系統(tǒng)的崩潰只是時(shí)間問(wèn)題,而且誰(shuí)也不能保證開發(fā)者不犯錯(cuò)誤;
      2. 解決以上問(wèn)題的辦法只有:備份,備份,備份……

      操作系統(tǒng)準(zhǔn)備

      FreeBSD或GNU/Linux,系統(tǒng)安裝時(shí),本文的配置主要以在RedHat 8上運(yùn)行為例。注意:安裝時(shí)要將“開發(fā)工具”大類選上,后面的很多工具都需要使用GCC進(jìn)行編譯,有的應(yīng)用腳本運(yùn)行用到了perl。2臺(tái)主服務(wù)器分別使用 IP地址192.168.0.200和192.168.0.201
      語(yǔ)言環(huán)境缺省設(shè)置:

      vi /etc/sysconfig/i18n
      刪除UTF-8相關(guān)設(shè)置:
      LANG="en_US"
      SUPPORTED="en_US:en"
      SYSFONT="latarcyrheb-sun16"
      

      GNU/Linux安裝完后:經(jīng)常有很多不必要的服務(wù)需要?jiǎng)h除,但根據(jù)服務(wù)器的不同,要?jiǎng)h除的服務(wù)也不一樣:本來(lái)是想總結(jié)一個(gè)統(tǒng)一的腳本,后來(lái)發(fā)現(xiàn)是需要?jiǎng)h除的服務(wù)比需要保留的服務(wù)多,而且缺省有那些服務(wù)和系統(tǒng)版本,安裝的模式也相關(guān)。

      這里我總結(jié)的了一個(gè)簡(jiǎn)單的方法來(lái)刪除不必要的服務(wù):

      首先:備份原始服務(wù)設(shè)置:
      #chkconfig --list > chkconfig.orig

      生成刪除腳本:把所有在LEVEL 3啟動(dòng)的服務(wù)過(guò)濾出來(lái),并生成chkconfig service off 這樣的命令
      #chkconfig --list | grep 3:on | awk ‘{print "chkconfig "$1" off"}‘
      chkconfig kudzu off
      chkconfig syslog off
      chkconfig netfs off
      chkconfig network off
      chkconfig random off
      chkconfig rawdevices off
      chkconfig pcmcia off
      chkconfig keytable off
      chkconfig apmd off
      chkconfig atd off
      chkconfig gpm off
      chkconfig autofs off
      chkconfig iptables off
      chkconfig isdn off
      chkconfig sshd off
      chkconfig portmap off
      chkconfig nfslock off
      chkconfig sendmail off
      chkconfig rhnsd off
      chkconfig crond off
      chkconfig anacron off
      chkconfig xfs off
      chkconfig xinetd off

      我們把需要保留的服務(wù)從這個(gè)列表中刪除:
      一般WEB服務(wù)器只留network sshd crond atd syslog

      刪掉相應(yīng)的行以后就生成了不需要的服務(wù)刪除腳本:
      chkconfig kudzu off
      chkconfig syslog off
      chkconfig netfs off
      chkconfig rawdevices off
      chkconfig pcmcia off
      chkconfig keytable off
      chkconfig apmd off
      chkconfig gpm off
      chkconfig autofs off
      chkconfig iptables off
      chkconfig isdn off
      chkconfig portmap off
      chkconfig nfslock off
      chkconfig sendmail off
      chkconfig rhnsd off
      chkconfig xfs off
      chkconfig xinetd off

      2臺(tái)機(jī)器上都安裝的服務(wù):SSH FTP DHCP服務(wù)

      SSH

      基本的登陸服務(wù),對(duì)于內(nèi)部分開發(fā)來(lái)說(shuō)一般用缺省的就可以了,但是建議將/etc/ssh/sshd_config中的:
      PermitRootLogin yes改成PermitRootLogin no

      FTP

      建議用proftpd代替原有的ftp服務(wù):http://www./ 當(dāng)然如果是vsftpd就不用換了
      安裝:tar zxf proftpd-version.tar.gz; cd proftpd-version/; ./configure; make; make install
      缺省配置/usr/local/etc/proftpd.conf

      ServerName "ProFTPD"
      ServerType standalone
      DefaultServer on
      AllowOverwrite on
      Port 21
      Umask 022

      UseReverseDNS off
      MaxInstances 30
      User apache
      Group apache
      1. 不反相解析登陸機(jī)器的域名 UseReverseDNS off
      2. 使用了系統(tǒng)缺省的apache用戶/組運(yùn)行服務(wù)
      3. 使用AuthUserFile把一些虛擬用戶映射成系統(tǒng)帳戶是一種更安全的方式,可以把多個(gè)只需要FTP權(quán)限的開發(fā)者用虛擬賬號(hào)映射成一個(gè)系統(tǒng)用戶。這些虛擬用戶的認(rèn)證密碼在ftpd.passwd中設(shè)置,從而實(shí)現(xiàn)了于系統(tǒng)認(rèn)證的分離:
        ftpasswd是一個(gè)perl腳本,下載即可使用: ftpasswd --passwd --name=test --uid=501 --gid=501 --home=/home/test --shell=/sbin/nologin --file=/etc/ftpd.passwd
        然后在proftpd.conf配置中增加:DefaultRoot ~ 讓用戶只能在自己的目錄下工作,不能通過(guò)cd ..轉(zhuǎn)向更上級(jí)目錄進(jìn)行操作
        AuthUserFile /etc/ftpd.passwd
        DefaultRoot  ~

      DHCP

      為了更方便的管理在同一個(gè)局域網(wǎng)中開發(fā)者的IP地址和服務(wù)器的IP地址,最好將服務(wù)器安排在一定范圍內(nèi)的靜態(tài)IP內(nèi)(比如 192.168.0.200以上),將(192.168.0.10-200)范圍內(nèi)為開發(fā)機(jī)客戶端提供動(dòng)態(tài)IP。假設(shè)我們的主服務(wù)器 (192.168.0.200)和輔助開發(fā)服務(wù)器(192.168.0.201)使用靜態(tài)IP,同時(shí)為網(wǎng)段內(nèi)提供192.168.0.10-200動(dòng)態(tài) IP分配服務(wù)。DHCP服務(wù)在2臺(tái)服務(wù)器上都安裝,一個(gè)做主DHCP服務(wù),用于給子網(wǎng)IP池提供70%的IP,另外一臺(tái)做備份,擁有IP池的30%。在例子中:200負(fù)責(zé)10-100,201負(fù)責(zé)110-150。缺省dhcpd沒有安裝的話,從安裝盤上找到DHCP軟件包安裝或者從http://www.下載源文件編譯即可(安裝位置和配置文件可能有所不同)。缺省配置文件位于/etc/dhcpd.conf

      缺省配置:主服務(wù)器上

      ddns-update-style none;
      default-lease-time 120000;
      max-lease-time 920000;
      option subnet-mask 255.255.255.0;
      option broadcast-address 192.168.0.255;
      option netbios-name-servers 192.168.0.200;
      option routers 192.168.0.1;
      option domain-name-servers 202.106.196.115,202.96.199.133;
      option domain-name "example.com";

      subnet 192.168.0.0 netmask 255.255.255.0{
      range 192.168.0.10 192.168.0.100;
      }

      說(shuō)明:
      缺省每個(gè)IP租期2天: default-lease-time 120000;
      最長(zhǎng)租期: max-lease-time 920000;
      缺省子網(wǎng)掩碼:option subnet-mask 255.255.255.0;
      缺省廣播地址:option broadcast-address 192.168.0.255;
      讓192.168.0.200上的samba服務(wù)啟用WINS服務(wù):用于內(nèi)部域名解析
      option netbios-name-servers 192.168.0.200;
      缺省網(wǎng)關(guān) option routers 192.168.0.1;
      缺省域名服務(wù)器 option domain-name-servers 202.106.196.115,202.96.199.133;
      缺省域名 option domain-name "example.com";

      #一個(gè)缺省的子網(wǎng)設(shè)置:
      subnet 192.168.0.0 netmask 255.255.255.0{
      #為子網(wǎng)動(dòng)態(tài)分配0.10-100的IP
      range 192.168.0.10 192.168.0.100;
      }

      輔DHCP服務(wù)器上唯一不同的地方是:為子網(wǎng)動(dòng)態(tài)分配0.110-150的IP,主DHCP和附DHCP服務(wù)器的IP池不能相互重疊

      subnet 192.168.0.0 netmask 255.255.255.0{ 
      range 192.168.0.110 192.168.0.150;
      }

      注意:
      如果主服務(wù)器是2塊網(wǎng)卡并同時(shí)用作NAT服務(wù),則外網(wǎng)IP是DHCP不能廣播的,需要將外網(wǎng)IP地址屏蔽廣播
      加入:
      subnet 202.102.34.102 netmask 255.255.255.255 {}

      主服務(wù)器上的應(yīng)用安裝:

      SAMBA服務(wù):用于文件的共享和內(nèi)部WINS解析

      這里只做一個(gè)只讀共享的簡(jiǎn)單配置,

      [global]
      #別人會(huì)通過(guò)"網(wǎng)上鄰居"看到WORKGROUP組里名為的Linux機(jī)器,注釋是:My Samba Server
      workgroup = WORKGROUP
      netbios name = Linux
      server string = My Samba Server

      #日志設(shè)置
      log file = /var/log/samba/%m.log
      max log size = 50

      #安全設(shè)置
      security = share

      #用SAMBA的WINS服務(wù)支持,并且用/etc/hosts做內(nèi)部域名解析
      wins support = yes
      name resolve order = hosts lmhosts wins bcast
      dns proxy = yes

      [public]
      #一個(gè)共享設(shè)置
      comment = Public Stuff
      path = /home/share
      public = yes
      guest ok = yes
      read only = yes
      writable = no
      printable = no

      [docs]
      #一個(gè)需要密碼驗(yàn)證的設(shè)置,密碼通過(guò)#smbpasswd -a user password增加
      comment = Public Stuff
      security = user
      encrypt passwords = yes
      smb passwd file = /etc/samba/smbpasswd
      path = /home/docs
      public = yes
      guest ok = no
      read only = yes
      writable = no

      在這里為了讓大家能夠在內(nèi)部使用dev.example.com訪問(wèn)主服務(wù)器(192.168.0.200),我用DHCP設(shè)置主服務(wù)器(192.168.0.200)同時(shí)也是是內(nèi)部的WINS服務(wù)器,而在200的SAMBA服務(wù)中,啟用了WINS支持,并設(shè)置WINS用可以利用DNS做 NETBIOS名稱解析。這樣如果DNS讀取的是/etc/hosts文件中的設(shè)置的話,hosts文件就可以當(dāng)作WINS域名配置文件了,在 /etc/hosts里設(shè)置了:
      192.168.0.200 dev.example.com bbs.example.com dev bbs
      192.168.0.201 bak.example.com backup
      后,通過(guò)DHCP獲得IP的內(nèi)網(wǎng)客戶端就可以直接通過(guò): dev.example.com訪問(wèn)開發(fā)服務(wù)器了。

      所有的機(jī)器名前綴我都使用了縮寫:dev, bbs bak之類的,原因是samba的NMBD實(shí)際上是NETBIOS名稱的解析,名稱長(zhǎng)度是16個(gè)字符(實(shí)際是15個(gè))有限制的。因此,雖然 192.168.0.202 username.example.com雖然是一個(gè)合法的DNS名稱解析,但由于username.example.com長(zhǎng)度超過(guò)了16個(gè)字符,所以通過(guò)SAMBA的WINS服務(wù)解析仍然無(wú)法找到。dev.相當(dāng)于\\dev.\這樣的一臺(tái)機(jī)器。當(dāng)初用 SAMBA的WINS解析在客戶端總是ping不通testing.這個(gè)問(wèn)題困擾了我好一陣。

      WEB服務(wù):APACHE + php + resin

      主要用作文件的WEB共享和一些應(yīng)用的前端瀏覽(CVSWEB GNATSWEB PHPMYADMIN等),Apache,這里仍然使用了1.3,因?yàn)楹芏鄳?yīng)用,比如PHP在2.0上運(yùn)行還不是完整。

      安裝: http://httpd.下載最新版本:

      編譯選項(xiàng):這樣可以讓所有的模塊都通過(guò)配置文件動(dòng)態(tài)加載,方便后面其他應(yīng)用模塊的添加刪除:
      ./configure --prefix=/home/apache --enable-shared=max --enable-module=most
      更多安裝說(shuō)明可以參考: APACHE安裝筆記

      重復(fù)如下:
      apache:
      diff httpd.h httpd.h.orig
      314c314
      < #define HARD_SERVER_LIMIT 2560
      ---
      > #define HARD_SERVER_LIMIT 256

      ./configure --prefix=/home/apache --enable-shared=max --enable-module=most

      刪除過(guò)多的注釋:
      grep -v "#" httpd.conf.default >httpd.conf

      php + mysql

      mysql: innodb效率和ORACLE差不多,一般應(yīng)用用不上
      ./configure --prefix=/home/mysql --without-innodb 

      ./configure --with-apxs=/home/apache/bin/apxs --enable-track-vars \
      --with-mysql=/home/mysql \
      --with-oci8=/home/oracle/product/8.1.7 \
      --with-oracle=/home/oracle/product/8.1.7
      make
      #make install

      修改httpd.conf
      <IfModule mod_dir.c>
      DirectoryIndex index.html index.php index.php3
      </IfModule>
      在<IfModule mod_mime.c>中加入:
      AddType application/x-httpd-php .php .php3

      resin
      ./configure --with-apxs=/home/apache/bin/apxs
      make
      make install

      修改httpd.conf
      <IfModule mod_caucho.c>
      CauchoConfigFile /home/resin/conf/resin.conf
      </IfModule>

      文檔共享技巧:
      1 對(duì)于文檔的共享來(lái)說(shuō),autoindex模塊非常有用,讓APACHE自動(dòng)索引目錄缺省是按文件/目錄名排序的,而且文件名40個(gè)字符以上部分是被截?cái)嗟?,為了能顯示完整的文件名,并且像資源管理器那樣將目錄排在前面,文件排在后面:
      在<IfModule mod_autoindex.c>模塊設(shè)置中:
      #增加NameWidth選項(xiàng),并且文件名長(zhǎng)度是*(自動(dòng)適應(yīng)當(dāng)前目錄下最長(zhǎng)文件名)
      #增加FoldersFirst選項(xiàng),讓目錄列在前面(類似于資源管理器)
      #增加了ScanHTMLTitles用HTML文件的TITLE做文件的描述,并設(shè)置描述長(zhǎng)度是*(自適應(yīng)最長(zhǎng))
      IndexOptions FancyIndexing +NameWidth=* FoldersFirst ScanHTMLTitles +DescriptionWidth=*

      2 如果是CGI開發(fā),如何讓用戶在自己的目錄下能夠發(fā)布CGI程序,比如:http://192.168.0.200/~chedong/cgi- bin/my_cgi:在
      <IfModule mod_alias.c>模塊設(shè)置中,添加正則表達(dá)式:
      ScriptAliasMatch ~([a-z]+)/cgi-bin/(.*) /home/$1/cgi-bin/$2
      意思是匹配~user_name/cgi-bin/cgi_name自動(dòng)映射到/home/user_name/cgi-bin/cgi-name腳本

      3 如果允許所有目錄可以自動(dòng)索引瀏覽autoindex,需要將
      <Directory "/home/apache/htdocs"> <===改成 <Directory "/">

      版本控制:CVS

      CVS缺省在服務(wù)器上幾乎都安裝好了,只要按照以下步驟初始化即可:

      在/etc/profile里:
      CVS庫(kù)所在的主服務(wù)器設(shè)置:
      export CVSROOT=/home/cvsroot
      在其他開發(fā)服務(wù)器里設(shè)置:
      export CVSROOT=:ext:$USER@192.168.0.200:/home/cvsroot
      export CVS_RSH=ssh

      然后在主服務(wù)器上cvs init初始化:

      關(guān)于CVSWEB的設(shè)置,重復(fù)以下CVS常用命令手冊(cè)中CVSWEB的內(nèi)容:

      CVSWEB的下載:CVSWEB從最初的版本已經(jīng)演化出很多功能界面更豐富的版本,這個(gè)是個(gè)人感覺安裝設(shè)置比較方便的:
      http://www./software/linux/cvsweb/

      下載解包:
      tar zxf cvsweb.tgz
      把配置文件cvsweb.conf放到安全的地方(比如和apache的配置放在同一個(gè)目錄下),
      修改:cvsweb.cgi讓CGI找到配置文件:
      $config = $ENV{‘CVSWEB_CONFIG‘} || ‘/path/to/apache/conf/cvsweb.conf‘;

      轉(zhuǎn)到/path/to/apache/conf下并修改cvsweb.conf:

      1. 修改CVSROOT路徑設(shè)置:
        %CVSROOT = (
        ‘Development‘ => ‘/path/to/cvsroot‘, #<==修改指向本地的CVSROOT
        );
      2. 缺省不顯示已經(jīng)刪除的文檔:
        "hideattic" => "1",#<==缺省不顯示已經(jīng)刪除的文檔
      3. 在配置文件cvsweb.conf中還可以定制頁(yè)頭的描述信息,你可以修改$long_intro成你需要的文字

      首先可以CVS進(jìn)庫(kù)里的就是以上系統(tǒng)的安裝文檔。

      更多的關(guān)于CVS的擴(kuò)展應(yīng)用可以參考CVS常用命令手冊(cè)CVSTRAC部分

      多個(gè)服務(wù)之間的資源共享

      一般可以通過(guò)鏈接解決,比如:

      我希望匿名ftp共享的內(nèi)容(比如在/var/ftp/pub目錄下)都可以WEB發(fā)布,
      ln -s /var/ftp/pub /home/apache/htdocs/pub

      我希望/usr/share/doc里的文檔大家可以通過(guò)WEB瀏覽:
      ln -s /usr/share/doc /home/apache/htdocs/doc

      我希望WEB發(fā)布的內(nèi)容大家通過(guò)WINDOWS網(wǎng)絡(luò)鄰居也可以訪問(wèn):假設(shè)/home/share是samba發(fā)布的只讀共享路徑
      ln -s /home/apache/htdocs /home/share

      服務(wù)的自動(dòng)啟動(dòng):
      系統(tǒng)已經(jīng)安裝的服務(wù)一般可以通過(guò)setup的服務(wù)配置是否自動(dòng)啟動(dòng),否則就在/etc/rc.local里加一些啟動(dòng)腳本即可。
      比如:

      備份和日志統(tǒng)計(jì)

      可以將以下腳本寫在主服務(wù)器的ROOT的CRON里:

      #time sync
      0 5 * * 1 (/usr/bin/rdate -s YOUR_DATE_TIME_SERVER)

      #backup cvsroot
      5 3 * * * (cd /home; tar czf /home/backup/cvsroot.`date +\%w`.tgz cvsroot)

      #backup apache
      8 3 * * * (cd /home; tar czf /home/backup/apache.`date +\%w`.tgz apache)

      #webalizer demo
      3 5 * * * (/usr/local/bin/webalizer -c /home/apache/conf/webalizer.conf /home/apache/logs/`date -d yesterday +\
      %w`/access_log)

      #remove last week web log
      3 4 * * * (find /home/apache/logs/ -name access_log -mtime +4 -exec rm -f {} ;)

      這樣,在/home/backup目錄下會(huì)有按星期輪訓(xùn)的7個(gè)備份。然后通過(guò)在輔助服務(wù)器上設(shè)置CRON用wget的-m選項(xiàng)鏡像主服務(wù)器上的 /home/backup目錄或者用rsync做同步就可以了。后面的2條是關(guān)于使用webalzier做服務(wù)器的日志統(tǒng)計(jì),APACHE的日志通過(guò) cronolog進(jìn)行了輪循。具體設(shè)置請(qǐng)參考:
      注意:
      在CRONTAB中 %需要轉(zhuǎn)義\%,比如:tar czf /home/backup/apache.`date +\%w`.tgz apache
      而命令行中需要轉(zhuǎn)義的\; 在crontab 中不需要轉(zhuǎn)義,比如:...-mtime +4 -exec rm -f {} ;

      基于RSYNC的同步備份:

      主服務(wù)器:設(shè)置啟動(dòng)rsync服務(wù)
      /etc/rsyncd.conf
      hosts allow 192.168.0.*
      [ftp]
      path = /home/apache/htdocs
      comment = docs need backup

      備份服務(wù)器:每天6點(diǎn)同步一次數(shù)據(jù)
      2 6 * * * (/usr/bin/rsync -au --delete rsync://192.168.0.200/ftp /home/apache/htdocs )

      如何給用戶設(shè)置缺省密碼:
      /home/apache/bin/htpasswd -bmn chedong 123
      chedong:$apr1$5hoi./..$XlpyjZk6rw7R9D5QPo6V6/
      -b don‘t prompt
      -m md5
      -n print to stout

      TODO:

      基于WIKI的文檔共享:twiki

      打印服務(wù);

      參考資料:

      O‘Reilly在線手冊(cè):Using Samba
      http://www./catalog/samba/chapter/book/index.html
       

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多