亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1436 | 回復(fù): 0
打印 上一主題 下一主題

apache2.2的優(yōu)化及模塊安裝 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-11-12 15:42 |只看該作者 |倒序?yàn)g覽

apache2.2的優(yōu)化及模塊安裝2008-04-18 22:53一、安裝
# 解壓縮
tar jxvf httpd-2.2.2.tar.bz2
cd httpd-2.2.0
# vi server/mpm/worker/worker.c
找到下面幾行,并改成如下的數(shù)值,其目的是在源碼中修改apache可支持的最大線程數(shù)和最大客戶端數(shù)目。
# define DEFAULT_SERVER_LIMIT 256
# define MAX_SERVER_LIMIT 40000
# define DEFAULT_THREAD_LIMIT 256
# define MAX_THREAD_LIMIT 40000
# 編譯和安裝 apr 1.2
cd srclib/apr
./configure –prefix=/home/liuchao/local/apr
make
make install
# 編譯和安裝 apr-util 1.2
cd ../apr-util
./configure –prefix=/home/local/apr-util –with-apr=/home/local/apr
make
make install
優(yōu)化編譯選項(xiàng)及配置apache可加載的模塊
patch -p1
更改2Glogs
export CFLAGS=”-O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE”
然后編譯cronolog即可
CHOST=”i686-pc-linux-gnu”
CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer”
CXXFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer”
./configure –prefix=/usr/local/apache2.2.3 –enable-mods-shared=all –enable-so –with-mpm=worker –enable-deflate –enable-cache –enable-disk-cache –enable-mem-cache –enable-file-cache –enable-proxy –enable-rewrite –enable-charset-lite –enable-suexec –with-suexec-bin=/usr/sbin/suexec –disable-ipv6 -disable-dav –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util
# 編譯及安裝
gmake && make install
二、優(yōu)化apache配置選項(xiàng)
在主配置文件httpd.conf注釋下一行,這樣做的目的是把a(bǔ)pache的功能配置分成小文件,便于修改和移植
Include conf/Includes/*.conf
修改MPM(多道處理器)參數(shù)
# cd /usr/local/apache2.2
# vi conf/extra/httpd-mpm.conf
找到如下選項(xiàng),并改成對應(yīng)的數(shù)值
          ServerLimit           64
          ThreadLimit          128
          StartServers           8
          MaxClients          8192
          MinSpareThreads       64
          MaxSpareThreads       256
          ThreadsPerChild       128
          MaxRequestsPerChild    0
      ServerLimit              64
      ThreadLimit              64
      StartServers              8
      MaxClients             4096
      MinSpareThreads          64
      MaxSpareThreads         256
      ThreadsPerChild          64
      MaxRequestsPerChild     500
測試過的配置:
         ServerLimit          32
         ThreadLimit          64
         StartServers          8
         MaxClients         2048
         MinSpareThreads      64
         MaxSpareThreads      256
         ThreadsPerChild       64
         MaxRequestsPerChild   0
修改apache2.2子進(jìn)程所有者
# vi /usr/local/apache2.2/conf/httpd.conf
把daemon改為nobody
User nobody
Group nobody
一般說來,可以不需要的模塊包括:
#LoadModule env_module libexec/mod_env.so
#LoadModule negotiation_module libexec/mod_negotiation.so
#LoadModule status_module libexec/mod_status.so
#server side include已經(jīng)過時(shí)了
#LoadModule includes_module libexec/mod_include.so
#不需要將沒有缺省index文件的目錄下所有文件列出
#LoadModule autoindex_module libexec/mod_autoindex.so
#盡量不使用CGI:一直是Apache安全問題最多的地方
#LoadModule cgi_module libexec/mod_cgi.so
#LoadModule asis_module libexec/mod_asis.so
#LoadModule imap_module libexec/mod_imap.so
#LoadModule action_module libexec/mod_actions.so
#不使用安全認(rèn)證可以大大提高訪問速度
#LoadModule access_module libexec/mod_access.so
#LoadModule auth_module libexec/mod_auth.so
#LoadModule setenvif_module libexec/mod_setenvif.so
最好保留的有:
#用于定制log格式
LoadModule config_log_module libexec/mod_log_config.so
#用于增加文件應(yīng)用的關(guān)聯(lián)
LoadModule mime_module libexec/mod_mime.so
#用于缺省index文件:index.php等
LoadModule dir_module libexec/mod_dir.so
可用可不用的有:
#比如:需要在~/username/下調(diào)試
php
可以將
LoadModule userdir_module libexec/mod_userdir.so
#比如:需要將以前的URL進(jìn)行轉(zhuǎn)向或者需要使用CGI scrīpt-alias
LoadModule alias_module libexec/mod_alias.so
三、配置模塊
1.配置靜態(tài)頁面壓縮輸出模塊deflate
使用mod_deflate模塊
在httpd.conf中加入以下設(shè)置:
SetOutputFilter DEFLATE
DeflateFilterNote ratio
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|
png
)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
或者
DeflateFilterNote ratio
AddOutputFilterByType DEFLATE text/*
AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscrīpt
兩種配置方法的作用差不多,其目的主要是把一些不必要壓縮的文件禁止壓縮。
2.配置mod_cache模塊
# cd /usr/local/apache2.2/conf/Includes
# vi mod_cache.conf
在配置文件里添加如下語句
LoadModule disk_cache_module modules/mod_disk_cache.so
CacheRoot /
CacheSize 256
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
LoadModule mem_cache_module modules/mod_mem_cache.so
CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
vi /usr/local/apache2/conf/httpd.conf
在末尾添加上:
CacheForceCompletion 100
CacheDefaultExpire 3600
CacheMaxExpire 86400
CacheLastModifiedFactor 0.1
設(shè)置虛擬目錄
然后保存退出。啟動apache
參數(shù)的解釋:
mod_cache:
CacheEnable: 啟動 mod_cache,其后接兩個(gè)參數(shù)。第一個(gè)參數(shù)指定快取的種類,應(yīng)設(shè)為 mem (記憶體快取) 或 disk (磁碟快取) 之其一;第二個(gè)參數(shù)指定使用快取的 URI 路徑,如果對整個(gè)網(wǎng)站 (或虛擬主機(jī)) 進(jìn)行快取,簡單指定為根目錄(/) 即可。
CacheForceCompletion: 這個(gè)值指定當(dāng) HTTP request 被取消時(shí),內(nèi)容的產(chǎn)生動作要完成的百分比;預(yù)設(shè)是 60(%)。
CacheDefaultExpire: 指定快取的預(yù)設(shè)過期秒數(shù);預(yù)設(shè)值是一小時(shí) (3600)。
CacheMaxExpire: 指定快取最大的過期秒數(shù);預(yù)設(shè)值是一天 (86400)。
CacheLastModifiedFactor: 用來從回應(yīng)里 Last Modified 資訊算出 expire date。
計(jì)算方式是:
expire period (過期時(shí)距) = 最后更新后至今的時(shí)間間距 * CacheLastModifiedFactor

expire date = 目前時(shí)間 + expire period
不過無論如何,過期時(shí)間不能超過 CacheMaxExpire 的設(shè)定值。
現(xiàn)在。如果用squid對該服務(wù)器進(jìn)行反向代理的話,就可以通過cache 實(shí)現(xiàn)web的加速了
3.配置mod_expires模塊
mod_expires可以減少10%左右的重復(fù)請求,讓重復(fù)的用戶對指定的頁面請求結(jié)果都CACHE在本地,根本不向服務(wù)器發(fā)出請求。
mod_expires的安裝配置:
      ExpiresActive on
      ExpiresByType image/gif “access plus 1 month”
      ExpiresByType text/css “now plus 1 month”
      ExpiresDefault “now plus 1 day”
注釋:
所有的.gif文件1個(gè)月以后過期
所有的文件缺省1天以后過期
4.配置dosevasive模塊
/usr/local/apache2.2/bin/apxs -i -a -c mod_dosevasive20.c
編輯httpd.conf,加入以下內(nèi)容:
LoadModule dosevasive20_module modules/mod_dosevasive20.so
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
5.配置mod_limitipconn模塊
mod_limitipconn.c是一個(gè)非官方的apache防止多線程下載模塊,可以用來作為WEB文件的下載限制,但是它是使用ExtendedStatus On形式,工作在應(yīng)用層。當(dāng)同一個(gè)IP的連接到達(dá)限制的時(shí)候,apache對get請求發(fā)送:
HTTP/1.1 503 Service Temporarily Unavailable
從而使用戶不能下載,但并不能阻止這種攻擊,仍舊允許連接的。
# /usr/local/apache2.2/bin/apxs -c -i -a mod_limitipconn.c
修改apache配置文件:
# vi /usr/local/apache/conf/httpd.conf
同時(shí)需要設(shè)置以下參數(shù)在 httpd.conf 中 , 也可以在單個(gè)虛擬服務(wù)器中。
 
ExtendedStatus On
修改配置文件:
1 全局控制:
  在httpd.conf加上以下幾行:
  
               # 所有虛擬主機(jī)的/目錄
            MaxConnPerIP 3       # 每IP只允許3個(gè)并發(fā)連接
            NoIPLimit image/*    # 對圖片不做IP限制
      
      # 所有主機(jī)的/mp3目錄
    MaxConnPerIP 1           # 每IP只允許一個(gè)連接請求   
    OnlyIPLimit audio/mpeg video      # 該限制只對視頻和音頻格式的文件
      
2 局部限制,你也可以在虛擬主機(jī)的配置文件里設(shè)置IP限制,方法是完全一樣:
  
    ServerAdmin chenlf@chinalinuxpub.com
    ServerName server.domain.com
          ServerAlias *.domain.com
          UseCanonicalName OFF
          VirtualDocumentRoot /htdoc/domain/%1
  
              # 所有虛擬主機(jī)的/目錄
      MaxConnPerIP 5           # 每IP只允許3個(gè)并發(fā)連接
            NoIPLimit image/*        # 對圖片不做IP限制
        
              # 所有主機(jī)的/mp3目錄
      MaxConnPerIP 2           # 每IP只允許一個(gè)連接請求   
      OnlyIPLimit audio/mpeg video # 該限制只對視頻和音頻格式的文件
        
  
  ErrorLog /home/my/logs/error_log
  CustomLog /home/my/logs/access_log common
重啟apache,用多線程的下載工具下載時(shí),大于3個(gè)線程,其余的將得到信息:
HTTP/1.1 503 Service Temporarily Unavailable
或者根據(jù)User_Agent判斷,把已知的多線程工具都給deny 掉
in httpd.conf
…..
BrowserMatch “NetAnt” badguy
BrowserMatch “GetRight” badguy
BrowserMatch “JetCar” badguy
BrowserMatch “Mass Downloader” badguy
BrowserMatch “ReGet” badguy
BrowserMatch “DLExpert” badguy
BrowserMatch “FlashGet” badguy
BrowserMatch “Offline Explorer” badguy
BrowserMatch “Teleport” badguy
………..
order deny,allow
deny from env=badguy
allow from all
注意httpd里面應(yīng)該有 mod_setenvif模塊。
在你的apache的conf文件里面加入
LoadModule limitipconn_module lib/apache/mod_limitipconn.so
ExtendedStatus On
6.安裝modsecurity(mod_security 可以加強(qiáng)apache的安全性,特別是在防sql 注入上有很好的效果。)
下載站點(diǎn):http://www.modsecurity.org/download/
# /usr/local/httpd220/bin/apxs -cia mod_security.c
打開httpd.conf查看是否有如下文字加入
在httpd.conf中添加下列一段mod_security的配置文件
LoadModule security_module      modules/mod_security.so
SecFilterEngine On
SecFilterCheckURLEncoding On
SecFilterDefaultAction “deny,log,status:500″
#SecFilterForceByteRange 32 126
#SecFilterScanPOST On
SecAuditLog logs/audit_log
###
SecFilter “\.\./”
#####
SecFilter /etc/*passwd
SecFilter /bin/*sh
#for CSS (Cascading Style Sheets) attack
SecFilter “”
#for sql attack
SecFilter “delete[ ]+from”
SecFilter “insert[ ]+into”
SecFilter “select.+from”
SecFilter “union[ ]+from”
SecFilter “drop[ ]”
四、滾卷log
編譯前設(shè)置export CFLAGS=”-O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE”
使其支持2G以上文件。
ErrorLog “|/usr/local/sbin/cronolog    /usr/local/apache2.2/logs/error_%Y%m%d.log”
CustomLog “|/usr/local/sbin/cronolog    /usr/local/apache2.2/logs/access_%Y%m%d.log” combined
用gzip壓縮每天的日志:
30 4 * * * /usr/bin/gzip -f /home/apache/logs/`date -d yesterday +%w`/access_log
日志的定期刪除:
30 5 * * */usr/bin/find /home/apache/logs/ -name access_log.gz -mtime +3 |xargs -r /bin/rm -f
運(yùn)行語法檢查命令檢查語法,出現(xiàn)錯(cuò)誤后繼續(xù)調(diào)整。
# ./bin/apachectl -t
html網(wǎng)頁跳轉(zhuǎn)
使apache的日志文件里不記錄圖片文件
     找到:  
      LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”" combined
      LogFormat “%h %l %u %t \”%r\” %>s %b” common
      LogFormat “%{Referer}i -> %U” referer
      LogFormat “%{User-agent}i” agent
    再后面加上圖片文件的類型
      SetEnvIf Request_URI \.gif$ gif-image
      SetEnvIf Request_URI \.GIF$ gif-image
      SetEnvIf Request_URI \.jpg$ gif-image
      SetEnvIf Request_URI \.JPG$ gif-image
      SetEnvIf Request_URI \.png$ gif-image
      SetEnvIf Request_URI \.js$    gif-image   
      SetEnvIf Request_URI \.bmp$ gif-image
      SetEnvIf Request_URI \.css$ gif-image
      SetEnvIf Request_URI \.mid$ gif-image
      SetEnvIf Request_URI \.swf$ gif-image
      SetEnvIf Request_URI \.mmf$ gif-image
      SetEnvIf Request_URI \.wma$ gif-image
      SetEnvIf Request_URI \.midi$ gif-image
    日志
      CustomLog /usr/local/apache/logs/access.log combined env=!gif-image
使用兩個(gè)
ProxyPassReverse / http://%{HTTP_HOST}:8088/
RewriteEngine on                                          
RewriteCond     %{REQUEST_URI} !.*\.(gif|
png
|jpg)$
RewriteRule ^/(.*) http://%{HTTP_HOST}:8088/ $1 [P]
Linux下檢測Apache進(jìn)程數(shù)量并自動重啟的腳本
在/etc/crontab里,定時(shí)執(zhí)行檢測腳本,檢測系統(tǒng)的Apache,和Mysql進(jìn)程是否超出標(biāo)準(zhǔn),超標(biāo)的話,自動重啟,沒有的話,記錄進(jìn)程數(shù)據(jù).
Crontab的內(nèi)容(每30分鐘執(zhí)行一次,并將結(jié)果記錄在/var/log/chksys.log)
0,30 * * * * root /usr/local/chksys.sh >> /var/log/chksys.log
/usr/local/chksys.sh代碼:
#!/bin/bash
#check apache,mysql thread and auto reboot system
#Powered by ipaddr(aspbiz)
#config
MaxApacheThread=300
MaxMysqlThread=250
NeedReboot=0
ApacheThread=`ps -A|grep http|wc -l`
MysqlThread=`ps -A|grep mysql|wc -l`
if [ $ApacheThread -gt $MaxApacheThread ]
then
NeedReboot=1
fi
if [ $MysqlThread -gt $MaxMysqlThread ]
then
NeedReboot=1
fi
if [ $NeedReboot -eq 1 ]
then
echo “—————————–”
echo $(date +”%y-%m-%d %H:%M:%S”
echo “—————————–”
echo “Apache:$ApacheThread;Mysql:$MysqlThread.”
echo “System is busy,reboot”
reboot
else
echo “—————————–”
echo $(date +”%y-%m-%d %H:%M:%S”
echo “—————————–”
echo “Apache:$ApacheThread;Mysql:$MysqlThread.”
echo “System is normal”
fi
SVN服務(wù)器搭建完全手冊
cvs, 版本控制, 系統(tǒng)維護(hù), Linux, svn準(zhǔn)備,下載所需要文件.
檢查已安裝的 Apache2 是否已經(jīng)安裝了 mod_dav .
編譯SVN,遇到的問題和解決方法
使用 默認(rèn)文件系統(tǒng)(fsfs) 保存數(shù)據(jù)
使用 Berkeley DB 保存數(shù)據(jù)
配置Apache和SVN,測試.
其它小結(jié)
從Windows平臺上數(shù)據(jù)轉(zhuǎn)移
配置文件,使用其支持對文件中的 $Id$ 標(biāo)簽每次提交的時(shí)候自動更新版本信息.
基于路徑的權(quán)限控制
常用SVN命令
相關(guān)資源
準(zhǔn)備,下載所需要文件
本文測試環(huán)境
Linux MY_SERVER 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux
Apache 2.2.2
最新的版本 Subversion 可以在這里找到 :http://subversion.tigris.org/project_packages.html
檢查已安裝的 Apache2 是否已經(jīng)安裝了 mod_dav
如果已經(jīng)成功安裝了Apache,使用 httpd -M 來查看有沒有安裝 dav_module,如果沒有的話 必須附加 ‘–enable-dav’ ‘–enable-dav-fs’ 兩個(gè)參數(shù)重新編譯 Apache,否則即使編譯通過了svn,apache也會啟動不起來.
編譯APACHE2.2
修改部分源代碼
# vi server/mpm/worker/worker.c
找到下面幾行,并改成如下的數(shù)值,其目的是在源碼中修改apache可支持的 最大線程數(shù)和最大客戶端數(shù)目。
# define DEFAULT_SERVER_LIMIT 256
# define MAX_SERVER_LIMIT 40000
# define DEFAULT_THREAD_LIMIT 256
# define MAX_THREAD_LIMIT 40000
編譯配置
優(yōu)化編譯選項(xiàng)及配置apache可加載的模塊
# CFLAGS=”-O6 -mpentiumpro -fomit-frame-pointer” CXX=gcc CXXFLAGS=”-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti” \
> ./configure –prefix=/usr/local/apache2.2 –enable-mods-shared=all \
> –enable-so –with-mpm=worker –enable-deflate \
> –enable-cache –enable-disk-cache –enable-mem-cache –enable-file-cache \
> –enable-proxy –enable-suexec
編譯及安裝
# gmake && make install
優(yōu)化apache配置選項(xiàng)
修改MPM(多道處理器)參數(shù)
# cd /usr/local/apache2.2
# vi conf/extra/httpd-mpm.conf
找到如下選項(xiàng),并改成對應(yīng)的數(shù)值
ServerLimit 64
ThreadLimit 128
StartServers 8
MaxClients 8192
MinSpareThreads 50
MaxSpareThreads 256
ThreadsPerChild 128
MaxRequestsPerChild 0
修改apache2.2子進(jìn)程所有者
# vi /usr/local/apache2.2/conf/httpd.conf
把daemon改為nobody
User nobody
Group nobody
編譯SVN,遇到的問題和解決方法
使用默認(rèn)的文件系統(tǒng)保存數(shù)據(jù).
最終完整通過安裝和測試的編譯參數(shù)為:
./configure –with-apxs=/usr/local/apache2/bin/apxs \
–with-apr=/home/src/server/httpd-2.2.2/srclib/apr \
–with-apr-util=/home/src/server/httpd-2.2.2/srclib/apr-util
# make
# make install
其中 /home/src/server/ 為 httpd-2.2.2 源代碼所在文件夾,根據(jù)實(shí)際情況調(diào)整一下.
遇到問題
–with-apr 和 –with-apr-util 如果沒有加上的話,即使編譯成功了也會出現(xiàn)
Can’t set position pointer in file ‘/home/svn/repos/db/revs/0′: Invalid argument
這樣的錯(cuò)誤提示.
暫時(shí)不能使用 Berkeley DB [* 已解決]
svn保存文件更新數(shù)據(jù)庫的方法有兩個(gè),一種是直接使用 fs (filesystem)來保存,另一種是通過Oracle提供支持的開源數(shù)據(jù)庫 Berkeley DB 進(jìn)行保存。但是如果加上 –with-berkeley-db=/usr/local/BerkeleyDB.4.4 就會configure時(shí)就會報(bào)錯(cuò).
configure: error: APR-UTIL was installed independently, it won’t be
possible to use the specified Berkeley DB: /usr/local/BerkeleyDB.4.4
我想 apr-unit 暫時(shí)不支持吧,我們就用默認(rèn)的fs好了.
在make 的時(shí)候可能會遇到缺少 srclib/apr/libapr-1.la,srclib/apr-util/libaprutil-1.la 兩個(gè)文件,找不到而make error.
解決辦法:/usr/local/apache2/lib/ 中找到,將其復(fù)制到源代碼文件夾相應(yīng)的位置中.
UPDATE!!!
使用 BerkeleyDB 保存數(shù)據(jù)
安裝 BerkeleyDB
cd /usr/local/src
$ wget http://downloads.sleepycat.com/db-4.3.29.tar.gz
$ tar xzvf db-4.3.29.tar.gz
$ cd /usr/local/src/db-4.3.29/build_unix
$ ../dist/configure –enable-compat185
$ make
$ make install
更新apr和apr-util源代碼
# 清理編譯后的.la文件
$ cd /usr/local/src/httpd-2.2.3
$ make clean
$ cd /usr/local/src/subversion-1.3.2
$ rm -rf apr
$ rm -rf apr-util
$ cp -rf /usr/local/src/httpd-2.2.3/srclib/apr ./
$ cp -rf /usr/local/src/httpd-2.2.3/srclib/apr-util/ ./
編譯安裝
# /configure –with-apxs=/usr/local/apache2/bin/apxs \
> –with-berkeley-db=/usr/local/BerkeleyDB.4.3 \
> –with-ssl
# make
# make install
遇到問題
BerkeleyDB 版本不能大于 4.3.否則同樣會出現(xiàn)以下錯(cuò)誤.
configure: error: APR-UTIL was installed independently, it won’t be
possible to use the specified Berkeley DB: /usr/local/BerkeleyDB.4.4
主要是apr-util 暫時(shí)不支持4.4的版本.
必須更新apr,apr-util 源代碼.
subversion-1.3.2 自帶的 apr-util 的版本是0.9.6的,必須升級為 1.2.7 雖然能編譯過去。但在 svn checkout 的時(shí)候會提示
svn: REPORT request failed on ‘/!svn/vcc/default’
svn: REPORT of ‘/!svn/vcc/default’: Could not read status line: connection was closed by server.
這個(gè)問題困擾了我很長時(shí)間,Google和官方論壇都無結(jié)果。后來昨天竟然自己無意中解決了,感動的得哭了:)
配置Apache和SVN,測試
成功編譯svn后會在 httpd.conf 中自動加上
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
兩個(gè)模塊,沒有的話,自行加上或檢測是否真的編譯成功.
假設(shè)我們現(xiàn)在要將一個(gè)名為 Lair 的項(xiàng)目導(dǎo)入到 SVN中
Apache的配置
在 conf/httpd.conf 或 conf/extra/httpd-vhosts.conf 中加入
DAV svn
SVNPath /home/svn/Lair
可以參考以下apache的配置,實(shí)現(xiàn)數(shù)據(jù)加密傳輸,用戶身份驗(yàn)證.
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl.
SSLPassPhraseDialog exec:/etc/sendsslpwd
SSLSessionCache shmcb:/usr/local/apache2/logs/ssl_scache(512000)
SSLSessionCacheTimeout 300
SSLMutex file:/usr/local/apache2/logs/ssl_mutex
DocumentRoot /var/SVNRoot
ServerName svn.yousite.com:443
ServerAdmin webmaster@yousite.com
DAV svn
SVNPath /var/SVNRoot
AuthzSVNAccessFile /etc/svnserve.conf
Satisfy Any
AuthType Basic
AuthName “yousite SVN Repository”
AuthUserFile /etc/httpd-passwords.txt
Require valid-user
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/ssl/server.crt
SSLCertificateKeyFile /etc/ssl/server.key
更詳細(xì)的配置說明文檔 http://svnbook.red-bean.com/nightly/en/svn.ref.mod_dav_svn.conf.html
配置,并且測試SVN,
創(chuàng)建一個(gè)新用戶,用了保存?zhèn)}庫.
useradd -m svn
創(chuàng)建一個(gè)新模塊
# su daemon #(apache是以daemon用戶運(yùn)行的,所以要切換身份,否則可能會報(bào)目錄訪問權(quán)限錯(cuò)誤)
# svnadmin create –fs-type fsfs /home/svn/Lair
導(dǎo)入原來的項(xiàng)目
svn import /var/www/Lair http://localhost/svn/Lair -m ‘Initial import’
重新建立工作目錄
# rm -rf /var/www/Lair ##(注意備份!!)
# svn checkout http://localhost/svn/Lair
測試打開 http://localhost/svn/Lair
如能看到一個(gè)你項(xiàng)目錄列表,說明您成功了。
其它小結(jié)
數(shù)據(jù)轉(zhuǎn)移:
從 Windows 平臺 SVN 服務(wù)器轉(zhuǎn)移
如果windows svn儲存的格式也是dbd的話,直接將SVN的文件夾copy過來即可.然后
執(zhí)行 svnadmin recover /var/SVNRoot 檢查一下數(shù)據(jù)庫是否損壞.
最后注意權(quán)限,確保 db 目錄下的所有文件可寫。
chmod 755 db
chmod 666 db/*
否則checkout時(shí)出現(xiàn)以下錯(cuò)誤,多數(shù)是因?yàn)?文件或者目錄權(quán)限問題 引起的,可以嘗試用 chown 或者 chmod 命令修改一下權(quán)限
Could not open the requested SVN filesystem
Could not open the requested SVN filesystem
另外一種方法沒有測試過,原理大致和mysqldump一樣,將svn導(dǎo)出為文本文件,然后重新導(dǎo)入,好處是可以避免因?yàn)榇鎯Ω袷讲煌鴮?dǎo)致的數(shù)據(jù)轉(zhuǎn)移困難。
# dump data to file (assuming a repo @ c:\repo):
svnadmin dump c:\repo > c:\repo.txt
# Copy the file over to linux:
mkdir /repo
svnadmin create /repo
svnadmin load /repo
設(shè)置訪問控制
當(dāng) httpd.conf 中 設(shè)置 AuthzSVNAccessFile 時(shí),可以設(shè)置不同用戶對不同目錄的訪問控制.以下是一個(gè)例子.
[groups]
root = admin.root
web = user1,user2
soft = user3,user4
[/]
@root = rw
[/www]
@web = rw
[/soft]
@soft = rw
詳細(xì)的說明文檔:http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html
配置文件,使用其支持對文件中的 $Id$ 標(biāo)簽每次提交的時(shí)候自動更新版本信息(自動屬性).
Windows : C:\Documents and Settings\%USERNAME%\Application Data\Subversion\config
Linux : ~\.subversion\config
[miscellany]
enable-auto-props = yes
[auto-props]
*.php=svn:keywords=Id
*.html=svn:keywords=Id
關(guān)于自動屬性的更高級討論
幾條常用svn 命令
$ svn update
$ svn add “filename”
$ svn commit
參考
http://subversion.tigris.org/faq.html [FAQ]
http://svnbook.red-bean.com/ [文檔]
http://www.svnforum.org/ [論壇]
http://d.hatena.ne.jp/cooldaemon/searchdiary?word=%2a%5bSubversion%5d
http://artis.imag.fr/~Xavier.Decoret/resources/svn/index.html
http://www.germane-software.com/~ser/R_n_R/subversion.html#ftn.N45
http://zen.sh.nu/book/zh/index.html


寫的挺好的,收藏了


本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/29960/showart_1409188.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP