998yty 发表于 2016-10-31 10:16:08

Linux下Apache部署

1.建用户   
    # groupadd apache    # useradd apache -g apache    # passwd apache    # su - apache
2.下载openssl-1.0.2g.tar.gz到用户目录~(/home/apache/)
    #tar -zxvf openssl-1.0.2g.tar.gz
    #cd openssl-1.0.2g
    #mkdir /opt/openssl
    #./config --prefix=/opt/openssl
    #make && make install
3.下载httpd-2.2.22.tar.gz到用户目录~(/home/apache/)

    #tar -zxvf httpd-2.2.22.tar.gz
    #cd ../httpd-2.2.22
    #export LDFLAGS=-ldl //执行下面命令前最好加上这句话,否则可能报错:            configure: error: ... Error, SSL/TLS libraries were missing or unusable
    #./configure --prefix=/opt/httpd --enable-so--enable-info--enable-headers --enable-mods-shared=all --enable-ssl=static --with-ssl=/opt/openssl

    指定模块:./configure --prefix=/opt/httpd --enable-so--enable-info--enable-headers --enable-mods-shared="proxy proxy_http proxy_connect" --enable-ssl=static --with-ssl=/opt/openssl --enable-rewrite --enable-speling --enable-forward
    #make   //编译apache
    #make install    //安装apache
    或者编译并且安装apache
    #make && make install
注意,非root用户1024以下端口不可用,需要修改默认80端口为其他可用端口
vi /opt/httpd/conf/httpd.conf

4.查看代理模块及安装:
    ./apachectl -M|grep proxy
    如果没有任何模块,安装步骤:(注意:proxy_util.c是基础模块,必须先安装。如果出错,每个命令后都加上)
    cd /home/apache/httpd-2.2.22/modules/proxy
    /opt/httpd/bin/apxs -c -i -a mod_proxy.c proxy_util.c
    /opt/httpd/bin/apxs -c -i -a mod_proxy_http.c
    /opt/httpd/bin/apxs -c -i -a mod_proxy_ftp.c
    /opt/httpd/bin/apxs -c -i -a mod_proxy_connect.c
    /opt/httpd/bin/apxs -c -i -a mod_proxy_balancer.c
    /opt/httpd/bin/apxs -c -i -a mod_proxy_scgi.c
    /opt/httpd/bin/apxs -c -i -a mod_proxy_ajp.c ajp*.c

httpd.conf代理配置,举例:
#开启代理服务,客户端可指定当前IP及端口作为代理配置
ProxyRequests On
#代理指向如果是https协议,必须加上该属性,否则转发错误
SSLProxyEngine On

ProxyPass/https/https://url/
ProxyPassReverse/https/https://url/

ProxyPass/http/http://url/
ProxyPassReverse/http/http://url/

Listen 8081
<IfModule mod_proxy.c>
<VirtualHost *:8081>
ProxyRequests On
#配置允许访问的目的地址以及可使用代理的来源地址
<Proxy *>
Order deny,allow
Allow from all
#Allow from IP1 IP2...
</Proxy>
</VirtualHost>
</IfModule>

SSL加虚拟机配置
Listen 9443
NameVirtualHost *:9443
<VirtualHost *:9443>
#ServerName domain:9443
DocumentRoot htdocs
DirectoryIndex index.htm
#SSLEngine on
#SSLVerifyClient require
SSLVerifyDepth10
#SSLCertificateFile conf/server.crt
#SSLCertificateKeyFile conf/server.key
#SSLCACertificateFile conf/CFCA_TEST_CS_CA.cer
#SSLCertificateChainFile conf/CFCA_TEST_OCA1.cer
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLOptions +StdEnvVars

#ProxyRequests On
#SSLProxyEngine On
#ProxyPass/http/http://url/
#ProxyPassReverse/http/http://url/
</VirtualHost>


如果具有root用户权限,可把apache加入到自动启动服务:
#chkconfig --list httpd   //查看httpd服务是否已存在
#chkconfig httpd off    //关闭系统自带了httpd的服务,如果存在httpd服务   
#service httpd status    //查看自带httpd服务状态
#/opt/httpd/bin/apachectl -k start    //linux启动apache命令            
#netstat -an|grep :80    //查看linux80端口是否开启
#ps -aux|grep httpd   //linux下查看apache进程
#cd ../..
#cp /opt/httpd/bin/apachectl /etc/rc.d/init.d/apache //拷贝apache启动脚本
#vi /etc/rc.d/init.d/apache    // 这里是编辑apache启动脚本
在开头的#!/bin/sh下面加上(未知作用)
#chkconfig: 23458515
#chkconfig --add apache    //添加apache服务
#chkconfig --list apache    //列出apache服务
#service apache stop    //停止apache服务
#netstat -an|grep :80   //查看linux的80端口是否关闭
#ps -aux|grep httpd   //查看是否存在httpd服务,若果之前自带httpd服务启动的话会导致新添加的apache服务启动失败
#service apache start    //启动apache服务
打开服务器ip地址,看是否出现了It works!,如果出现的话,apache已经安装成功了


root用户下,Apache的启动、关闭、重启
  启动命令:service httpd start
  关闭命令:service httpd stop
  重启命令:service httpd restart
  状态查询:service httpd status

非root用户下,Apache的启动、关闭、重启
  启动命令:/opt/httpd/bin/apachectl start
  关闭命令:/opt/httpd/bin/apachectl stop
  重启命令:/opt/httpd/bin/apachectl restart
  状态查询:/opt/httpd/bin/apachectl status


页: [1]
查看完整版本: Linux下Apache部署