||
以此文纪念我那逝去的几个夜晚
EE.C 深圳
目标:
在RHEL 5上的,使用subversionzentaopms同进运行
一些总结的重要内容:
安装subversion需要重新编译apache服务器,故在configure apache时,给出的参数即要有subversion所需,也要有php所需;
Subversion与php有共用的内容,我的禅道工具总是安装到最后一步时不能再进行,怀疑是subversion对其造成了影响(猜测,在我自己的服务器没有这个问题,很顺利的布置了subversion和禅道,事实上,subversion早就布置了。这两者应该没有先后顺序)在公司的服务器上,基本上每一步都有问题。
要能确认依赖的服务已能正常运行。
Apache 访问指定的URL时能出现期望的内容,系统上的apache与新安装的可双系统并存但同时只能运行一个,chkconfig –list看到的httpd是系统上的;如果希望使用新安装的,可用以下命令如 /usr/local/apach2/bin/apachctrl start,这样它是使用/usr/local/apach2/htdos下的index.html。录不rpm –e httpd时,可通过修改/etc/rc.d/init.d/httpd来启动/usr/local/apach2/bin/(设这是新安装的apache);
Mysql 服务能在指定的运行级别下启动,可能chkconfig –list |grep mysqld来查看,同时,确认使用的用户名和密码能访问指定的数据库,命令有mysqlshow –u user –h hostname –p、mysql –u user –h hostname –p,进入mysql提示符以后connect试一下能否连上;
Php 5.4的版本可以用 php –ini来确认它使用的配置文件,要修改正确的文件使PHP加载pdo_mysql扩展;
Php –v可查看程序的版本,确认它是安装所需的;
Zentaopms下的文件要有正确的所有者和群组所有者才能正确执行,可以是root可daemon(如果你的apache的执行者是daemon);
在不同机器上迁移相同版本的zentaopms系统时,用tar cjvf将源打包(zentaopms的整个目录、mysql中zentaopms使用的那个数据库),备份与删除目标,解包替换目标。这个过程确保mysql处于关掉状态。完成后启动apache、mysql即可,注意操作完毕后zentaopms的属主,群组所有者才和所有者均为mysql,不是root或其它用户。
Zentaopms的升级比较简单,看清其说明就好,但要注意备份数据。
Subversion数据库的说明,当用svnadmin create repo新建了repo的数据仓库之后,它属于root,即使access文件是正确设置的,这个数据仓库也不一定能访问,这是因为权限的问题,一个解决方案是将repo在内的整个目录树对任何用户可读写,命令chmod 777 repo,但这样会带来安全问题,更好的解决办法是根据httpd.conf文件找出谁在执行apache,一个例子是:
User daemon
Group daemon
把repo的user和group改得和它一样就可以了。这样subversion的数据仓库会更安全。
一此主要的内容需要新的扩展时,不要急于从网上下载,找一下其发行包或单独发行的deps包,如果能找到,所需要的依赖都会有。
安装过程:
如果不出问题,安装会很快。
在http的目录下,使用subversion的要求对http进行configure
$ ./buildconf
$ ./configure --enable-dav --enable-so --enable-maintainer-mode
回到php的目录下,安装php:
[root@dsvr php-5.4.3]# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
Make
Make install
安装 pdo_mysql
[root@dsvr pdo_mysql]# whereis php-config
php-config: /usr/local/bin/php-config
[root@dsvr pdo_mysql]# whereis mysql_config
mysql_config: /usr/bin/mysql_config /usr/share/man/man1/mysql_config.1.gz
./configure --with-php-config=/usr/local/bin/php-config --with-mysql-config=/usr/bin/mysql_config
会生成类似以下的目录,目录下有文件 pdo_mysql.so
/usr/local/lib/php/extensions/no-debug-non-zts-20100525
/usr/local/lib/php/extensions/no-debug-non-zts-20100525/
在php.ini的合适内容后加上:
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20100525/pdo_mysql.so
确认PHP已加载了pdo_mysql扩展:
[root@dsvr php-5.4.3]# php -vm |grep mysql
mysql
mysqlnd
pdo_mysql
修改apache的配置文件httpd.conf,以下来自PHP的安装说明文件INSTALL,把配置内容之外的内容去掉入httpd.conf
8. Tell Apache to parse certain extensions as PHP. For example, let's
have Apache parse .php files as PHP. Instead of only using the
Apache AddType directive, we want to avoid potentially dangerous
uploads and created files such as exploit.php.jpg from being
executed as PHP. Using this example, you could have any
extension(s) parse as PHP by simply adding them. We'll add .php to
demonstrate.
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Or, if we wanted to allow .php, .php2, .php3, .php4, .php5, .php6,
and .phtml files to be executed as PHP, but nothing else, we'd use
this:
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
And to allow .phps files to be handled by the php source filter,
and displayed as syntax-highlighted source code, use this:
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
mod_rewrite may be used To allow any arbitrary .php file to be
displayed as syntax-highlighted source code, without having to
rename or copy it to a .phps
启动或重启apache
安装zentaopms
编译subversion,安装subversion
修改你的httpd.conf文件,使之支持subversion,subversion的INSTALL已经说得很清楚,参见其相关章节。
测试。
安装过程可能会出现一些非预期问题,上网查一下。
安装APACHE时出错,以下是来自网上的内容,与我的问题一样,由此解决了APACHE的安装问题。
$ ./configure --with-apr=/usr/local/apache2 \
--with-apr-util=/usr/local/apache2 ...
APACHE 安装出错 configure: error: Cannot use an external APR with the bundled APR-util
2007-07-22 11:16
configure: error: Cannot use an external APR with the bundled APR-util |