a6266318 发表于 2018-11-21 07:32:05

Apache的apxs详解

  Apache apxs添加proxy模块
  详见(http://www.iyunv.com/shouce/ApacheManual/programs/apxs.html)
  apxs
  apxs是一个为ApacheHTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。
  因此,要使用这个扩展机制,你的平台必须支持DSO(动态共享对象)特性,而且Apachehttpd必须内建了mod_so模块。前提是你支持动态模块加载DSO,即编译时有--enable-so选项,可通过如下命令查看当前是否含有mod_so.c模块
  # /usr/local/apache2/bin/httpd -l
  Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c
  如果编译的时候没有添加proxy模块,则可以使用apxs命令去重新添加
  需要的模块mod_proxy, mod_proxy_http, mod_proxy_balancer(Apache负载均衡模块)
  先进入apache的源码目录,源码目录中有个modules的目录,这个目录里存放了apache模块的代码,关于proxy的源码在modules/proxy
  # cd /usr/local/src/httpd-2.2.22/modules/proxy
  # /usr/local/apache2/bin/apxs -i -c -a mod_proxy.c proxy_util.c
  … …
  ----------------------------------------------------------------------
  Libraries have been installedin:
  /usr/local/apache2/modules
  … …
  ----------------------------------------------------------------------
  chmod 755/usr/local/apache2/modules/mod_proxy.so
  
  # /usr/local/apache2/bin/apxs -i -c -a mod_proxy_http.c
  … …
  ----------------------------------------------------------------------
  Libraries have been installedin:
  /usr/local/apache2/modules
  … …
  ----------------------------------------------------------------------
  chmod 755/usr/local/apache2/modules/mod_proxy_http.so
  
  # /usr/local/apache2/bin/apxs -i -c -a mod_proxy_balancer.c
  … …
  ----------------------------------------------------------------------
  Libraries have been installedin:
  /usr/local/apache2/modules
  … …
  ----------------------------------------------------------------------
  chmod 755/usr/local/apache2/modules/mod_proxy_balancer.so
  
  -cia选项表示编译(compile)、安装(install)以及启动(active)--> a选项会自动添加如下模块在配置文件httpd.conf中
  LoadModuleproxy_module       modules/mod_proxy.so
  LoadModuleproxy_http_module modules/mod_proxy_http.so
  LoadModuleproxy_balancer_module modules/mod_proxy_balancer.so
  安装表示将.so文件放至Apache可以找到的位置,而启用则表示将模块加入httpd.conf文件
  概括性总结:apxs即Apache extension stool,用于把Apache编译安装时候没有安装的模块制作成so(share object)文件,利用mod_so模块提供的loadmodule功能把这些模块加载进Apache,使Apache支持这些模块的功能,当然在安装的时候就加载这些模块更好。

页: [1]
查看完整版本: Apache的apxs详解