以下内容是我上次在suse10上配置服务器过程的记录,放到这里供有需要的同学参考:
目标:支持LDAP的Apache2.2+MySQL5+PHP5+Subversion1.4.2+SVNManage服务器
0、设置环境
为优化编译,需要根据CPU设置编译参数(详见
http://gentoo-wiki.com/Safe_Cflags),我的是AMD的CPU。创建文件 /etc/profile.d/cflags.sh 然后重新登录 :
export CHOST="i686-pc-linux-gnu"
export CFLAGS="-march=athlon-xp -msse3 -O2 -pipe -fomit-frame-pointer"
export CXXFLAGS="${CFLAGS}"
1、编译MySQL
rm -Rf /usr/local/mysql # 删除旧版本
./configure --prefix=/usr/local/mysql \
--enable-thread-safe-client \
--without-debug \
--localstatedir=/opt/mysql/data
make //编译
make install //安装
groupadd mysql
useradd -g mysql mysql
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown –R root:root /usr/local/mysql //文件属性改为root用户
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf //复制配置文件
----------------------------------启动MySQL服务----------------------------------
/usr/local/mysql/bin/mysqld_safe --user=mysql & //启动MySQL
----------------------------------修改MySQL密码----------------------------------
/usr/local/mysql/bin/mysqladmin -uroot password mysqlsecret //修改密码
----------------------------------关闭MySQL服务----------------------------------
/usr/local/mysql/bin/mysqladmin -uroot -pmysqlsecret shutdown
#把mysql启动脚本复制到init.d目录
cp /usr/local/mysql/share/mysql.server /etc/init.d
2、编译安装Berkeley DB
为支持subversion的BDB存储方式,需要安装这个软件:
cd db-4.4.20/build_unix
../dist/configure --enable-compat185
make
make install
3、编译Apache2.2:
cd /srv/setup
tar -zxvf httpd-2.2.3.tar.gz
cd httpd-2.2.3
cd srclib/apr
./buildconf
./configure --prefix=/usr/local/apr
make && make install
cd ../apr-util
./buildconf
./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr --with-berkeley-db=/usr/local/BerkeleyDB.4.4
make && make install
./configure --prefix=/usr/local/apache2.2 \
--with-included-apr \
--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr \
--with-berkeley-db=/usr/local/BerkeleyDB.4.4 \
--enable-so \
--with-ldap \
--enable-ldap \
--enable-authnz-ldap \
--enable-rewrite \
--enable-setenvif \
--enable-mime \
--enable-ssl \
--with-ssl=/usr \
--enable-headers \
--enable-dav \
--enable-dav-fs \
--enable-dav-lock \
--enable-maintainer-mode \
--enable-proxy \
--enable-proxy-http \
--enable-proxy-balancer
#编译并安装
make
make install
ln -s /usr/local/apache2.2/bin/apachectl /usr/local/bin
ln -s /usr/local/apache2.2/bin/htpasswd /usr/local/bin
ln -s /usr/local/apache2.2/bin/httpd /usr/local/bin
ln -s /usr/local/apache2.2/conf/httpd.conf /etc/httpd.conf
mv /usr/local/apache2.2/htdocs /var/www
打开/etc/httpd.conf,找到User和Group,修改为如下内容
User nobody
Group nobody
执行以下脚本设置目录权限:
chown nobody:nobody /usr/local/apache2.2 -R
可通过以下命名启动apache:
apachectl start
把启动脚本复制到init.d目录
cp /usr/local/apache2.2/bin/apachectl /etc/init.d/httpd
4、编译PHP5.2
./configure --prefix=/usr/local \
--with-config-file-path=/usr/local/apache2.2/conf \
--with-apxs2=/usr/local/apache2.2/bin/apxs \
--with-bz2=/usr \
--enable-ftp \
--enable-sockets \
--disable-ipv6 \
--with-gd=/usr \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-freetype-dir=/usr \
--with-ldap \
--with-ldap-sasl \
--enable-gd-native-ttf \
--enable-mbstring \
--with-gettext \
--with-openssl-dir=/usr \
--with-libxml=/usr \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-mysql-sock=/tmp/mysql.sock \
--enable-sqlite-utf8 \
--with-zlib=/usr \
--with-zlib-dir=/usr \
--enable-zend-multibyte
make
make install
======================================
Wrote PEAR system config file at: /usr/local/etc/pear.conf
You may want to add: /usr/local/lib/php to your php.ini include_path
Installing PDO headers: /usr/local/include/php/ext/pdo/
cp php.ini-dist /usr/local/apache2.2/conf/php.ini
ln -s /usr/local/apache2.2/conf/php.ini /etc/php.ini
打开/usr/local/apache2.2/conf/httpd.conf,加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
5、编译安装SubVersion1.4.4
./configure --with-apxs=/usr/local/apache2.2/bin/apxs \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr \
--with-berkeley-db=/usr/local/BerkeleyDB.4.4 \
--with-swig=/usr/local
make && make install
make swig-py && make install-swig-py
ldconfig
注意!! configure时可能会出现以下问题:
An appropriate version of neon could not be found, so libsvn_ra_dav
will not be built. If you want to build libsvn_ra_dav, please either
install neon 0.25.5 on this system
or
get neon 0.25.5 from:
http://www.webdav.org/neon/neon-0.25.5.tar.gz
unpack the archive using tar/gunzip and rename the resulting
directory from ./neon-0.25.5/ to ./neon/
6.rails安装
gem install mongrel
gem install mongrel_cluster
mongrel_rails cluster::configure -e production \
-p 4000 -N 3 -c /srv/rails/pmstudio -a 127.0.0.1 \
--user nobody --group nobody
mongrel_rails cluster::start
mongrel_rails cluster::stop
如果把session配置为activerecord保存,则在/etc/crontab中加入以下代码进行定时清除过期session,下面设置的是一小时过期
/srv/rails/pmstudio/script/runner 'ActiveRecord::Base.connection.delete("DELETE FROM sessions WHERE updated_at < now() - INTERVAL 1 HOUR")'
*/3 * * * * root /srv/rails/pmstudio/script/runner 'ActiveRecord::Base.connection.delete("DELETE FROM sessions WHERE updated_at < now() - INTERVAL 1 HOUR")'