linux下安裝SVN Apache2.2.17 mysql5.1.51 PHP5.2.14

1、Apache安裝 php

首先安裝svn必須的apache組件 html

下載apr跟apr-util
  apr-1.3.3.tar.gz apr-util-1.3.4.tar.gz zlib-1.2.3.tar.gz
expat-2.0.0.tar.gz  sqlite-amalgamation-3.6.13.tar.gz    neon-0.29.5.tar.gz
  解壓
   tar zvxf apr-1.3.3.tar.gz
   tar zvxf apr-util-1.3.4.tar.gz
   tar zvxf zlib-1.2.3.tar.gz
mysql

   tar zvxf expat-2.0.0.tar.gz linux

   tar zvxf sqlite-amalgamation-3.6.13.tar.gz web

   tar zvxf neon-0.29.5.tar.gz sql

安裝
   cd apr-1.3.3
   ./configure --prefix=/usr/local/apr
   make && make install

   cd apr-util-1.3.4
   ./configure   --with-apr=/usr/local/apr
   Make && make install

   cd zlib-1.2.3
   ./configure   --prefix=/usr/local/zlib
   Make && make install
shell

  cd expat-2.0.0
   ./configure   --prefix=/usr/local/expat
   Make && make install
apache

 cd sqlite-amalgamation-3.6.13 瀏覽器

  ./configure   --prefix=/usr/local/sqlite
   Make && make install
服務器

 cd neon-0.29.5

  ./configure   --prefix=/usr/local/neon
   Make && make install

下載apache (http://httpd.apache.org/)到tmp解壓,tar –zxvf httpd-2.2.17tar.gz
cd httpd-2.2.17
mkdir /usr/local/apache2
./configure --prefix=/usr/local/apache2 --enable-so --enable-dav --enable-module=so --enable-mods-shared=all --enable-rewrite  --with-mpm=prefork --enable-cache--with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/apr/bin/apu-1-config




注意:--prefix指定安裝目錄,注意必定要加--enable-so是核心可以裝載DSO和--enable-dav是安裝mod_dav_svn.so跟mod_authz_svn.so這兩個模塊

make
make install
安裝apache完成,輸入命令 #/usr/local/apache2/bin/apachectl -k start
啓動Apache
service httpd start

安裝svn


1. 下載最新的subversion-1.6.13
subversion-1.6.13.tar.gz
2. 安裝
   ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config  --with-apr-util=/usr/local/apr/bin/apu-1-config  --with-ssl  --with-zlib=/usr/local/zlib  --
with-neon=/usr/local/neon  --enable-maintainer-mode
make
make install

#svnadmin --version

3. 爲了方便使用subversion的命令,將subversion安裝目錄下的bin目錄加入到Path中
vi /etc/profile
最後加入:
SVN_HOME=/usr/local/subversion
PATH=$PATH:$SVN_HOME/bin:
export SUSBVERSION PATH

4. 配置subversion

準備:用root帳號建立svn帳戶,好比svnroot

如下操做,均使用svn帳戶操做,以便權限問題(能搞死人)
1>. 建立帳號密碼文件

進入apache/bin目錄
htpasswd –c /data/svn/passwd.conf svn用戶名

而後輸入密碼,兩次確認
注意:第一次設置用戶密碼要加入 –c 這個參數(新建文件),之後就能夠不用了
2>. 建立資料庫
首先要建立一個資料庫(我使用單資料庫的方式),使用svnadmin增長資料庫
cd /usr/local/subversion/bin
./svnadmin create /data/svn/svnroot/www
到www下看多了不少文件,說明建立成功
3>.建立權限文件
touch  /data/svn/authz.conf
vi authz.conf
[groups]   #組
Admin = 新建立的svn用戶名 #admin組成員
[www:/]
@Admin = rw
[/]
* = r #svn父目錄全部人都與讀的權限

5. 配置apache的httpd.conf
打開apache的conf/httpd.conf,安裝subversion後,apache的conf/httpd.conf文件會自動增長了模塊
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

相應的so文件也自動copy到了apache/modules。

須要本身動手修改apache下的httpd.conf最後增長如下內容

單個版本庫:
<Location /svn>
DAV svn
SVNPath /data/svn/svnroot/www
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /data/svn/passwd.conf  
AuthzSVNAccessFile /data/svn/authz.cong
Require valid-user
</Location>

多個版本庫:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /data/svn/svnroot
AuthType Basic
AuthName " Subversion repository "
AuthUserFile /data/svn/passwd.conf
AuthzSVNAccessFile /data/svn/authz.conf
Require valid-user
</Location>


注意:
(1) 單個版本庫就是SVNPath /data/svn/svnroot/www跟./svnadmin create /data/svn/svnroot/www目錄要同樣【這個是對單個版本庫】,多個版本庫只須要svn的主目錄便可,這裏SVNParentPath /data/svn/svnroot
(2) AuthzSVNAccessFile是權限控制文件,單個版本庫不須要,多個版本庫要設置不一樣版本庫的權限
(3) 目錄svnroot目錄的權限設置成750

注:下面的6、七是單個版本庫測試的效果,多個版本庫相似!

6. 驗證安裝
打開瀏覽器,輸入地址爲http://服務器ip/svn
出現登錄窗口,輸入用戶名、密碼

若是能夠正常打開如上頁面則說明安裝配置正常,能夠正常使用了,在頁面上能夠看到因爲目前資料庫中沒有內容,所以看到的內容爲空。

7.導入數據到資料庫
cd /usr/local/subversion/bin
./svn import /要導入的目錄/test file:///data/svn/svnroot/test -m 「說明文字任意寫」
從新打開瀏覽器,輸入地址http://服務器ip/svn,輸入用戶名密碼便可

8.版本庫服務器和web服務器的同步

爲了能夠在修改完代碼提交到SVN服務器後,WEB服務器直接同步.須要配置SVN的鉤子,打開版本庫的hooks目錄,能夠看到有一個post- commit.tmpl文件,這是一個模板文件,複製一份放在此目錄下,命名爲post-commit,裏面原有的代碼所有註釋掉.這裏能夠執行shell 命令,每次commit完成後都會調用此文件.

1>.單版本庫跟服務器目錄的同步:
進入到版本庫下的hooks下去
subversion/bin/svn checkout file:///版本庫的目錄 /本地要取出的目錄(這個目錄要另外新建,保持和版本庫同步更新)
cd /data/svn/svnroot/www/hooks
vi post-commit

#!/bin/sh

export LANG=zh_CN.GBK #輸出編碼設置  或者設置爲export LANG=en_US.UTF-8
SVN=/usr/local/subversion/bin/svn
WEB=/data/www #web目錄要更新同步的目錄
$SVN update --username apache --password 123456 $WEB    #這裏面的username跟password必定要有讀寫的權限

chmod 757 post-commit #給它可執行的權利
2>.多版本跟服務器目錄的同步
進入到版本庫下的hooks下去
subversion/bin/svn checkout file:///版本庫的目錄 /本地要取出的目錄(這個目錄要另外新建,保持和版本庫同步更新,即你的web站點的目錄)

cd /data/svn/svnroot/www/hooks
vi post-commit

#!/bin/sh

export LANG=zh_CN.GBK #輸出編碼設置export LANG=en_US.UTF-8
SVN=/usr/local/subversion/bin/svn
$SVN update --username 用戶名 --password 密碼 /checkout同步目錄(即你的web站點目錄)    #裏面的username跟password必定要有讀寫的權限(修改權限775)

chmod 757 post-commit#給它可執行的權利

注意:(紅色字體必定要注意)
1.svn checkout file:///版本庫的目錄 /本地要取出的目錄 ——>這步必定要作,不然不會同步修改
2.目錄位置必定要對應好了,要不出現問題累死……

問題1:

You don't have permission to access /svn/ on this server.

主要緣由是:/home/svnroot/repository/dev目錄對於你的svn用戶(如:svnroot)沒有權限,多是由於你用svnadmin create時是以root運行的,因此,mod_dav_svn就沒有相應權限等

解決辦法:

chown -R svn用戶  /home/svnroot/repository/dev

chgrp -R svn用戶所屬用戶組  /home/svnroot/repository/dev

chmod -R 775 /home/svnroot/repository/dev

由於要使mod_dav_svn模塊生效,必須重啓apache

問題2:

客戶端提交時出現attempt to write a readonly database的問題

緣由是你的版本庫中的db目錄,apache沒有寫的權限,修改db目錄權限apache可寫便可
 

2、Mysql安裝

MySQL-server-community-5.1.51-1.rhel5.i386.rpm    安裝服務端
MySQL-client-community-5.1.51-1.rhel5.i386.rpm     安裝客戶端
MySQL-devel-community-5.1.51-1.rhel5.i386.rpm     用於php的mysql安裝
rpm –ivh MySQL-server-community-5.1.51-1.rhel5.i386.rpm
rpm –ivh MySQL-client-community-5.1.51-1.rhel5.i386.rpm
rpm –ivh MySQL-devel-community-5.1.51-1.rhel5.i386.rpm

3、 PHP準備的tar包安裝

安裝php以前要準備:
curl-7.15.0.tar.gz
freetype-2.3.5.tar.gz
gd-2.0.35.tar.gz
gettext-0.16.1.tar.gz
jpegsrc.v6b.tar.gz
libpng-1.2.31.tar.bz2
libxml2-2.6.31.tar.gz
t1lib-5.0.0.tar.gz
tiff-3.8.2.tar.gz
zlib-1.2.3.tar.gz

3.1 安裝curl-7.15.0.tar.gz
      #tar zxvf curl-7.15.0.tar.gz
      #cd curl-7.15.0
      #mkdir /usr/local/crul
      #./configure --prefix=/usr/local/curl
      #make clean
      #make
      #make install
3.2 jpegsrc.v6b.tar.gz
      #mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1}
      #./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
      #make clean
      #make
      #make install
3.3 libxml2-2.6.31.tar.gz
      #tar zxvf libxml2-2.6.31.tar.gz
      #cd libxml2
      #mkdir usr/local/libxml2
      #./configure --prefix=/usr/local/libxml2
      #make clean
      #make(時間可能稍長些)
      #make install
      #cp xml2-config /usr/bin
3.4 PDFlib-7.0.3-Linux-php.tar.gz
      #tar xvf PDFlib-7.0.3-Linux-php.tar.gz
      #cd pdflib
      #cp bind/php5/php520mt/libpdf-php.so /usr/local/lib/
      (上面的php520mt目錄的同級目錄中有php503,php510,php520目錄,不知道是否是版本的區別)
3.5 t1lib-5.0.0.tar.gz
      #tar zxvf t1lib-5.0.0.tar.gz
      #cd t1lib
      #mkdir /usr/local/t1lib
      #./configure --prefix=/usr/local/t1lib
      #make without-doc
      #make install
3.6 freetype-2.3.5.tar.gz
      #tar zxvf freetype-2.3.5.tar.gz
      #cd freetype
      # mkdir /usr/local/freetype
      #./configure --prefix=/usr/local/freetype
      #make clean
      #make
      #make install
3.7 zlib-1.2.3.tar.gz
      #tar zxvf zlib-1.2.3.tar.gz
      #cd zlib-1.2.3
      #./configure --shared
      #make clean
      #make
      #make install
3.8 libpng-1.2.26.tar.gz
      #tar zxvf libpng-1.2.26.tar.gz
      #cd libpng
      #cp scripts/makefile.linux ./makefile
      #mkdir /usr/local/libpng
      #./configure --prefix=/usr/local/libpng
      #make clean
      #make
      #make install
3.9 gettext-0.16.tar.gz
      #tar zxvf gettext-0.16.tar.gz
      #cd gettext
      #mkdir /usr/local/gettext
      #./configure --prefix=/usr/local/gettext
      #make clean
      #make
      #make install(時間稍長)
3.10 gd-2.0.35.tar.gz
      #tar zxvf gd-2.0.35.tar.gz
      #cd gd
      #./configure --with-png=/usr/local/lib --with-zlib=/usr/local/lib --with-freetype=/usr/local/freetype/lib --with-jpeg=/usr/local/jpeg/lib
      #make clean
      #make
      #make install

4、安裝PHP

下載php-5.2.14
tar gxvf php-5.2.14.tar.bz2
cd php-5.2.14
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --enable-track-vars --with-sockets --enable-sockets --with-sysvshm --with-sysvsem --with-pdflib-dir=/usr/local/lib --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/lib --enable-mbstring=all --with-zlib-dir=/usr/local/lib --with-freetype-dir=/usr/local/freetype --with-curl=/usr/local/curl --with-libxml-dir=/usr/local/libxml2/lib --with-gettext=/usr/local/gettext/lib --with-gd --with-mysql=/usr --with-mysqli=/usr/bin/mysql_config
#make clean
#make
#make test
# make install
Php.ini文件的修改
#cp php.ini-production /usr/local/lib/php.ini
#vi /usr/local/lib/php.ini
查找修改extension_dir='./'的內容(以下)
extension_dir = /usr/local/lib
添加PHP的環境變量:
臨時的 #export PATH=$PATH:/usr/local/php/bin
永久性的:在/etc下有個profile的文件,將其打開把「export PATH=$PATH:/usr/local/php/bin」這句放在「export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC」的上一行
當即生效環境配置,不須要重啓,用下命令:
. /etc/profile

5、修改apache配置文件httpd.conf        #vi /usr/local/apache2/conf/httpd.conf        找到 AddType application/x-gzip .gz .tgz ,在下面分別添加        AddType application/x-httpd-php .htm        AddType application/x-httpd-php .html        AddType application/x-httpd-php .phtml        AddType application/x-httpd-php .php 查找DirectoryIndex index.html 在其後輸入 index.php 查找確保有以下兩行配置: LoadModule php5_module        modules/libphp5.so LoadModule rewrite_module modules/mod_rewrite.so 保存文件,退出。

相關文章
相關標籤/搜索