• 构建linux下的web服务器


    1、从源码安装 apache
    =================================================================
    apache
    -----------------------------------------------------------------
    ./configure --prefix=/usr/local/httpd --enable-mods-shared=all --enable-so --enable-deflate --enable-rewrite --enable-info

    make

    make install

    # 查看配置参数
    httpd -V

    2、源码安装 php
    =================================================================
    php
    -----------------------------------------------------------------
    dependences:
    libxml2.x86_64
    libxml2-devel.x86_64
    ./configure --prefix=/usr/local/php-5.2.17 --with-apxs2=/usr/local/httpd-2.2.22/bin/apxs --with-mysql=shared,/usr --with-zlib-dir --with-mysqli=/usr/lib64/mysql/mysql_config --libdir=/usr/lib64 --with-libdir=lib64 --with-pdo-mysql --with-curl --with-gd --with-config-file-path=conf/php.ini

    make && make install

    编译php生成扩展

         进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:
         cd curl
         执行phpize生成编译文件,phpize在PHP安装目录的bin目录下
         /usr/local/php5/bin/phpize
         运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
                                     environment variable is set correctly and then rerun this script.“,需要安装autoconf:
         yum install autoconf(RedHat或者CentOS)、apt-get install autoconf(Ubuntu Linux)

    生成配置文件,并编译生成模块:

         /usr/local/php-5.2.17/bin/phpize
         ./configure --enable-shared --with-eaccelerator-info --with-php-config=/usr/local/php-5.2.17/bin/php-config  
         make && make install  

    这样,curl.so就被复制到PHP对应目录(如:/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/)

    3、源码编译 nginx

    =================================================================
    configure with nginx:
    -----------------------------------------------------------------
    ./configure configure arguments: --prefix=/usr/local/nginx-1.2.6 --with-pcre=/app/temp/pcre-8.32 --with-debug --with-http_realip_module --with-poll_module --with-ipv6 --with-http_ssl_module --with-http_geoip_module --with-http_gzip_static_module --with-mail --with-mail_ssl_module --with-http_stub_status_module --add-module=/NGX_CONCAT_SOURCE_FILE_PATH

    make && make install

    # 查看配置参数
    /usr/local/nginx-1.2.8/sbin/nginx -V

    4、安装 apache rpaf 模块

    =================================================================
    安装 mod_rpaf 模块
    -----------------------------------------------------------------
    安装
    tar zxvf mod_rpaf-0.6.tar.gz
    cd mod_rpaf-0.6
    /usr/local/www/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
    接着在 httpd.conf 中添加
    LoadModule rpaf_module modules/mod_rpaf-2.0.so
    RPAFenable On
    RPAFsethostname On
    RPAFproxy_ips 127.0.0.1 # 填写Nginx的的ip
    RPAFheader X-Forwarded-For
    这样就可以获取客户端访问的真实IP了

  • 相关阅读:
    SpringCloud2.0 Eureka Client 服务注册 基础教程(三)
    美国会计准则 Generally Accepted Accounting Principles (GAAP) 与 中国会计准则
    JavaScript的订阅者模式--实现一个简单的事件监听框架
    设计模式在外卖营销业务中的实践
    20行代码做一个简易微信群发工具需要哪些单词
    南怀瑾老师:一阴一阳之谓道,是个什么道?
    怎么追女生?
    正态分布(Normal distribution)也称“常态分布”,又名高斯分布
    广义线性模型
    逻辑回归表达式
  • 原文地址:https://www.cnblogs.com/AloneSword/p/2950669.html
Copyright © 2020-2023  润新知