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最後增長如下內容
若是能夠正常打開如上頁面則說明安裝配置正常,能夠正常使用了,在頁面上能夠看到因爲目前資料庫中沒有內容,所以看到的內容爲空。
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 保存文件,退出。