手头的项目快完了,前一段为了将网站和系统配置到一起,花了不少功夫,也查了N多资料。最后终于成功了,现在最好记下来,否则将来又不会了。
需要安装和配置的软件有:apache2.2,php5.2,tomcat5.5,mysql5,jdk5等,系统环境为red hat fedora4。
安装jdk和mysql和tomcat都比较简单,按照软件自带的说明安装即可,这里就不啰唆了,但是要注意的一点是,为了使php能够连上mysql,最好使用mysql的max版。我就是开始使用的是standard版,所以始终有问题,但是重新下了个max版就正常了。不知道是mysql的问题还是php的问题。希望有知道的可以解答一下。
1.安装apache2.2
(1)解压缩tar包,到任意目录
(2)执行下面的命令
#./configure --prefix=/usr/local/apache2 --enable-modules=so
# make
# make install
首先进行配置,注意后面的--enable-modules=so 选项,必须要有,否则将不能加载php和connector的库,然后是编译和安装。
执行完之后会在/user/local/下生成一个目录apache2,即安装成功。可以到apache2/bin目录下执行./apachectl start来启动apache。并在浏览器中输入http://localhost,就会出现静态页面的信息,说明apache已经配置成功了。
2.安装php5.2
(1)首先要安装zlib。否则配置php的时候会出错,和安装apache的方法一样,只是不需要附加的参数。
(2)解压缩php5.2的tar包,并进入,执行下面的命令(由于较长,建议新建一个脚本文件来执行)
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib-dir=/usr/local/lib --with-mysql=/usr/local/mysql
如果成功了会有提示信息,否则会有错误信息,应该很好区分,然后又是make和make install。会在usr/local/下建立php5的目录。
(3)现在将php5/libs目录下的libphp5.so拷贝到apache2/modules/目录下。注意如果系统是红帽的fedora则需要执行下面的命令,否则启动apache的时候会出错。
chcon -t /usr/local/apache2/modules/libphp5.so
(4)配置 httpd.conf 让apache支持PHP
# vi /usr/local/apache/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
另外找到LoadModule部分,增加下面一行让apache可以找到php的库
LoadModule php5_module modules/libphp5.so
(4)重新启动apache,应该就可以解释php文件了,可以在htdocs目录下新建一个test.php文件检验一下,内容如下:
<!---->
如果在浏览器中输入http://localhost/test.php,应该可以看到php的系统信息了。
3.安装tomcat connector连接apache和tomcat.
(1)安装tomcat connector
解压缩tomcat-connector的压缩文件,生成文件夹,进入该文件夹,执行下面的命令,安装tomcat-connector
# configure
# make
# make install
将生成的mod_jk.so复制到/usr/local/apache2/modules路径下。
(2)配置apache2
在apache/conf路径下建立一个文件workers.properties,填写下面的内容:
# Define 1 real worker using ajp13
worker.list=worker1
# set properties for worker1(ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
保存退出。
打开httpd.conf文件,在最后添加下面的内容:
# Load mod_jk module
# Update this path to match your modules location
LoadModule jk_module modules/mod_jk.so
# Declare the module for <ifmodule directive=""></ifmodule>(remove this line on Apache 2.x)
# AddModule mod_jk.c
# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile conf/workers.properties
# Where to put jk shared memory
# Update this path to match your local state directory or logs directory
JkShmFile logs/mod_jk.shm
# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# Send everything for context /examples to worker named worker1 (ajp13)
JkMount /BulletinWeb/* worker1
JkMount /tmpfiles/* worker1
JkMount /uploadfiles/* worker1
最后的三行是告诉apache哪些目录由tomcat来处理,你需要根据自己的情况做相应的修改。
这样再次重新启动apache2和tomcat5,二者已经可以在一起合作工作了。