当前位置:网站首页>使用 apxs 构建和安装 Apache 扩展共享对象模块
使用 apxs 构建和安装 Apache 扩展共享对象模块
2022-08-09 23:58:00 【allway2】
AP ache e X ten S ion 工具或者是一个简洁的apxs小程序(perl 脚本),它允许我们为 Apache HTTP 服务器构建和安装扩展模块。这些类似于我们多次看到的模块mod_rewrite
,例如、mod_proxy
、mod_authz_core
、等,它们作为(共享对象)文件mod_remoteip
驻留在某个文件夹中。.so
是的,我们正在讨论如何使用此工具从 C 源代码构建共享/动态模块。
要使用此扩展机制,您的平台必须支持 DSO 功能(这对于大多数基于 unix 或类 unix 的操作系统都是如此)并且httpd
必须使用 mod_so(这也是相当常见的)构建。如果不是这样,apxs
无论如何都会抱怨跑步。
安装
让我们看看如何apxs
跨不同的操作系统安装该工具,因为它并不总是随标准包管理器存储库中的默认包apache
或包一起提供。httpd
FreeBSD
对于 FreeBSD,该apxs
工具apache
自带软件包,所以这很酷。
# pkg install apache24
# rehash
# which apxs
/usr/local/sbin/apxs
CentOS / Fedora
对于 CentOS 或 Fedora,我们必须安装一个名为httpd-devel
.
# dnf install httpd-devel # or yum install httpd-devel
# which apxs
/usr/bin/apxs
Ubuntu/Debian
对于 Ubuntu 或 Debian,要安装的软件包是apache2-dev
.
# apt install apache2-dev
# which apxs
/usr/bin/apxs
Alpine (Docker)
如果您正在运行基于 Alpine 的容器,则apache2-dev
需要 package。
# apk add apache2-dev
用法
安装apxs
后,使用它非常简单。例如,最近我必须构建和安装mod_evasive模块(用于 DDoS 保护),我所做的只是复制单个 C 文件并运行以下命令:
# apxs -cia mod_evasive.c
...
Libraries have been installed in:
/usr/lib/apache2/modules
...
chmod 644 /usr/lib/apache2/modules/mod_evasive.so
[preparing module `evasive20' in /etc/apache2/mods-available/evasive20.load]
Enabling module evasive20.
To activate the new configuration, you need to run:
service apache2 restart
它负责:
-c
– 构建.so
文件。-i
– 将它放在正确的位置(所有其他模块所在的位置),在我的情况下(Ubuntu)是/usr/lib/apache2/modules/
.-a
– 创建一个.load
带有指令的文件LoadModule
并将其放在mods-available
(特定于 Ubuntu/Debian)下。它甚至可以启用该模块。在 FreeBSD、Fedora 等其他发行版中,apxs
会自动将LoadModule
指令添加到httpd.conf
.
为了使更改生效,最后一步是重新启动 apache 服务器。
所以现在我们知道给定一个源文件(in C
),如何apxs
使用它来生成一个可以轻松链接到 httpd 的共享对象。将来如果您必须从头开始构建第三方模块,因为操作系统包管理器不提供对象,那么您知道该怎么做!
边栏推荐
- Kubernetes服务接入Istio
- Win7怎么把控制面板添加到右键菜单
- ETCD快速入门-02 ETCD安装
- Penetration Testing and Offensive and Defense Confrontation - Vulnerability Scanning & Logic Vulnerability (Part1)
- 基于FPGA的任意字节数的串口接收(含源码工程)
- R语言使用coxph函数构建生存分析回归模型,使用forestmodel包的forest_model函数可视化生存回归模型对应的森林图
- C language pointer practice questions
- 【「收藏」Oracle 数据库安装】
- const修饰指针的三种情况
- 渗透测试与攻防对抗——漏洞扫描&逻辑漏洞(Part1)
猜你喜欢
天猫全网商品详情封装接口
PEG 衍生物Biotin-PEG1-OH(cas:95611-10-2,2-生物素氨基乙醇)优势说明
聚焦热点 | ISC 2022软件供应链安全治理与运营论坛圆满落幕
Leetcode83. 删除排序链表中的重复元素
flask——请求、响应、请求扩展、session、闪现、蓝图、g对象、flask-session
使用C语言实现静态链表
CAS:851113-28-5 (Biotin-ahx-ahx-tyramine)
为什么不建议你在 Docker 中跑 Mysql ?
MATLB|And her ups and downs and finally reached the peak of life [Romantic Journey]
Involved in PEG-Biotin (CAS: 1778736-18-7) Biotin-PEG4-OH is widely used in molecular target detection
随机推荐
-Pickling peanuts-
Leetcode80. 删除有序数组中的重复项 II
头脑风暴:单词拆分
CVPR22 Oral|通过多尺度token聚合分流自注意力,代码已开源
【CAS:41994-02-9 |Biotinyl tyramide】Biotinyl tyramide price
游泳馆系统次卡的设置有哪些细节?
CAS:851113-28-5 (生物素-ahx-ahx-酪胺)
由生物素参与的D-Biotinol,CAS号:53906-36-8具体特性说明
ETCD快速入门-02 ETCD安装
2022金九银十工作潮,怎么样才能成功跳槽面试拿到高薪呢?
20220808-一些想法
宝塔实测-搭建LightPicture开源图床系统
Fury:一个基于JIT动态编译的高性能多语言原生序列化框架
Enhanced Deep Residual Networks for Single Image Super-Resolution
Minimum number of steps to get out of the maze 2
365 days challenge LeetCode1000 questions - Day 052 Step by step summation to get the minimum value of positive numbers Greedy
足不出户也能看星空
abicc 知:API compatibility report 介绍
-采花生-
CST Studio Suite 2021 software installation package and installation tutorial