linux简单服务器的配置

来源:互联网 发布:黑色沙漠女法捏脸数据 编辑:程序博客网 时间:2024/05/22 08:05

 

因为今天很不在状态所以就把以前写的东西拷上去了

也许是有点乱,将就着也能看

配置服务器

首先是选件,我用的是HPML150,放到现在已经是很慢了,两个至强CPU,支持5个内存扩展槽(我的是2G内存),一个磁盘阵列卡(有的叫raid卡或是SCSI卡,其实这个名词我也没搞太明白),3SCSI硬盘,原来的3块都有坏道用不了了,结果换了3块,花了不少银子。这里要说明一下,我做的是raid5,至少需要3块硬盘,开始我也很纳闷,后来做完之后发现可用磁盘容量才100G,少了一块硬盘的容量,才知道原来是做备份用的,这样才能保证数据的安全性,如果5块硬盘做的raid2块就启动不起来了,如果有块盘坏了,也会导致进不去系统,这个是折磨我很长时间才发现的问题。进入阵列卡的配置就能看到他的型号,他还能读出磁盘的数量,这里我们可以(按插入键)格式化磁盘,创建磁盘阵列,一旦创建好,就不能更改,如果更改那么数据就都没有了,很恐怖的。一溜回车下去,就完成了配置。如果是阵列卡坏了找个相同型号的换上去就可以直接用,这点做的很好,数据是可以保留下来的。

安装系统

完成后开始安装系统,和window相似,放入光盘根据选项提示一步步操作,有点要注意的是1 swap是交换分区,一般是内存的两倍,但我又看到一个人说最大不超过2G,我也不知道是不是真的,就直接给了2G 2 主板的板载网卡坏掉了,加了个独立千兆网卡(可不便宜啊),所以在配置网络的时候有两个选项eth0eth1,这时候要选后边的,3安装包的时候,如果不在乎那么点磁盘容量的话选全部安装,我是挑选安装的,所以在安装oracle的时候总是出问题,(一会在后面详细说),忘了说一句我的是企业版的红帽4#uname –a查看版本号,和时间。

安装oracle

先要做些配置,而且linux下的安装文件和windows下的安装文件是不一样的,一定要找适当的版本。

需要增加oracle用户和组 

#useradd oracle

#passwd Password   增加用户

#groupadd dba    增加dba

#vi  /etc/group

dba:x:502:  改为 dba:x:502:oracle   502是组的编号     

 

#mkdir oracle  建一个文件夹,来做安装目录

#chown oracle.oracle  /oracle  /oracle这个文件夹安装oracle的权限,名字可以随意取

# init 5 进入图形界面,oracle10须在图形界面下安装。

 

打开一个命令窗口,  

# xhost +         赋予oracle用户打开图形界面的权限     

# su oracle       oracle的身份安装          

$ cd database/   进入安装包目录     

$ ls

doc  install  response  runInstaller  stage  welcome.html

$./runInstaller

然后就很windows下安装一样了,速度还是很快的

 

# vi /etc/oratab

写入:

Sid:/oracle/product/10.2.0/db_1:Y   这里建一个oratab文件写入sid和安装后的文件目录,也就是oraclehome

#vi  /etc/profile  这里是环境变量

 加入

export ORACLE_HOME=/oracle/product/10.2.0/db_1   (oracle的安装路径)

export ORACLE_SID=sid   (oracle的库名称)

 

检查dbstart文件中的 oracle_home_listener路径是否跟ORACLE_HOME的路径一致;

 

检查network/admin 目录中是否有sqlnet.oralistener.oratnsname.ora等文件及其配置

 

检查 /etc/hosts 文件,看主机名与ip地址是否正确。

 

最好到oraclebin

$su oracle

$./dbstart

Ok

我安装的时候遇到了很多问题,其中在安装数据库的时候出现错误

Ora-12547:TNS: lost contact  我都点了忽略

装完之后 oradata下是空的,很郁闷,后来一位大哥告诉我缺了一些必要的包,我又

rpm –ivh  xxxx.rmp了这些包,才可以安装,为此很是郁闷

rpm -ivh compat-db-4.1.25-9.i386.rpm

rpm -ivh openmotif21-2.1.30-11.RHEL4.2.i386.rpm

rpm -ivh 1-libXp-1.0.0-8.1.el5.i386.rpm

rpm -ivh compat-gcc-32-3.2.3-47.3.i386.rpm

rpm -ivh compat-gcc-32-c++-3.2.3-47.3.i386.rpm

rpm -ivh compat-libgcc-296-2.96-132.7.2.i386.rpm

rpm -ivh compat-libstdc++-33-3.2.3-47.3.i386.rpm

 

接下来安装 jdk

这个就比较容易了

#tar xvf xxx.tar#tar  zxvf  xxx.tar.gz

#cp –a  /xxxx   /xxx

Ok了,呵呵

安装Tomcat

jdk的安装是一样的

只是要添加点环境变量

# vi startup.sh

加入

export JAVA_HOME=/test/jdk1.5.0_11-test   这里是jdkhome

export TOMCAT_HOME=/test/tomcat5.5.23-test    这里是tomcathome

 

# vi shutdown.sh 同上

又需要的还有改下端口,这个就不多说了

 

安装apache

解包后

# ls

httpd-2.2.4  httpd-2.2.4.tar.gz

 

# cd httpd-2.2.4

[root@test httpd-2.2.4]# ./configure --prefix=/test/apache2.2.4 --with-mpm=prefork (进程模式,稳定)

或者

[root@test httpd-2.2.4]# ./configure --prefix=/test/apache2.2.4 --with-mpm=worker (进程、线程混合模式,省内存)

也可以#./configure  这样就默认安装到了/usr/loacl  prefix是安装目录 后面的是进程模式

然后

# make  很长时间,我是没看明白搞了些什么

 

# make install  这个是很快

# make clean  清楚安装过程中的文件,我猜测

# ./apachectl start

打开浏览器访问,能看到apache页面,安装完毕。

然后是配置

apache配置文件主要有4个,位于conf目录下的httpd.conf,位于conf/extra目录下的httpd-default.confhttpd-mpm.confhttpd-vhosts.conf

 

# vi httpd.conf

 

#ServerName www.example.com:80  去掉前面#,改成主站的域名

 

DocumentRoot "/test/apache2.2.4/htdocs" 改成网站页面文件所在的目录

 

<Directory "/test/apache2.2.4/htdocs"> 改成网站页面文件所在的目录

 

#Include conf/extra/httpd-mpm.conf     去掉前面#

#Include conf/extra/httpd-vhosts.conf  去掉前面#

#Include conf/extra/httpd-default.conf 去掉前面#

 

# cd extra/

# vi httpd-default.conf

 

ServerTokens Full 改成ServerTokens Prod

 

# vi httpd-mpm.conf

进程模式修改:

<IfModule mpm_prefork_module>

    ServerLimit        1000 (加入这一行,数值可更大些)

    StartServers          5

    MinSpareServers       5

    MaxSpareServers      10

    MaxClients          150 (网站访问量大的话,把这个值改大)

    MaxRequestsPerChild   0 (把这个值改一下,比如10000,会使apache更加稳定)

</IfModule>

 

进程、线程混合模式修改:

<IfModule mpm_worker_module>

    ServerLimit          20 (加入这一行,数值可更大些)

    StartServers          2

    MaxClients          150 (网站访问量大的话,把这个值改大)

    MinSpareThreads      25

    MaxSpareThreads      75

    ThreadsPerChild      25

    MaxRequestsPerChild   0 (把这个值改一下,比如5000,会使混合模式的apache更加稳定)

</IfModule>

注意混合模式的数值大小关系:ServerLimit >= (MaxClients/ThreadsPerChild)

 

 

# vi httpd-vhosts.conf

 

NameVirtualHost *:80 (端口应与 httpd.conf 文件中的端口号一致)

 

加入需要的虚拟站点,默认的主站点应放在第一个

 

<VirtualHost *:80>

    ServerAdmin webmaster@163.com

DocumentRoot /www/webapps/

ServerName www.163.com

    ErrorLog logs/news163._log

    CustomLog logs/news163ess_log common

</VirtualHost>

 

如果虚拟站点与主站点不在同一个目录下的话,可能会因权限而无法访问,应加入一段授权:

<VirtualHost *:80>

       …….

    <Directory "/other/thai">

        AllowOverride None

        Options None

        Order allow,deny

        Allow from all

</Directory>

</VirtualHost>

 

这些也可以写到httpd.conf

安装squid

这个也是web的加速代理,我感觉比 apache好,不过有个缺点是不能指定他的默认目录,他自己指定的是root,而apache可以随意指定网站的所在的目录,或许是我还没搞透。

Linux有自带的squid,但据说不是很好,加上我的linux版本过低就没有用

 

# tar -zxvf squid-2.6.STABLE6.tar.gz

#./configure --prefix=/test/squid2.6.6

# make

# make install

apache一样,配置

# cd /test/squid2.6.6/etc

# vi squid.conf

 

##

#

# 版本号:squid-2.6.STABLE6

#

##

 

visible_hostname www.test.com

 

http_port 123.123.123.123:80 vhost vport     (ip地址和端口)

 

cache_mem 300 MB    (用于缓存的内存)

cache_dir ufs /test/squid2.6.6/var/cache 5000 16 256 (用于缓存的硬盘目录)

coredump_dir /test/squid2.6.6/var/cache

cache_swap_low 92

cache_swap_high 95

 

# 错误页面:

error_directory /test/squid2.6.6/share/errors/Simplify_Chinese

cache_mgr webmaster@test.com

 

maximum_object_size 512 KB

maximum_object_size_in_memory 64 KB

 

 

# 关闭处于半关闭状态的TCP连接

half_closed_clients off

 

 

# 下列服务禁用缓存:

hierarchy_stoplist cgi-bin ?

acl QUERY urlpath_regex cgi-bin /?

cache deny QUERY

 

 

 

acl apache rep_header Server ^Apache

broken_vary_encoding allow apache

 

 

# 定义访问日志格式:

logformat squid  %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

logformat squidmime  %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt [%>h] [%<h]

logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st %Ss:%Sh

logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh

# 设置访问日志文件路径及格式:common格式与apache默认日志格式相同)

access_log /test/squid2.6.6/var/logs/access.log common

logfile_rotate 100

# 去除缓存日志:

cache_store_log none

 

 

# 刷新时间:

refresh_pattern -i /.htm$   0  50% 10080

refresh_pattern -i /.html$  0  50% 10080

refresh_pattern -i /.shtml$ 0  50% 10080

 

refresh_pattern -i /.gif$   0  50% 10080

refresh_pattern -i /.swf$   0  50% 10080

refresh_pattern -i /.jpg$   0  50% 10080

refresh_pattern -i /.png$   0  50% 10080

refresh_pattern -i /.bmp$   0  50% 10080

 

refresh_pattern -i /.js$    0  50% 10080

refresh_pattern -i /.jsp$   0  50% 10080

refresh_pattern -i /.php$   0  50% 10080

refresh_pattern -i /.asp$   0  50% 10080

 

refresh_pattern -i /.doc$   0  50% 10080

refresh_pattern -i /.ppt$   0  50% 10080

refresh_pattern -i /.xls$   0  50% 10080

refresh_pattern -i /.pdf$   0  50% 10080

refresh_pattern -i /.rar$   0  50% 10080

refresh_pattern -i /.zip$   0  50% 10080

 

refresh_pattern ^ftp:             1440       20% 10080

refresh_pattern ^gopher:       1440       0%  1440

refresh_pattern .           0     20% 10080

 

 

# 定义广域网ip范围:

acl all src 0.0.0.0/0.0.0.0

 

# 仅允许来自本机地址的缓存管理请求:

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

http_access allow manager localhost

http_access deny manager

 

acl to_localhost dst 127.0.0.0/8

 

# 允许删除缓存:

acl AdminBoxes src 127.0.0.1 123.123.123.123

acl Purge method PURGE

http_access allow AdminBoxes Purge

http_access deny Purge

 

 

 

# 定义安全端口:

acl SSL_ports port 443

acl Safe_ports port 80          # http

acl Safe_ports port 21          # ftp

acl Safe_ports port 443         # https

acl Safe_ports port 70          # gopher

acl Safe_ports port 210         # wais

acl Safe_ports port 1025-65535  # unregistered ports

acl Safe_ports port 280         # http-mgmt

acl Safe_ports port 488         # gss-http

acl Safe_ports port 591         # filemaker

acl Safe_ports port 777         # multiling http

acl CONNECT method CONNECT

 

# 允许访问已定义安全端口,拒绝访问非安全端口:

http_access allow Safe_ports

http_access deny !Safe_ports

# 仅允许加密请求到安全端口443

http_access deny CONNECT !SSL_ports

 

# 允许已定义目标地址(被反向代理主机),拒绝非定义目标地址:

acl webSites dst 123.123.123.0/24

http_access allow webSites

http_access deny !webSites

 

# 允许已定义客户地址,拒绝非定义客户地址:

acl visitors src 0.0.0.0/0.0.0.0

http_access allow visitors

http_access deny !visitors

http_reply_access allow visitors

icp_access allow visitors

 

 

#################

#

#  反向代理begin

#

 

cache_peer 192.168.0.10 parent 81 0 no-query originserver name=testserver81

cache_peer_domain testserver81 testserver81

cache_peer_domain testserver81 test181

cache_peer_domain testserver81 test281

cache_peer_domain testserver81 test381

 

cache_peer 192.168.0.10 parent 82 0 no-query originserver name=testserver82

cache_peer_domain testserver82 testserver82

cache_peer_domain testserver82 test182

cache_peer_domain testserver82 test282

cache_peer_domain testserver82 test382

 

#

#  反向代理end

#

配置文件很多

 

[root@test etc]#cd ../sbin

[root@test sbin]# ./squid -z                初始化缓存目录

[root@test sbin]# ./squid -D &              启动

[root@test sbin]# ./squid -k shutdowon      关闭

[root@test sbin]# ./squid -k reconfigure    重载配置

 

完成

 

环境配置好后就要加载运行程序

首先是数据库的导入导出,这里写的详细些

#su oracle     切换到oracle,用户这里必须要用oracle用户才能操作

$cd /oracle/db_1/bin  到数据库的 bin

$./dbstart  启动数据库,这里会生成一个启动日志文件,在db_1

$./sqlplus   启动sqlplus

在用户名的地方输入 /as sysdba  dba的身份登陆

Sql>create user UserName  identified by PassWord; 新建个用户 UserName

Sql>grant  create session to UserName;   创建个session付给用户 Username

Sql>grant dba to UserName;   要导入数据需要给用户一个dba权限

Sql>create tablespace  TableSpace  datafile=’/db/db.dbf’ size 500M autoextend on 创建一个表空间

Sql>alter  user  UserName  quota unlimited on TableSpace;  把表空间付给用户来使用

基本上也就建立好了

当然也可以在grant用户一些 view , connect,resource 给用户

从另一个表中导出数据

$./exp username/password  file=/test/data.dmp full=y

这个语句下有些提示操作,最好是选择导出用户(还要加那些参数,以后补上)

$./imp username/password  file=/db/db.dmp  full=y statistics=none

这个是全部导入

还有导出个别表

$./exp username/password  file=/xxx.dmp tables=( tablenames);

$./imp username/password  file/xxx.dmp tables=(tablenames,tablenames);

 

随系统启动而启动程序,修改

# cd /etc/ic.d/

# vi  rc.local 修改这个文件,加入要随机启动的程序

touch /var/lock/subsys/local   这个是自带的不要动,下面的是需要自己添加的

 

su - oracle -c "/database/oracle/product/10.2.0/db_1/bin/dbstart"

 

/usr/local/apache2/bin/apachectl start

 

/www/tomcat/bin/startup.sh

 

/www/tomcat-trs/bin/startup.sh

 

自动备份数据库

首先建一个可执行文件,如databaseback.sh

加入

rq=` /bin/date +%Y%m%d `  这里是取得服务器的时间并按照一定格式20080112

 

su - oracle -c "/database/oracle/product/10.2.0/db_1/bin/exp username/password file=/xxx$rq.dmp"   导出并改名

# crontab –e

加入,如

05 * * * * /database/oraclebackup/oraclebackup.sh  执行备份文件

20 * * * * /database/oraclebackup/changefilename.sh  这是个改名的,我给写到一起了

 

1 * * * * /root/output/output-bytes.sh   这是执行流量统计

 

下面是output-bytes.sh的内容

thedate=`/bin/date +%Y%m%d`

thetime=`/bin/date +%H:%M:%S`

NowIs=$thedate.$thetime

 

/bin/echo "$NowIs" >> /root/output/output-bytes.txt

/sbin/iptables -L -v -n | grep OUTPUT >> /root/output/output-bytes.txt

/bin/echo -e "##/n##" >> /root/output/output-bytes.txt

 

/etc/init.d/iptables restart

 

 

 

原创粉丝点击