环境
Debian/sarge,mysql 4.1.11(debian自带),apache 1.3.33
安装php 5.0.4
1. 首先安装libjpeg62-dev,libpng12-dev: aptitude install libjpeg62-dev libpng12-dev
2. ./configure --with-apxs=/usr/bin/apxs --with-mysql --with-gd --with-zlib --enable-module=so
3. Make; make install
4. Cp php.ini.dist /usr/local/lib/php.ini
注意,缺省是安装到了/usr/local/目录下了,要制造个php.ini到/usr/local/lib目录下。
安装rudiments
安装到/var/opt/firstworks目录下
1. 下载:
2. 配置:./configure --prefix=/var/opt/firstworks
3. 安装:make; make install
安装sqlrelay
也是安装到/var/opt/firstworks目录下面
1. ./configure --prefix=/var/opt/firstworks --with-php --with-rudiments-prefix=/var/opt/firstworks
2. Make;make install
配置sqlrelay
编辑/var/opt/firstworks/etc/sqlrelay.conf文件,如下:
<?xml version="1.0"?>
<!DOCTYPE instances SYSTEM "sqlrelay.dtd">
<instances>
<instance id="bloghome" port="9000" socket="/var/opt/firstworks/var/sqlrelay/tmp/sqlrelay_9000.sock" dbase="mysql" connections="5" maxconnections="150" maxqueuelength="0" growby="5" ttl="60" endofsession="commit" sessiontimeout="600" runasuser="sqlrelay" runasgroup="sqlrelay" cursors="5" authtier="listener" handoff="pass" deniedips="" allowedips="" debug="listener_and_connection">
<users>
<user user="bloghome" password="password"/>
</users>
<connections>
<connection connectionid="bloghome" string="user=bloghome;password=psssword;db=bloghome;socket=/var/run/mysqld/mysqld.sock" />
</connections>
</instance>
</instances>
上面配置文件中,有个地方需要特别注意:
<users>标签中的user, password,是sqlrelay实现用户认证使用的,不是访问数据库的用户名和口令。访问数据库的用户名和口令是在connection标签中定义的。也就是说,$db = sqlrcon_alloc($host, $port ,null,$username, $password, $retrytime, $tries); 这句中的$username, $password, 是<users>标签定义的。
这是sqlrelay的listener认证方式。
配置系统参数
编辑/etc/sqlrelay,在其中增加bloghome,如下所示:
# Enter here all SQL Relay connections to start automatically with the
# service command. (one per line)
bloghome
启动sqlrelay
经过上面的步骤,就可以启动sqlrelay了:
/etc/init.d/sqlrelay start
FAQ
Q:如何观察sqlrelay的调试输出?
A:首先要在配置文件中打开调试开关,debug可以是none, listener, connection, listener_and_connection。然后可以观察/var/opt/firstworks/var/sqlrelay/debug目录下的文件输出。
Q:为什么sqlrelay无法启动?
A:sqlrelay用到了共享内存,用命令ipcs观察一下,在执行了/etc/init.d/sqlrelay stop的情况下,是否有没有释放的共享内存?如果有的话,用ipcrm释放掉,再重新启动sqlrelay