首先,我要说明的是,这个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
学习学习
|