1 服务器安装的步骤
1.1. 安装CentOS 5
1.1.1. 光盘启动
设定系统从光盘启动。
插入CentOS 5的DVD或者CD1,开始安装。
出现如下界面,用于选择图形界面或者字符界面安装:
可以选择图形或者字符界面进行安装,如果直接回车就是图形界面,如果输入linux text然后回车就是字符界面。一般来说,如果服务器是比较老的型号,比如三四年之前的,或者都是主流的硬件配置,比如Intel的服务器,ATI或者nVidia的显卡,可以选择图形界面;如果是非主流的硬件配置,最好选择字符界面。如果这里选择字符界面,那么安装完成之后登录界面就是字符界面;否则就是图形界面。
在这里我们选择字符界面。
1.1.2. 检查CD
出现检查CD的界面。
如果是新光盘,可以跳过这个过程;如果光盘用了很长时间了,可以选择OK开始测试,这里选择Skip跳过。
1.1.3. 选择安装语言
字符界面下只能使用English,但是这里的选择会直接影响以后操作系统的语言,所以我们如果希望将来操作系统的语言为中文,那么这里应该选择简体中文,虽然安装程序会自动将安装语言设置为英文,但是安装完成之后系统变量LANG会是zh.UTF-8。
1.1.4. 选择键盘布局
保留默认,继续。
1.1.5. 选择分区类型
在这里选择定制分区。
1.1.6. 分区
/var目录保存了Apache服务器的网页,Oracle的数据,MySQL的数据等内容,会不断的增长,因此尽量保留大一些的空间。
/目录是Linux的安装目录,如果完全安装至少5G
swap分区是交换分区,大小至少为2*memory。
如果全盘安装Linux,可以选择自动分区。否则,可以按照如下方式进行手工分区:
/ 10G+
swap 2*memory
/var rest
1.1.7. 选择BootLoader
保留默认即可。
1.1.8. 配置BootLoader
保留默认即可。
1.1.9. 设置启动密码
保留默认即可。
1.1.10. 设置启动其他操作系统
保留默认即可。
1.1.11. 设置BootLoader安装位置
保留默认即可。
1.1.12. 配置网络
可以根据实际情况配置网络。
1.1.13. 配置网关和DNS
根据情况修改网络配置参数。
1.1.14. 服务器命名
设置hostname。
1.1.15. 设置时区
选择Asia/ShangHai。
要注意不要勾选"System clock uses UTC"
1.1.16. 设置密码
设置root密码。
1.1.17. 选择安装包
安装包选择“定制”
1.1.18. 定制安装
除了Java之外,选择全部的安装包。
然后系统会检查安装包的依赖关系。
1.1.19. 开始安装
点击OK确认。
1.1.20. 提示安装媒体
选择Continue开始安装。
1.1.21. 安装后的配置
1) 第一次启动
安装后第一次启动,会在启动过程中弹出一个配置界面,需要配置的是安全功能:
配置使用防火墙,关闭SELinux。
配置防火墙的外部端口:
打开TELNET,SSH, HTTP, HTTPS, FTP的外部访问权限,然后打开UDP端口177和TCP端口从6000~6010,以便于配置XDMCP连接。打开TCP端口1521和1158,便于配置Oracle数据库。
注意要正确配置联网,以便于能够联网安装扩展包。
2) 配置XDMCP连接
• 改变运行级别到5
打开/etc/inittab 然后设置init运行级别5:
id:5:initdefault:
• 打开XDMCP
对GDM:
打开/etc/gdm/custom.conf 设置Enable为1在[xdmcp]的选项中.
[xdmcp]
Enable=1
对KDM:
打开/usr/share/config/kdm/Xaccess
去掉:
#* #any host can get a login window
前面的注释符号,改为:
* #any host can get a login window
打开/usr/share/config/kdm/kdmrc,设置:
[Xdmcp]
Enable=true
3) 设置中文字体以方便安装Oracle 10g
进入/usr/share/fonts。
将chinese目录拷贝为zh_CN目录,然后进入TrueType目录,将uming.ttf拷贝为zysong.ttf:
cp -r ./chinese ./zh_CN
cd zh_CN/TrueType
cp ./uming.ttf ./zysong.ttf
4) 配置FTP服务器
配置vsftpd:
chkconfig vsftpd on
service vsftpd start
重新启动服务器。
1.1.22. 配置ADSL自动拨号
如果是家庭联网,需要配置ADSL自动拨号:
adsl-setup
根据提示输入ADSL帐号、密码等信息。
配置网关:
in /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
in /etc/sysconfig/network
FORWARD_IPV4=yes
in /etc/rc.d/rc.local
service iptables restart
in /etc/sysconfig/iptables
# Firewall configuration written by petehero
# Manual customization of this file is not recommended.
# Note: ifup-post will punch the current nameservers through the
# firewall; such entries will *not* be listed here.
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
此时应该已经能够连接互联网,通过ping命令测试。
1.1.23. Apache2安装
1) 配置Apache服务器
系统安装的时候,已经创建了apache用户,Apache服务器的默认用户也是apache因此我们就设置Apache服务器用apache用户启动。
chown -R apache:apache /var/www
usermod -d /var/www -s /bin/bash apache
passwd apache
su - apache
cp /etc/skel/.bash* ./
exit
chkconfig httpd on
编辑/etc/httpd/conf/httpd.conf,设置ServerName,然后启动apache
# service httpd start
用apache用户在/var/www目录下创建目录
mkdir backup
mkdir cron
mkdir geodata
mkdir upload
2) root账号屏蔽远程登录功能。
vi /etc/ssh/sshd_config
将# PermitRootLogin yes 改为:PermitRootLogin no
service sshd restart
1.1.24. MySQL安装
1) 用root用户执行:
chkconfig mysqld on
service mysqld start
mysql -u root -p
修改mysql root用户密码。
1.1.25. PHP安装
1) 用root用户执行:
yum -y install php-devel php-mbstring php-mcrypt php-mhash php-gd php-mysql php-pear php-xml
service httpd restart
2) 升级pear库
pear channel-update pear.php.net
pear upgrade-all
pear install -a Log HTML_TreeMenu HTTP_Client PHPUnit2
3) 安装dio,用root用户进入dio目录(需要测试是否需要)
phpize
./configure; make; make install
vi /etc/php.d/dio.ini
extension=dio.so
service httpd restart
4) 安装oci8,用root用户
首先到这里:
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
下载最新的oracie instant client软件,要包括basic和SDK
# rpm -ivh oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
# rpm -ivh oracle-instantclient11.2-devel-11.2.0.1.0-1.i386.rpm
# pecl install oci8
输入:
instantclient,/usr/lib/oracle/11.2/client/lib
# vi /etc/php.d/oci8.ini
; Enable oci8 extension module
extension=oci8.so
# service httpd restart
1.1.26. 安装perl相关组件
1) 用root用户执行:
yum -y install perl-Geo-IP
1.1.27. 安装ZendOptimizer
解压缩ZendOptimizer的二进制文件,然后用root用户执行install.sh
tar zxvf ./ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
sh ./install.sh
1.1.28. 安装cronolog
在解压缩之后的cronolog源代码目录,用root用户执行:
./configure ; make; make install
1.1.29. 安装JDK
首先删除原有的java
rm /usr/bin/java
rm /etc/alternatives/java
为jdk的二进制文件添加运行的权限,然后运行
chmod a+x ./jdk-6u7-linux-i586-rpm.bin
./jdk-6u7-linux-i586-rpm.bin
1.1.30. 安装Oracle 10g for Linux X86_64
所需软件和文档:
1:文档
http://www.oracle.com/pls/db102/homepage 2:软件
http://www.oracle.com/technology/software/products/database/index.html
filename: 10201_database_linux_x86_64.cpio.gz
Part I Oracle的预安装准备工作
系统完成后,检核必须的RPM包。此处请参考Oracle官方文档关于所需的软件包(具体位置URL)。也就是这个最主要的参考文档的地方。总算这次可以依据文档找全这些包了,真不容易,以前总是缺这个,少那个的。
[root@minot ~]# rpm -q binutils compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33 control-center gcc gcc-c++ gdbm glibc glibc-common glibc-devel libgcc libgnome libstdc++-devel libXp make sysstat util-linux
[root@minot ~]# yum install compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33 gcc gcc-c++ glibc-devel libstdc++-devel sysstat libXp
插播几句:当你发现任何提示什么的,少这个库,那个库之类的。可以通过以下yum命令例子,查询这个库属于哪个RPM包,再次之前rpm命令只能查询已安装的。(rpm -qf)
[root@minot ~]# yum whatprovides 库名
以下修改内核参数等文件,已保证Oracle的预安装准备成功。执行如下:
vi /etc/sysctl.conf 行末添加以下内容
# 20071212 add content for oracle install
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
执行下述命令。导入刚才写入的参数。不执行,oracle在后面安装前的检测会报警。
sysctl -p
vi /etc/security/limits.conf 行末添加以下内容
# 20071212 add content for oracle install
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
vi /etc/pam.d/login 行末添加以下内容
# 20071212 add content for oracle install
session required pam_limits.so
vi /etc/selinux/config 确保以下内容
SELINUX=disabled
此处再确认一下吧。
Part II 以Oracle 用户安装 Oracle
创建oracle用户,和一些安装目录。
groupadd dba
groupadd oinstall
useradd -g oinstall -G dba -m oracle
passwd oracle
mkdir -p /opt/oracle
chown -R oracle.oinstall /opt/oracle
将oracle的安装文件置于家目录,进行解压。
gzip -dc 10201_database_linux_x86_64.cpio.gz | cpio -div
添加环境变量,定义SID等。
su - oracle
vi .bash_profile
#--------------------------------------
# Set for Oracle10g Install;
#--------------------------------------
trap " " 0 1 2 3 5 9 15
trap clear 0
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/X11R6/lib64/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_ASSUME_KERNEL=2.6.18
export NLS_LANG="Simplified Chinese_china".UTF8
LC_CTYPE=zh_CN.UTF8
LC_ALL=zh_CN.UTF8
LANG=zh_CN.UTF8
umask 022
#
引用环境变量
source ~/.bash_profile
进行安装动作runInstall和dbca.
图形安装过程中的一些注意选项:/runinstall执行后,选择高级安装.
语言选项是加上中文简体和繁体2种。选择仅安装数据库,然后再用DBCA创建数据库。
1归档 2:全是utf8地区中国 语言中文 3:安装后记得激活scott,用于测试
说明:中文utf8环境安装完全没有问题,图形界面。此处不详细描述了。
~/database/runInstaller
dbca
Part III 安装后的调整dbstart,添加自启动脚本。
在运行$ORACLE_HOME/bin/dbstart时报错,
Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
解决方法:修改dbstart这个文件,找到ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
su - oracle
vi `which dbstart`
ORACLE_HOME_LISTNER=$ORACLE_HOME
修改/etc/oratab文件
minot:/datas/apps/oracle/product/10.2.0/db_1:Y
创建自启动脚本。
解释一下脚本中的注释行:# chkconfig: 2345 80 05
三组个数字的意义是,“启动模式”、“启动顺序”、“关闭顺序”
oracle 10g在自身的dbstart已经启动了lsnrctl,所以下面的脚本上注释掉了lsnrctl的启动
touch dbora
chmod 700 dbora
vi dbora
#!/bin/bash
#
# chkconfig: 2345 80 05
# description: Oracle 10g Server
# /etc/init.d/dbora
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
# su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
su $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl start"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
# su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl stop"
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
cp dbora /etc/rc.d/init.d
chkconfig --add dbora
chkconfig --list | grep dbora
dbora 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
Part IV 一些服务介绍和补充
主要服务启动方式
a:$ORACLE_HOME/bin/dbstart | dbshut
b:$ORACLE_HOME/bin/lsnrctl start | stop 监听器启动|关闭。
c:$ORACLE_HOME/bin/emctl start | stop dbconsole
访问 http://yourIP:1158/em
d:$ORACLE_HOME/bin/isqlplusctl start | stop
访问 http://yourIP:5560/isqlplus
2 账号管理
为每一个需要登录服务器的用户创建单独的帐号,并且将帐号赋予需要使用的组权限。例如需要开发web程序则赋予apache组权限,每个人登录服务器都要使用自己的帐号。如果确实需要root帐号,则在用开发帐号登录后用su命令转换为root用户:
su - root
root账号屏蔽远程登录功能。
apache运行时的用户权限为apache
3 数据库管理
每一个业务连接数据库都要使用独立的用户。不允许业务使用root连接数据库。
4 服务器目录管理
4.1 常用软件的安装目录
所有的程序,文档以及其他需要维护的内容全部放在下面目录下:
/var/www
在该目录下创建如下一些子目录:
src---程序源代码
cron---crontab程序
proc---系统运行的进程
upload---上传的内容
cgi-bin---cgi程序
htdocs---用IP地址访问时指向的目录
www.domain.com---用域名访问时指向的目录
log---程序运行记录的日志
dump---数据库dump的内容
resource---资源文件
cache---临时的cache
test---测试用的程序
temp---临时文件的目录
backup---备份用的目录
4.2 日志格式
文件名的格式
日志内容可以有两种格式:逗号分隔或者定长。每一个日志目录下必须放一个README文件(UTF-8编码)描述日志的格式。
5 服务器数据迁移
• 用mysqldump程序导出mysql数据库中有用的表
• 备份apache的httpd.conf
• 备份/svnroot
• 备份crontab
• 备份/etc/rc.d/rc.local
• 备份网络配置