您的位置:首页 > 运维架构 > Apache

LINUX+APACHE+MYSQL+PHP+SVN+SVNMANAGER编译安装配置

2011-09-23 12:00 1026 查看
Linux: CentOS5.4

Apache: httpd-2.2.14.tar.bz2

Mysql: mysql-5.0.22.tar.gz

Php: php-5.2.12.tar.gz

Svn: subversion-1.6.6.tar.bz2

Svn deps: subversion-deps-1.6.6.tar.bz2

Svnmanager: svnmanager-1.08.tar.gz

1.安装apache

tar jxvf httpd-2.2.14.tar.bz2 //解包

cd httpd-2.2.14 //进来准备编译安装apache

mkdir /usr/local/apache2 //这个目录用来安装apache

./configure --prefix=/usr/local/apache2 --enable-so --enable-dav --enable-dav-fs --enable-maintainer-mode //so是开启动态库支持,svn要求apache必须启用so,dav和dav-fs是将来svn认证用的,maintainer是开启调试模式不加亦可。

make;make install //编译并安装

id apache //确认apache用户不存在

useradd apache //添加apache用户,将来apache就以这个用户运行

chown -R apache.apache /usr/local/apache2 //更改apache安装目录属主、组,这个不是必须的

vi /usr/local/apache2/conf/httpd.conf //修改apache配置文件,让它以用户apache身份运行

修改User和Group均为apache

esc //按esc退出编辑模式

shift+zz //按住shift键然后按两次z键,即保存退出。

2.安装mysql

tar zxvf mysql-5.0.22.tar.gz //解包

cd mysql-5.0.22 //进去准备编译安装

mkdir /usr/local/mysql //先创建个安装目录

./configure --prefix=/usr/local/mysql //指定安装目录为刚创建的/usr/local/mysql

make;make install //编译并安装

id mysql //确认mysql用户不存在

useradd mysql //要是mysql用户已经存在了,可就不要在useradd了哦。

/usr/local/mysql/bin/mysql_install_db --user=mysql //以用户mysql身份创建默认库

/usr/local/mysql/bin/mysqld_safe & //让mysql启动,并在后台运行

/usr/local/mysql/bin/mysql -u root password gaso123 //给root用户加个密码,挡一挡菜鸟***:)

3.安装SVN

tar jxvf subversion-1.6.6.tar.bz2 //解包后得到subversion-1.6.6目录

tar jxvf subversion-deps-1.6.6.tar.bz2 //这个是SVN的依赖包,解压后自动放在subversion-1.6.6目录里,本来这个依赖包里主要是要用到apr和apr-util,但是我们安 装apache的时候已经默认安装上这两个模块了,所以剩下个neon模块在这包里(我不太确定这个是否是必须的)是我们需要用的。

cd subversion-1.6.6

mkdir /usr/local/svn //svn将就装这里面

./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2/bin/apr-1-config --with-apr-util=/usr/local/apache2/bin/apu-1-config

//prefix还是指定安装目录,apxs指定apache配置,这个apxs应该是里面涵盖了apache的安装目录配置文件目录模块目录执行 目录等等的位置参数,指定了它的位置apache就整个显形了,svn就能知道想知道的关于apache的一切(这个参数很好很强大哦),withapr 和aprutil这两个我推测即使不指定svn也能找到它,因为apxs很好很强大嘛,但没试验过,有兴趣的同学可以试下。

make;make install

4.检查svn安装配置

mkdir -p /app/svn //这个目录将作为svn的版本库的总(父)目录使用

vi /usr/local/apache2/conf/httpd.conf //apache的配置需要做些检查和更改

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so
//有这两个模块则svn安装是正确的,若是带#注释的就把#删掉,同时要保证/usr/local/apache2/modules目录下有mod_dav_svn.so和mod_authz_svn.so这两个文件。

手动添加以下内容:

<Location /svn> //定义网页目录为/svn

DAV svn //开启svn(融合apache的svn哦)

SVNListParentPath On //开启svn版本库父目录功能

SVNParentPath /app/svn //指定父目录位置,以后所有版本库都将存放在该目录下

AuthType Basic //指定授权模式

AuthName "SVN REPOS" //登陆窗口标题显示SVN REPOS

AuthUserFile /usr/local/svn/svn_passwdfile //指定访问版本库的账户和密码存放文件,该文件需要用apache的htpasswd命令创建

AuthzSVNAccessFile /usr/local/svn/svn_accessfile //指定访问版本库的用户和组的权限控制文件

Require valid-user //要求有效的用户才能访问

</Location> //字段结束标志

esc //按esc退出编辑模式

shift+zz //保存退出

5.测试svn与apache是否融合成功

/usr/local/apache2/bin/htpasswd -c /usr/local/svn/svn_passwdfile gaso //创建访问版本库的账户和存放账户的文件,回车后会提示输入密码两边(我们用gaso123做密码),因为是第一次创建,svn_passwdfile 文件原本不存在所以需要加-c参数,以后创建svn用户就不需要-c参数了,直接引用svn_passwdfile文件即可

vi /usr/local/svn/svn_accessfile

[/]

gaso=rw
//这两行授权用户gaso有访问所有版本库的权限

[gasorepo:/]

gaso=rw
//这两行授权用户gaso有访问gasorepo版本库的权限

保存退出

/usr/local/svn/bin/svnadmin create /app/svn/gasorepo //创建gasorepo版本库

6.启动apache,测试svn

chown -R apache.apache /app/svn //我们这个部署里svn是通过apache对版本库进行访问的,它对版本库进行访问其实就是通过apache的用户apache来进行的,所以版本库父 目录就必须属于用户apache才能规避权限问题,最后的svnmanager也有同样的问题,所以这个属主修改很重要!

/usr/local/apache2/bin/httpd -k start //启动apache

在浏览器里输入http://localhost/svn/gasorepo //输入用户名gaso和密码gaso123就可以看到版本库了,不过里面没东西:)

也可以直接访问http://localhost/svn //这个直接访问版本库总目录

7.安装php

tar zxvf php-5.2.12.tar.gz

cd php-5.2.12

mkdir /usr/local/php

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql //php用apxs2指定apache2.0,用apxs指定apache1.x,所以这里用apxs2,因为svnmanager要用到mysql所 以这里还要withmysql

make;make install

cp php.ini-recommended /usr/local/php/lib/php/php.ini //拷贝php的配置文件到它该去的地儿

编辑这个php.ini,添加一行include_path = /usr/local/php/lib/php

8.测试php安装是否成功:

vi /usr/local/apache2/conf/httpd.conf //修改apache配置文件

检查是否有以下内容,没有则添加:

LoadModule php5_module modules/libphp5.so //没有这个模块就手工添加,同时要检查apache的安装目录里modules目录下,要保证有libphp5.so这个文件

DirectoryIndex index.php index.html //主要是加上index.php

vi /usr/local/apache2/htdocs/index.php //编辑一个php测试文件

加入以下内容:

<?php

phpinfo();

?>


保存退出

重新启动apache

/usr/local/apache2/bin/httpd -k restart

访问http://localhost

能看到apache的php信息页面则说明php安装成功

9.安装VersionControl_SVN

/usr/local/php/bin/pear install VersionControl_SVN-0.3.3 //pear是安装php的时候默认安装的,VersionControl_SVN这个软件是svnmanager需要用到的,必须安装

10.安装svnmanager

tar zxvf svnmanager-1.08.tar.gz

cp -r svnmanager-1.08 /usr/local/apache2/htdocs/svnman //把解压出来的文件复制到apache的站点根目录htdocs里

cd /usr/local/apache2/htdocs/svnman/

cp config.php.linux config.php //把配置文件重命名一下

编辑config.php,修改以下几项内容:

//Shell command's

$htpassword_cmd = "/usr/local/apache2/bin/htpasswd"; //告诉svnmanager apache的密码生成执行文件的位置

$svn_cmd = "/usr/local/svn/bin/svn"; //告诉svnmanager svn命令的执行目录

$svnadmin_cmd = "/usr/local/svn/bin/svnadmin"; //告诉svnmanager svnadmin命令的执行目录

//Subversion locations

$svn_config_dir = "/app/svn"; //告诉svnmanager svn的配置目录,通常指到版本库父目录或者版本库目录即可

$svn_repos_loc = "/app/svn"; //告诉svnmanager svn的版本库父目录在哪里,这个跟上面那个configdir我也搞不清楚到底有什么区别,我一般就是指到版本库父目录就没问题,上面的 configdir要是注释掉则会报错

$svn_passwd_file = "/usr/local/svn/svn_passwdfile"; //告诉svnmanager svn的账户密码文件的位置

$svn_access_file = "/usr/local/svn/svn_accessfile"; //告诉svnmanager svn的权限控制文件的位置

$dsn = "mysql://root:gaso123@localhost/svnman"; //指定mysql连接的信息,这行要注意原文可能是mysqli://多数情况下都需要改成mysql://,有时候不改可能会导致连不上mysql,最后的svnman为svnmanager将要使用的数据库,会在后面创建。

$admin_name = "admin"; //本行和下面一行指定svnmanager首次登陆的初始账号和密码,这两行就不需要改了

$admin_temp_password = "admin";

保存退出

11.创建svnmanager使用的数据库

/usr/local/mysql/bin/mysql -u root -p

输入密码gaso123

mysql>create database svnman; //刚才在svnmanager的配置文件config.php里面指定的mysql连接信息的那个库就是这个。

mysql>exit

12.测试svnmanager安装是否成功

访问http://localhost/svnman

默认login信息是admin/admin,注册一个新的账户后admin账户就会被屏蔽掉了,这样用新用户登录就会出现管理svn的诸多选项,以后就用这个新账户管理svn就可以了,创建版本库,设置账户,设置权限,导入导出,功能还是可以的。

如果不是本机访问,会有权限问题,用svnmanager所在主机的ip访问:

http://svnmanager-host-ip/svnman

注册新账户时,会有提示说明修改什么文件才能远程登录svnmanager进行管理。说明的很清楚,不再赘述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux mysql svn