热门关键字:  PHP  Cisco  seo  网络广告 虚拟主机 中文域名
当前位置 :| 主页>编程开发>JSP>开发工具>

Linux 下安装支持 JSP/PHP 的 WEB server

来源:搜站长搜集 作者:钝刀 时间:2005-08-24 点击:
0. 综述\r
0.1 目标\r
在 Linux 平台上安装一个支持 SSL、URL 重写、反向代理、页面压缩、CGI、PHP、JSP 的 免费 WEB 服务器\r

0.2 许可协议\r
GNU Free Documentation License http://www.gnu.org/licenses/fdl.html
允许任意转载,但请保持本文档的完整性
如有修改,务请通知作者

0.3 作者
钝刀 webmaster@yufeng.net

1. 下载
1.1 Apache http://www.apache.org/dist/httpd/
1.2 PHP http://www.php.net/downloads.php
1.3 Tomcat http://www.apache.org/dist/jakarta/tomcat-4/
1.4 JTC(jakarta tomcat connectors) http://www.apache.org/dist/jakarta/tomcat-4/source/

2. 安装
2.1 Apache
$tar vfxz httpd-2.0.46.tar.gz
$cd httpd-2.0.46
$./configure \
$--enable-so \
$--enable-ssl=shared \
$--enable-rewrite=shared \
$--enable-proxy=shared \
$--enable-deflate=shared \
$--with-mpm=worker \
$--prefix=/www/server/apache2
$make
$make install
#--enable-so 要使用 JK2 连接 Tomcat,必须让 apache2 支持模块动态加载
#--enable-ssl=shared 支持 SSL
#--enable-rewrite=shared 支持 URL 重写
#--enable-proxy=shared 支持代理\r
#--enable-deflate=shared 支持网页压缩\r
#--with-mpm=worker 采用worker的mpm方式运行
#--prefix=/www/server/apache2 安装目录

2.2 PHP
$tar vfxz php-4.3.2.tar.gz
$cd php-4.3.2
$./configure \
$--with-apxs2=/www/server/apache2/bin/apxs \
$--prefix=/www/server/php
$make
$make install
$cp php.ini-dist /usr/local/lib/php.ini
#--with-apxs2=/www/server/apache2/bin/apxs 作为 apache2 的模块编译\r
#--prefix=/www/server/php 安装目录,并没有太大作用

2.3 Tomcat
$tar vfxz jakarta-tomcat-4.1.24.tar.gz
$cp -R jakarta-tomcat-4.1.24 /www/server/
$ln -s /home/data/www/jakarta-tomcat-4.1.24 /home/data/www/tomcat

2.4 JTC
#编译错误请参考下文处理\r
$lynx http://www.pubbitch.org/jboss/mod_jk2.html
$tar vfxz jakarta-tomcat-connectors-4.1.24-src.tar.gz
$cd jakarta-tomcat-connectors-4.1.24-src

#以下两步如果没有编译错误不需要做\r
$cp /usr/java/j2sdk1.4.1_02/include/linux/jni_md.h /usr/java/j2sdk1.4.1_02/include/
$ln -s /www/server/apache2/lib/libapr-0.so /www/server/apache2/lib/libapr.so

#开始编译准备
$cd util
$cp build.properties.sample build.properties
$cd ../jk
$cp build.properties.sample build.properties
$vi build.properties
    catalina.home=/www/server/tomcat
    tomcat40.home=${catalina.home}
    apache2.home=/www/server/apache2
#修改以上内容
$cd ../coyote
$cp build.properties.sample build.properties
$vi build.properties
    catalina.home=/www/server/tomcat
#修改以上内容
$cd ../jk

#编译JK2
$ant native
$cp build/jk2/apache2/mod_jk2.so /www/server/apache2/modules

3. 配置
3.1 apache2/conf/httpd.conf
$vi /home/data/www/apache2/conf/httpd.conf
    #禁用默认字符集
    #AddDefaultCharset ISO-8859-1
    #加载 JK2
    LoadModule jk2_module modules/mod_jk2.so
    #支持 PHP
    AddType application/x-httpd-php .php

    #支持页面压缩\r
    SetOutputFilter DEFLATE
    DeflateFilterNote ratio
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary

    #包含虚拟主机设置
    Include conf/virtual_host.conf

3.2 apache2/conf/virtual_host.conf
$touch /www/server/apache2/conf/virtual_host.conf
$vi /www/server/apache2/conf/virtual_host.conf
    NameVirtualHost 123.456.78.9:80
    <VirtualHost 123.456.78.9:80>
        DocumentRoot /www/host/www.domain.com/htdocs
        ServerName www.domain.com
        ServerAlias domain.com
        ErrorLog /www/host/www.domain.com/logs/apache_error.log
        CustomLog /www/host/www.domain.com/logs/apache_access.log common
    </VirtualHost>
    #反向代理的虚拟主机\r
    <VirtualHost 123.456.78.9:80>
        ServerName www2.domain.com
        RewriteEngine on
        ProxyRequests off
        UseCanonicalName off
        RewriteRule ^/(.*)$ http://192.168.0.1/$1 [P,L]
    </VirtualHost>

3.3 apache2/conf/ssl.conf
$vi /www/server/apache2/conf/ssl.conf
    NameVirtualHost 123.456.78.9:443
    <VirtualHost 123.456.78.9:443>
    DocumentRoot "/www/host/www.domain.com/htdocs"
    ServerName www.domain.com
    ServerAdmin webmaster@domain.com
    ErrorLog /www/host/www.domain.com/logs/ssl_error.log
    TransferLog /www/host/www.domain.com/logs/ssl_access.log
    SSLCertificateFile /www/host/www.domain.com/server.crt
    SSLCertificateKeyFile /www/host/www.domain.com/server.key
    SSLCertificateChainFile /www/ca.crt
    CustomLog /www/host/www.domain.com/logs/ssl_request.log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    </VirtualHost>                                  

3.4 apache2/conf/workers2.properties
$touch /www/server/apache2/conf/workers2.properties
$vi /www/server/apache2/conf/workers2.properties
    [shm]
    file=${serverRoot}/logs/shm.file
    size=1048576

    # Example socket channel, override port and host.
    [channel.socket:example]
    port=8009
    host=127.0.0.1

    # define the worker
    [ajp13:example]
    channel=channel.socket:example
    #[status:status]

    # Uri mapping
    #[uri:/jkstatus/*]
    #worker=status:status

    # Uri mapping
    [uri:/*.jsp]
    worker=ajp13:example

    #[uri:/examples/*]
    #worker=ajp13:example

3.5 tomcat/conf/jk2.properties
$touch /www/server/tomcat/conf/jk2.properties
$vi /www/server/tomcat/conf/jk2.properties
    # The default port is 8009 but you can use another one
    # channelSocket.port=8019

3.6 tomcat/conf/web.xml
$vi /www/server/tomcat/conf/web.xml
        <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.DefaultServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
    #此处重点,禁用目录列表\r
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        </servlet>

3.7 tomcat/conf/tomcat-users.xml
$vi /www/server/tomcat/conf/tomcat-users.xml
    #增加tomcat的管理员
      <user name="xxx" password="xxx" roles="manager" />

3.8 tomcat/conf/server.xml
$vi /www/server/tomcat/conf/server.xml
    #设置虚拟主机\r
    <Host name="www.domain.com"
        debug="0"
        appBase="/www/host/www.domain.com/webapps"
        unpackWARs="true">
        <Alias>crcchem.com</Alias>
        <Logger className="org.apache.catalina.logger.FileLogger"
            directory="/www/host/www.domain.com/logs"
            prefix="catalina."
            suffix=".log"
            timestamp="true"/>
        <Context path=""
            docBase="/www/host/www.domain.com/htdocs"
            debug="0"/>
    </Host>

4. 测试
4.1 apache2
$touch /www/host/www.domain.com/htdocs/test.html
$vi /www/host/www.domain.com/htdocs/test.html
    <h1>hello</h1>
$/www/server/apache2/bin/apachectl configtest
$/www/server/apache2/bin/apachectl startssl
$lynx http://www.domain.com/test.html

4.2 SSL
$lynx https://www.domain.com/test.html

4.3 反向代理\r
$lynx http://www2.domain.com/

4.4 PHP
$touch /www/host/www.domain.com/htdocs/test.php
$vi /www/host/www.domain.com/htdocs/test.php
    <?phpinfo();?>
$lynx http://www.domain.com/test.php

4.5 JSP
touch /www/host/www.domain.com/htdocs/test.jsp
$vi /www/host/www.domain.com/htdocs/test.jsp
    <%=new java.util.Date();%>
$lynx http://www.domain.com/test.jsp
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
赞助商连接