看到有个朋友在问solaris下邮件系统的安装配置,所以发到这里来供大家参考。
原创:solaris8(sparc)上安装Qmail邮件系统及移植(linux to solaris)
作者:cqvrboy mail:chengang@chinacfc.com
前言:linux和freebsd下安装配置qmail的文档很多,而solaris下的文档较少且不是很全.正好公司为了优化资源,利用闲置设备(有十几台SUN小型机和工作站闲置,好浪费),让我把X86下的相关应用移植到SUN平台(好累啊)。我花了一周时间终于成功把Linux下的qmail系统移植到了solaris下(还有weblogic,helix server等要移植),现在把过程贴出来给用得着朋友作个参考。帖子中难免出现错误和疏漏,希望大家指正。我在安装过程中参考了zengpx,llzqq,artxing,帕萨特等几位朋友的帖子,在此表示感谢。
参考文章:
zengpx:Apache-2.0.45+php-4.3.1+mysql-4.1.0安装
llzqq:SOLARIS+QMAIL+VPOPMAIL+IGENUS+QMAILAMDIN
artxing:在solaris9下安装qmail+vpopmail+mysql的详细过程
帕萨特:solaris下安装qmail-scanner
##############################################
# 安装准备工作 #
##############################################
#首先要安装solaris 8的编译环境,去http://www.sunfreeware.com/下载一下软件:
1.autoconf-2.13-sol8-sparc-local.gz
2.automake-1.4-sol8-sparc-local.gz
3.bison-1.28-sol8-sparc-local.gz
4.gcc-3.2.2-sol8-sparc-local.gz
5.gzip-1.3-sol8-sparc-local
6.make-3.79.1-sol8-sparc-local.gz
7.tar-1.13-sol8-sparc-local.gz
8.libgcc-3.2.2-sol8-sparc-local.gz
9.ncurse
10.flex-2.5.4-sol8-sparc-local.gz
11.sed-4.0-sol8-sparc-local.gz
#设置环境变量:
vi /etc/profile
PATH=/usr/local/sbin:/usr/local/bin:/usr/ccs/bin:/usr/sbin:/sbin:/bin:/usr/local/mysql/bin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ucb
#退出重启系统使变量生效,按照下列步骤安装软件:
1.pkgadd -d gzip-1.3-sol8-sparc-local
2.gunzip autoconf-2.13-sol8-sparc-local.gz
3.gunzip automake-1.4-sol8-sparc-local.gz
4.gunzip gcc-3.2.2-sol8-sparc-local.gz
5 gunzip bison-1.28-sol8-sparc-local.gz
6.pkgadd -d autoconf-2.13-sol8-sparc-local
7.pkgadd -d automake-1.4-sol8-sparc-local
8.pkgadd -d gcc-3.2.2-sol8-sparc-local
9.pkgadd -d make-3.79.1-sol8-sparc-local
10.pkgadd -d tar-1.13-sol8-local
pkgadd -d nucrse
pkgadd -d flex
10.gunzip tar-1.13.tar.gz
11.tar xvf tar-1.13.tar
12.cd tar-1.13
13../configure --prefix=/usr/local/gnutar
14. make
15. make install
16. cp /usr/local/gnutar/bin/tar /usr/local/bin/gtar
#注:必须要用GNU的tar来解下载的gz包,用solaris自带的tar解包在编译的时候会有问题。
#把libgcc包中所有的文件从/usr/local/lib拷贝到/usr/lib中,其中包含
libgcc_s.so
libstdc++.la
libstdc++.so.5.0.0
libgcc_s.so.1
libstdc++.so
libstdc++.so.5.0.1
libstdc++.a
libstdc++.so.5
libstdc++.so.5.0.2
##############################################
# 安装apache+php+mysql #
##############################################
Apache-2.0.49 (www.apache.org)
php-4.3.1 (www.php.net)
mysql-4.1.0 (www.mysql.com)
################ 安装准备 ####################
mkdir /usr/local/mysql
mkdir /usr/local/apache
# 建立mysql组及用户
groupadd -g 201 mysql
useradd -u 1001 -g mysql -d /export/home/mysql -m -s /bin/tcsh -c "MySQL Administrator" mysql
passwd mysql //设置用户口令
# 解压缩文件
/usr/local/gnutar/bin/tar -zxvf /bak/mysql-4.1.0.tar.gz
/usr/local/gnutar/bin/tar -zxvf /bak/httpd-2.0.45.tar.gz
/usr/local/gnutar/bin/tar -zxvf /bak/php-4.3.1.tar.gz
#################################安装 mysql-4.1.0#################################
cd mysql-4.1.0
CC=gcc CFLAGS="-O6" CXX=gcc CXXFLAGS="-O6 -felide-constructors -fno-exceptions -fno-rtti"
./configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls --prefix=/usr/local/mysql --with-mysqld-user=mysql --with-charset=gb2312 --with-extra-charsets=all
/usr/local/bin/make
/usr/local/bin/make install
/usr/local/mysql/bin/mysql_install_db
chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chmod 777 /usr/local/mysql/lib/mysql/libmysqlclient.a
cp support-files/my-medium.cnf /etc/my.cnf
# 设置引导文件
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
cd /etc/rc2.d
ln -s ../init.d/mysqld S90mysql
ln -s ../init.d/mysqld K90mysql
# load lib
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
echo /usr/lib/mysql >> /etc/ld.so.conf
ldconfig #(无法执行,没有此命令)
# 启动数据库
cd /usr/local/mysql/bin
./mysql_safed --user=mysql &
# 连接测试
cd /uca/local/mysql/bin
./mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.23.44
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
################################# mysql 安装完毕 #################################
############################### 安装 Apache-2.0.49############################
cd httpd-2.0.49
CC=gcc CFLAGS="-O6" CXX=gcc CXXFLAGS="-O6 -felide-constructors -fno-exceptions -fno-rtti"
./configure --prefix=/usr/local/apache --enable-mods-shared=all --enable-module=rewrite
make
make install
# 创建符号连接
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
ln -s /etc/init.d/httpd /etc/rc3.d/S90http
ln -s /etc/init.d/httpd /etc/rc3.d/K90http
ln -s /usr/local/apache/bin/apachectl /bin/apache
ln -s /usr/local/mysql/bin/mysql /bin/mysql
################################# 安装php-5.0.1 #################################
cd php-5.0.1
CC=gcc CFLAGS="-O6" CXX=gcc CXXFLAGS="-O6 -felide-constructors -fno-exceptions -fno-rtti"
./configure --with-charset=gb2312 --with-extra-charsets=all --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-track-vars --enable-force-cgi-redirect --enable-pic --enable-inline-optimiation --enable-memory-limit --enable-bcmath
make
make install
cp php.ini-dist /usr/local/lib/php.ini
cp php.ini-dist /usr/local/apache/conf/php.ini
##############################################
# 修改配置文件 #
##############################################
----------------------
vi /usr/local/apache/conf/httpd.conf
# 加入以下行(装载php4模块并指定.php 文件)
# LimitRequestBody (指定php处理的请求数据大小,以下指定为 20M)
LoadModule php4_module modules/libphp4.so
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 20971520
</Files>
AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php-source .phps
#注解以下行(在文本前加#),使apache显示中文,具体原因未知
ForceLanguagePriority Prefer Fallback
AddDefaultCharset ISO-8859-1
#加入默认的引导文件index.php(找到DirectoryIndex,修改如下:)
DirectoryIndex index.php index.html index.html.var
# 设置你的服务器的域名或IP地址及监听端口
ServerName 192.168.0.10:80
#指定网站目录(假设为 /apache 目录)
DocumentRoot "/apache"
#把Group改一下,改成
Group=nobody
默认的是Group=-1,在SOLARIS上不行。
###编辑php.ini配置文件
-------------------------
vi /usr/local/apache/conf/php.ini
#找到并修改以下参数
max_execution_time = 600 ;最大运行时间 600 秒
max_input_time = 600 ;最大输出时间 600秒
memory_limit = 20M ;最大内存限制 20M
file_uploads = On ;允许上载文件
upload_max_filesize = 20M ;最大文件大小 20M
post_max_size = 20M ;php可接受的 post 方法大小 20M
session.auto_start = 1 ;session自动启动
### 安全性
-------------------------
提高mysql的安全性
1.修改/etc/init.d/mysqld,使其只监听localhost的埠,将如下的一行
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file&
修改为:
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file --bind-address=127.0.0.1&
2.为mysql的root账号设置密码
# /usr/local/mysql/bin/mysqladmin -u root password "root用户的密码"
# /usr/local/mysql/bin/mysqladmin -u root reload
提高apache的安全性
1.新建包含文件目录inc_doc:
# mkdir /usr/lcoa/apache/inc_doc
2.设置PHP初始化文件的搜索路径,使PHP程序在inc_doc目录中搜索包含文件:
# vi /usr/local/apache/conf/php.ini
添加或修改:
include_path="/usr/local/apache/inc_doc"
或添加或修改:
include_path="other/include_doc/path:/usr/local/apache/inc_doc"
### 运行 ####
---------------------
#启动mysql
/usr/local/mysql/bin/safe_mysqld --user=mysql &
#停止mysql
/usr/local/mysql/bin/mysqladmin shutdown
#启动apache
/etc/init.d/httpd start
#停止apache
/etc/init.d/httpd stop
### 测试 ###
mkdir /apache
echo "<?" >/apache/index.php
echo "phpinfo();" >>/apache/index.php
echo "?>" >>/apache/index.php
#生成/apache/index.php 文件
在浏览器上输入 solaris 机器网址,php 的配置信息将显示出来。
##############################################
# 安装qmail及相关软件 #
##############################################
####################安装patch工具####################
gzip –d patch-2.5.4-sol8-intel-local.gz
pkgadd –d patch-2.5.4-sol8-intel-local
mv /usr/bin/patch /usr/bin/patch.bak
cp /usr/local/bin/patch /usr/bin/patch
####################安装ucspi-tcp-0.88####################
gzip -d ucspi-tcp-0.88.tar.gz
tar xvf ucspi-tcp-0.88.tar
cd ucspi-tcp-0.88
patch -p1 < ../ucspi-tcp-0.88.a_record.patch
patch -p1 < ../ucspi-tcp-0.88.errno.patch
patch -p1 < ../ucspi-tcp-0.88.nobase.patch
make
make setup check
####################安装qmail-1.03-patched.tar.gz ####################
#注:aka.com.cn提供的已打patch,可直接使用qmail-acl_policy
#1.