Home > 工作 > 部署Centos5.4服务器–apache+tomcat+jk+php篇

部署Centos5.4服务器–apache+tomcat+jk+php篇

首先,现在已经2010-09-25 22:58:44,这篇文章今天是写不完了…说句实话,这次纯粹就是折腾!因为我们服务器以前是apache的,后来说nginx不错,改成了nginx,现在又要回到apache了…

差不多1年没有去碰apahce了,这对我来说又是个新玩意儿,不过上手也就5分钟,下载、解压、编译、安装…但是,又是rewrite模块、proxy模块、cgi模块…这些模块让我差点抓狂!其实这个时候,我的主管,更加郁闷——将网站的虚拟币值和discuz里面的币值等同起来,找字段,找sql语句,分析字段,分析商品插件….他快要晕掉了(对了,他还重感冒ing)。

恩,该睡觉了…明天不闲扯,直接挂上步骤,以及指出可能出错的地方,并给出解决方法!各位晚安…

++++开始吧+++

先声明,我的服务器已经安装过JDK、Mysql(my.cnf位于/etc下面)、Tomcat,如果没有装过的童鞋还是先装上去

1、Apache+PHP安装

yum -y install httpd
yum -y install httpd-devel
yum -y install php
yum -y install php-mysql

当然,php的模块很多,你可以用下面的命令进行查看:

yum search php

php-pear.noarch : PHP Extension and Application Repository framework
compat-readline43.i386 : 与旧版本软件兼容的 redline 4.3库。
fonts-arabic.noarch : 阿拉伯语字体。
gollem-h3.noarch : The Horde web-based File Manager.
hddtemp.i386 : Hard disk temperature tool
horde.noarch : The common Horde Framework for all Horde modules.
imp-h3.noarch : The Internet Messaging Program: webmail access to IMAP/POP3
: accounts.
ingo-h3.noarch : The Horde web-based Email Filter Rules Manager.
iproute.i386 : 高级 IP 路由和网络设备配置工具。
kronolith-h3.noarch : The Horde calendar application.
libc-client.i386 : 用于 IMAP 和 POP 网络邮件协议的 C-client 邮件访问
mnemo-h3.noarch : The Horde note manager application.
nag-h3.noarch : The Horde task list manager.
php.i386 : PHP 嵌入在 HTML 中的脚本语言。(PHP:超级文本预处理器)
php-bcmath.i386 : 一个用于使用 bcmath 库的 PHP 模块
php-cli.i386 : Command-line interface for PHP
php-common.i386 : Common files for PHP
php-dba.i386 : 一个用于 PHP 程序的数据库抽象层
php-dbase.i386 : Standard dBase module for PHP applications
php-devel.i386 : 建构 PHP 扩展所需的文件。
php-gd.i386 : 一个用于使用 gd 图形库的 PHP 程序模块。。
php-imap.i386 : A module for PHP applications that use IMAP.
php-ldap.i386 : 一个用于使用 LDAP 的 PHP 程序的模块。
php-mbstring.i386 : 一个用于需要处理多字节字符串的 PHP 程序的模块。
php-mcrypt.i386 : Standard PHP module provides mcrypt library support
php-mhash.i386 : Standard PHP module provides mhash support
php-mssql.i386 : Standard PHP module provides mssql support
php-mysql.i386 : 一个用于使用 MySQL 数据库的 PHP 程序的模块。
php-ncurses.i386 : 一个用于使用 ncurses 界面的 PHP 程序的模块。
php-odbc.i386 : 一个用于使用 ODBC 数据库的 PHP 程序的模块。
php-pdo.i386 : A database access abstraction module for PHP applications
php-pear-Auth-SASL.noarch : PEAR: Abstraction of various SASL mechanism
: responses
php-pear-DB.noarch : PEAR: Database Abstraction Layer
php-pear-Date.noarch : Date and Time Zone Classes
php-pear-File.noarch : Common file and directory routines
php-pear-HTTP-Request.noarch : Provides an easy way to perform HTTP requests
php-pear-Log.noarch : Abstracted logging facility for PHP
php-pear-MDB2.noarch : Database Abstraction Layer
php-pear-MDB2-Driver-mysql.noarch : MySQL MDB2 driver
php-pear-Mail.noarch : Class that provides multiple interfaces for sending
: emails
php-pear-Mail-Mime.noarch : Classes to create and decode mime messages
php-pear-Net-SMTP.noarch : Provides an implementation of the SMTP protocol
php-pear-Net-Sieve.noarch : Communication with timsieved
php-pear-Net-Socket.noarch : Network Socket Interface
php-pear-Net-URL.noarch : Easy parsing of URLs
php-pecl-Fileinfo.i386 : Fileinfo is a PHP extension that wraps the libmagic
: library
php-pecl-memcache.i386 : Extension to work with the Memcached caching daemon
php-pgsql.i386 : PHP 的 PostgreSQL 数据库模块。
php-readline.i386 : Standard PHP module provides readline library support
php-snmp.i386 : 一个用于查询 SNMP 所管理设备的程序的模块。
php-soap.i386 : 一个用于使用 SOAP 协议的 PHP 程序的模块
php-tidy.i386 : Standard PHP module provides tidy library support
php-xml.i386 : 使用 XML 的 PHP 程序的模块
php-xmlrpc.i386 : 一个用于使用 XML-RPC 协议的 PHP 程序的模块。
readline.i386 : 用来编辑定类的命令行的库。
readline-devel.i386 : 开发使用 readline 库的程序所需的文件。
squirrelmail.noarch : SquirrelMail 网页邮件客户
totem.i386 : GNOME2 的媒体播放器
totem-devel.i386 : Libraries/include files for Totem
totem-mozplugin.i386 : Mozilla plugin for Totem
turba-h3.noarch : The Horde contact management application.
velocity.i386 : 基于 Java 的模板引擎

要安装哪些模块,只要输入yum -y install+模块名字就可以了,比如要安装GD模块,只要输入:yum -y install php-gd

OK,继续!接下来是安装Zend模块,这里我们选3.3.3版本吧,安装如下:

wget http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
tar zxvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.3-linux-glibc23-i386
./install.sh

最后一步是图形界面,一路回车即可(如果httpd和php都是yum安装的话)

到了安装JK的时候了,JK主要是连接apache和tomcat的,安装也很简单,如下

wget http://archive.apache.org/dist/jakarta/tomcat-connectors/jk/source/jakarta-tomcat-connectors-current-src.tar.gz
tar zxvf jakarta-tomcat-connectors-current-src.tar.gz
cd jakarta-tomcat-connectors-1.2.14.1-src/jk/native2
./configure --with-apxs=/usr/sbin/apxs
make
cd apache-2.0
apxs -n jk -i mod_jk.so
cp ../../../conf/workers2.properties /etc/httpd/conf/

下面是编辑apache和tomcat配置文件,先说tomcat的吧,tomcat很简单,只要改一点点的地方,一个是编码一个是路径

vim /opt/tomcat/conf/server.xml

  <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" useBodyEncodingForURI="true"  URIEncoding="UTF-8" />
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
 <Context path="" docBase="/www" debug="0" reloadable="true" crossContext="true"/>

至于apache,配置文件我全部贴出来好了

vim /etc/httpd/conf/httpd.conf

###这份http.conf是我简化掉注释文件形成的,可以参考不能照搬
ServerTokens Prod 
#apache安装目录,默认即可
ServerRoot “/etc/httpd”
PidFile run/httpd.pid
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>
<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>
#端口可以自定义,不过改了之后整个配置文件就必须统一这个端口
Listen 80 
#下面是apache带的各种模块,mod_jk2.so是我们需要添加的
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
#需要添加这个jk2模块用来连接tomcat
LoadModule jk2_module modules/mod_jk2.so
LoadModule version_module modules/mod_version.so

Include conf.d/*.conf

#运行apache的用户和用户组
User apache
Group apache
#管理员邮箱
ServerAdmin ajcheng@admin.com
#网站名字,带上端口
ServerName 192.168.1.10:80
UseCanonicalName Off
#网站根目录
DocumentRoot “/www”
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
#这里需要改下,允许CGI
<Directory “/www”>
    Options  FollowSymLinks  Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    <Limit GET POST OPTIONS>
    Order allow,deny
    Allow from all
    </Limit>
 <LimitExcept GET POST OPTIONS>
     Order deny,allow
      Deny from all
   </LimitExcept>
</Directory>

<IfModule mod_userdir.c>
     UserDir disable
</IfModule>
#<Directory /home/*/public_html>
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>
#增加index.php
DirectoryIndex index.php index.html index.html.var
#允许.htaccess
AccessFileName .htaccess
<Files ~ “^\.ht”>
    Order allow,deny
    Deny from all
</Files>
TypesConfig /etc/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
#   MIMEMagicFile /usr/share/magic.mime
    MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
ErrorLog logs/error_log
LogLevel warn
LogFormat “%h %l %u %t \”%!414r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”" combined
LogFormat “%h %l %u %t \”%r\” %>s %b” common
LogFormat “%{Referer}i -> %U” referer
LogFormat “%{User-agent}i” agent
CustomLog logs/access_log combined
ServerSignature Off
Alias /icons/ “/var/www/icons/”
<Directory “/var/www/icons”>
    Options  MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<IfModule mod_dav_fs.c>
    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
</IfModule>
ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”
<Directory “/var/www/cgi-bin”>
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
ForceLanguagePriority Prefer Fallback
#默认编码,可以改成其他的如GBK
AddDefaultCharset UTF-8
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#这里需要修改,添加了.pl模块
AddHandler cgi-script .cgi .pl
AddHandler type-map var
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Alias /error/ “/var/www/error/”
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    <Directory “/var/www/error”>
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>
#这里是报错页面,可以自己自定义
#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

</IfModule>
</IfModule>

#重写模块
RewriteEngine on
#示例#将http://www.anjing.me/register.do?usertype=personal#改成http://www.anjing.me/register_personal.html
RewriteRule ^/register_([a-z]+).html$ /register.do?usertype=$1 [PT]

#示例#将http://www.anjing.me/login.do#改成http://www.anjing.me/login.html
RewriteRule ^/login.html$ /login.do  [PT]

#proxy模块
#ProxyPassReverse
ProxyPass /css/ !
ProxyPass /images/ !
ProxyPass /js/ !
ProxyPass /file/ !
ProxyPass /UserFiles/ !
ProxyPass /html/ !
ProxyPass /bbs/ !
ProxyPass /plugins/ !
#这里最好填上网站名称,而不要使用127.0.0.1这样的
ProxyPass / http://www.anjing.me:8080/

BrowserMatch “Mozilla/2″ nokeepalive
BrowserMatch “MSIE 4\.0b2;” nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch “RealPlayer 4\.0″ force-response-1.0
BrowserMatch “Java/1\.0″ force-response-1.0
BrowserMatch “JDK/1\.0″ force-response-1.0
BrowserMatch “Microsoft Data Access Internet Publishing Provider” redirect-carefully
BrowserMatch “MS FrontPage” redirect-carefully
BrowserMatch “^WebDrive” redirect-carefully
BrowserMatch “^WebDAVFS/1.[0123]” redirect-carefully
BrowserMatch “^gnome-vfs/1.0″ redirect-carefully
BrowserMatch “^XML Spy” redirect-carefully
BrowserMatch “^Dreamweaver-WebDAV-SCM1″ redirect-carefully
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin admin@ajcheng.com
    DocumentRoot /www
    ServerName www.ajcheng.com
    ErrorLog logs/err.log
    CustomLog logs/Custom.log common
</VirtualHost>

当然,在配置过程中遇到很多问题,不过我都把这些问题给解决了,比如yum安装php的时候,没有安装php-mysql导致连不上数据库;没有装httpd-devel,导致运行apxs命令无效;ProxyPass写的不对,导致405错误等…

先就到这里吧,我干活了…

补充:还需要改个地方:

vim /etc/httpd/conf/workers2.properties

添加下2行到文尾:
[uri:/servlets-examples/*]
[uri:/jsp-examples/*]

原创文章,转载请注明: 转载自三叶草

本文链接地址:http://www.anjing.me/1096.html

特别声明:商业网站转载需经作者同意,否则视为侵权!

相关日志

POSTED ON 2010/09/25, , , , , , ,

Comments:17

Leave my own
  1. #1 su
    10/09/26 回复

    这个算术是什么插件的啊

    • #2 三叶草
      10/09/26 回复

      是一个算术插件,你到我网站搜索下就可以找到,关键词:“数学插件”“spam”

  2. #3 Ray
    10/09/26 回复

    这个对俺没有什么用。

  3. #4 学夫子
    10/09/26 回复

    这个博客用的是服务器吗?还是其他的网站?都不会折腾,呵呵

    • #5 三叶草
      10/09/26 回复

      写的是公司的网站…博客用的是老薛空间

  4. #6 七叶草
    10/09/26 回复

    服务器方面没怎么深究啊

  5. #7 秋上书
    10/09/26 回复

    诶?博客好了啊?前几天好像换地方了呀

    • #8 三叶草
      10/09/26 回复

      恩,前几天腾到anjing.me上面去了,看到你的留言叻,那个博客是我的专属博客…

  6. #9 王光卫中文博客
    10/09/26 回复

    linux现在倒没有怎么用了,不过我喜欢Linux精神

  7. #11 jiechic
    10/09/26 回复

    那还没问,你什么工作呢?

  8. #13 oalleno
    10/09/26 回复

    这,这些就更不懂了。。

  9. #14 Solo
    10/09/26 回复

    前段时间还折腾了下,现在都忘 了。不过我的博客上还有些心得的。

  10. #15 ed hardy clothing
    10/09/27 回复

    真是不容易啊,博主您辛苦了!

  11. #17 only博客
    10/09/27 回复

    这个够强大,支持一下~

Leave a Reply

TOP