ChinaUnix首页 > 精华文章 > Web服务器 > 正文

[原创] [安装配置] [原创]我的WEB服务器搭建之经验


http://www.chinaunix.net 作者:xxjoyjn  发表于:2007-12-05 17:20:38
发表评论】 【查看原文】 【Web服务器讨论区】【关闭

首先,我要说明的是,这个WEB安装经验是我目前正在使用的方案,由于环境的不同,同一软件有不同版本的缘故,
所以我的这个方案肯定不是适合每个人的需要的。但是,我相信能给初学者给一个指导作用,在此我要申明我的环境:
redhat linux9+mysql4.0.12+tomcat-4.1.29+php4.3.1+jdk1.4+apahe2.0.45

下载软包:
httpd-2.0.45.tar.gz
j2sdk-1_4_2_01-linux-i586.bin
jakarta-tomcat-4.1.29.tar.gz
mysql-4.0.12.tar.gz
php-4.3.1.tar.gz
jarkata-tomcat-connectors-4.1.18
jarkata-tomcat-connectors-1.1.25

1.安装mysql
使用tar解压,然后进入解压后的目录执行以下配置:
要正确编译和安装MySQL数据库服务程序,需要建立mysql组和属于mysql组的mysql用户。在以后运行MySQL数据库服务程序的时候同样需要它们,建立的方法如下: 
groupadd mysql 
useradd –g mysql mysql 

#groupadd mysql 
#useradd mysql -g mysql -s /nonexitent 

tar -zxvf mysql-3.23.53.tar.gz
./configure --prefix=/usr/local/mysql
编译和安装:

如果已经安装则先make clean
make 
make install

 初始化mysql数据库:
cd /usr/local/mysql
bin/mysql_install_db


改变属性:
chown -R root /usr/local/mysql 
chown -R mysql /usr/local/mysql/var 
chgrp -R mysql /usr/local/mysql



cp support-files/my-medium.cnf /etc/my.cnf 
/usr/local/mysql/bin/mysqld_safe --user=mysql & 
echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" > /etc/rc.local 
./mysqladmin -u root -p password your-password 

#启动mysql
#echo "/usr/local/mysql/bin/mysqld_safe &" > /etc/rc.local 

2.安装apache

使用tar解压,然后进入解压后的目录执行以下配置:
tar -zxvf httpd-2.0.43.tar.gz 
#./configure --prefix=/usr/local/apache2 --enable-so
./configure --prefix=/usr/local/apache2 --with-mysql=/usr/local/mysql --enable-shared=max --enable-module=so 
编译和安装:
make && make install

mv /usr/local/apache2/htdocs/index.html.en /usr/local/apache/htdocs/index.html 
/usr/local/apache/bin/apachectl start 


3.安装php使它支持mysql和apache2:

使用tar解压,然后进入解压后的目录执行以下配置:
tar -zxvf php-4.3.0.tar.gz 
mv php-4.3.0 php 
cd php 
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs 
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql
make 
make install 
ee /usr/local/apache/conf/httpd.conf 
mv /usr/local/apache/htdocs/index.html.en /usr/local/apache/htdocs/index.html 
rm /usr/local/apache/htdocs/index.html.* 


在 /usr/local/apache2/conf 下的httpd.conf文件中加上下面三行代码,就可以使apache支持php了,然后保存退出。 
LoadModule php4_module modules/libphp4.so 
AddType application/x-httpd-php .php 
AddType application/x-httpd-php-source .phps 

修改servername的属性


4.tomcat
tar zxf jakarta-tomcat-4.0.1.tar.gz   /usr/java/
(如果不能这么解压,就把这个包直接拷贝到/usr/java下再解压成
文件jakarta-tomcat-4.1.29,在解压时就执行了tomcat的安装
,接着进入jakarta-tomcat-4.1.29/bin,执行startup.sh文件,接着用IP直接访问主机8080端口,
如果出现 tomcat的主页面就意味着安装成功)
直接执行j2sdk-1_4_0-beta2-linux-i386.bin 解压jdk1.4到/usr/local 

为了方便操作,做两个连接操作 
ln -s jakarta-tomcat-4.0.1 tomcat
ln -s j2sdk1.4.0 jdk


在/etc/下编辑profile添加  (配置环境变量,要运行tomcat,这一步是必须的)
JAVA_HOME=/usr/local/jdk
path=/usr/local/jdk/bin:$path:
export path JAVA_HOME




以下是如何整合apache和tomcat说明:

只要实现以下两个步骤就可以了:

第一步:修改tomcat下的server.xml 文件:
在server.xml文件的 <server></server>标签中间加一<service></service>标签,与其他的<service></service>
标签并列,如下:

 <Service name="Tomcat-Apache">

    <Connector className="org.apache.catalina.connector.warp.WarpConnector"
     port="8008" minProcessors="5" maxProcessors="75"
     enableLookups="true" appBase="webapps"
     acceptCount="10" debug="0"/>

    <!-- Replace "localhost" with what your Apache "ServerName" is set to -->
    <Engine className="org.apache.catalina.connector.warp.WarpEngine"
     name="Apache" debug="0">

      <!-- Global logger unless overridden at lower levels -->
      <Logger className="org.apache.catalina.logger.FileLogger"
              prefix="apache_log." suffix=".txt"
              timestamp="true"/>

      <!-- Because this Realm is here, an instance will be shared globally -->
      <Realm className="org.apache.catalina.realm.MemoryRealm" />

    </Engine>

  </Service> 

第二步: 修改/usr/local/apache2/con下的httpd.conf文件,这一步涉及两个修改:

(1)在文件末尾加入一下代码:

LoadModule   webapp_module  modules/mod_webapp.so
WebAppConnection warpConnection warp localhost:8008 
WebAppDeploy /usr/java/tomcat/webapps/ROOT warpConnection /
WebAppDeploy /usr/java/tomcat/webapps/hbcz warpConnection /hbcz

 注意:第一行中的mod_webapp.so是一个二进制文件,在apache最初安装时并不存在
 因此,必须找这样的一个文件拷贝到/usr/local/apache2/modules目录下, 该文件
 我放在 D:\服务器配置\安装服务器的有关文件    中

 (2) 修改servername的值,这个值就是服务器的IP地址

 如果要使apache支持php,则应该在(1)中的四行代码前加入一下几行代码:

LoadModule php4_module modules/libphp4.so 
AddType application/x-httpd-php .php 
AddType application/x-httpd-php-source .phps


最后,为了方便,我们总希望每次服务器启动时都能自行启动mysql,apache,tomcat等,
在此需要编辑/etc/rc.local这个文件。有两种方法:
(1)使用命令:vi /etc/rc.local 直接进行编辑
使用该命令打开该文件后,插入以下代码:
/usr/local/mysql/bin/mysqld_safe --user=root &
/usr/local/apache2/bin/apachectl start
export JDK_HOME=/usr/local/jdk
export JAVA_HOME=/usr/local/jdk
/usr/java/tomcat/bin/startup.sh
(2)在命令行中使用echo命令:
echo "/usr/local/mysql/bin/mysqld_safe --user=root &" > /etc/rc.local
echo "/usr/local/apache2/bin/apachectl start" > /etc/rc.local
echo "export JDK_HOME=/usr/local/jdk" > /etc/rc.local
echo "export JAVA_HOME=/usr/local/jdk" > /etc/rc.local
echo "/usr/java/tomcat/bin/startup.sh" > /etc/rc.local

 5 mod-webapp.so 的下载 编译 安装
 

  (1) 编译Jakarta-Tomcat-connectors 
    cd /opt/jakarta-tomcat-connectors-4.1.18-src/webapp ## 进入指定的目录 
    ./support/buildconf.sh ## 生成编译配置文件 
    ./configure --with-apxs ## 生成Makefile编译文件 
    make ## 编译生成mod_webapp.so 
    注释: 生成的mod_webapp.so文件在apache-2.0目录中 
  (2) 把apache-2.0目录中的mod_webapp.so文件复制到目录/usr/lib/httpd/modules 
    并检查文件/usr/lib/httpd/modules/mod_webapp.so的属性,应与其它Modules文件 
    属性一致,如果不相同,则使用chmod chgrp chown来修改 
6 用mod-jk.so实现APACHE 和TOMCAT的整合
(说明:mod-jk.so这个二进制文件需要下载jarkata-tomcat-connector1.1.25,然后进行编译,至于如何编译,我在
这里就不再赘述,你可以在现在的包中找到编译的说明稳当,比我说的漂亮多了,哈哈)
如上所述,可以用mod-webapp.so插件实现APACHE和TOMCAT的整合,但是也可以用mod-jk.so
来实现它们的有效整合,在这种情况下,不需要添加额外的<service></service>内容,但是要激活
连接器<connector port="8009"  className="org.apache.ajp.tomcat4.Ajp13Connector"... />
同时,要设定<Engine name="Standalone" defaultHost="localhost" debug="0" jvmRoute="work1"></Engine>
其中,work1是在APACHE的conf目录下的workers.properties文件中定义的TOMCAT 实例。
此外,还要在<Engine></Engine>标签插入<Host name="www.guoxinad.com" appBase="webapps" ...></Host>
其中www.guoxinad.com必须要与APACHE的conf/httpd.conf文件中定义的虚拟主机名称要一致.
还有,要在<Host></Host>中间嵌入<Context path="" docBase="guoxin" debug="0"/>
通过mod-jk.so这个插件实现APACHE和TOMCAT整合时对server.xml的调整到这就算结束了,下面是要在APACHE中所
做的工作:

第一步:
建立workers.properties描述文件:(这个文件要放到APACHE-HOME/conf/下面)
这个文件的内容如下:
worker.list=worker1
workers.tomcat_home=/usr/java/tomcat
workers.java_home=/usr/java/jdk
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

第二步:
修改APACHE httpd.conf文件,添加如下内容:
  LoadModule    jk_module  modules/mod_jk.so
  JkWorkersFile /usr/local/apache2/conf/workers.properties
  JkLogFile     /var/log/httpd/mod_jk.log
  JkLogLevel    info
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
  JkOptions     +ForwardKeySize +ForwardURICompat -ForwardDirectories
  JkRequestLogFormat     "%w %V %T
  JkMount /*.jsp worker1  //适合一般的JSP
  JkMount /*.do worker1  //在写STRUTS时需要
   
   同时建立一个虚拟主机:
   <VirtualHost *>
  Alias /guoxin /usr/java/tomcat/webapps/guoxin
  DocumentRoot /usr/java/tomcat/webapps/guoxin
  #directoryIndex index.html
  ServerName www.guoxinad.com
  </VirtualHost>

  同以上步骤,就可以通过http://www.guoxinad.com直接访问JSP网站了

[ 本帖最后由 HonestQiao 于 2006-6-2 11:14 编辑 ]



 xxjoyjn 回复于:2006-04-03 16:53:28

也许有人觉得我使用的软件包的版本有点老了,其实,正是使用这些老版本才让我现在对我的
WEB服务器的稳定性毫不担忧!我的服务器运行了2年了,没有出现过什么问题!


 pilgrim_kevin 回复于:2006-04-04 00:47:49

好文章。对我这样的新手很有用。仔细阅读下。

不过我更喜欢FreeBSD。


 xxjoyjn 回复于:2006-04-04 10:34:17

不管是REDHAT还是FreeBSD,对于WEB服务器的配制来说,没有本质上的区别,我的这个帖子也只是
想给初学者一个引导,让他们少走弯路


 gaoxin 回复于:2006-04-04 16:45:09

哥们现在就在那个弧度最大的点上!!!!


 xxjoyjn 回复于:2006-04-04 16:56:16

哈哈,兄弟,别太谦虚了,我也走过不少弯路,但,那不是坏事,尽管很痛苦,其间也可以
让自己学到好多东西,


 xxjoyjn 回复于:2006-04-05 18:30:17

大家有什么意见尽管给我提出,我也想优化一下自己服务器的配置。


 静水流深 回复于:2006-04-06 17:59:28

谢谢


 yangjunma 回复于:2006-04-10 11:18:47

路过,顶一下


 皓皓 回复于:2006-04-11 13:45:49

支持开源!~把工作笔记拿出来分享!真是太谢谢了!


 beyondfly 回复于:2006-04-22 16:56:02

楼主很强,我现在虽然还不怎么看得懂,但是我还是会支持一下,而且总有一天我会看得明明白白的,不,是精通


 小猴儿 回复于:2006-05-01 17:24:01

.............................


 w4cs 回复于:2006-05-29 13:00:16

我的环境是:
fedora core +mysql5.* +php5.2.2+apahe2.*

我的httpd.conf 中如下:
LoadModule php5_module modules/libphp5.so 

下面是我运行时产生的问题:
# /usr/local/apache2/bin/apachectl restart
httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
为什么,请帮忙,谢谢


 w4cs 回复于:2006-05-29 13:36:42

我的环境是:
fedora core +mysql5.* +php5.2.2+apahe2.*

我的httpd.conf 中如下:
LoadModule php5_module modules/libphp5.so 

下面是我运行时产生的问题:
# /usr/local/apache2/bin/apachectl restart
httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
为什么,请帮忙,谢谢


 xxjoyjn 回复于:2006-05-29 14:29:15

chmod 755 /usr/local/apache2/modules/libphp5.so
再试试看


 w4cs 回复于:2006-05-29 16:11:05

问题依旧!
劳烦在帮忙看看!


 xxjoyjn 回复于:2006-05-29 18:11:08

你的环境跟我不一样,不好说,


 盛世唐朝 回复于:2006-06-02 10:02:27

引用:
#./configure --prefix=/usr/local/apache2 --enable-so
./configure --prefix=/usr/local/apache2 --with-mysql=/usr/local/mysql --enable-shared=max --enable-module=so 



仔细看了
不错
但是请问上面的两行为什么要预编译两次


 freemanxp2005 回复于:2006-06-02 10:07:11

多试两次也许能成功


 liz2003 回复于:2006-08-29 10:27:50

不错啊,不过,兄弟有没有这方面的指导书?能给我发一份吗?谢谢。


 kayjess 回复于:2007-03-29 14:54:08

小弟来到此处真是大开眼界,不过无法能明白.多多学习


 ttleezhaoyu 回复于:2007-05-06 09:25:57

好文章!!!


 guobaofu 回复于:2007-09-30 10:36:39

谢谢了,对于我这样的菜鸟来说,真是太棒了。。哈哈。。。。支持!!!:)


 MYSQLER 回复于:2007-10-01 10:55:41

LoadModule   webapp_module  modules/mod_webapp.so
WebAppConnection warpConnection warp localhost:8008 
WebAppDeploy /usr/java/tomcat/webapps/ROOT warpConnection /
WebAppDeploy /usr/java/tomcat/webapps/hbcz warpConnection /hbcz

能不能说明下这几行的意思?


 linuxkumao 回复于:2007-12-05 17:20:38

学习学习




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=729633
转载请注明作者名及原文出处