当前位置:网站首页>使用 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/apxsCentOS / Fedora
对于 CentOS 或 Fedora,我们必须安装一个名为httpd-devel.
# dnf install httpd-devel # or yum install httpd-devel
# which apxs
/usr/bin/apxsUbuntu/Debian
对于 Ubuntu 或 Debian,要安装的软件包是apache2-dev.
# apt install apache2-dev
# which apxs
/usr/bin/apxsAlpine (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 的共享对象。将来如果您必须从头开始构建第三方模块,因为操作系统包管理器不提供对象,那么您知道该怎么做!
边栏推荐
- E - Sugoroku 3(期望dp)
- dlopen failed: library “libtaml.so“ not found
- 2022金九银十工作潮,怎么样才能成功跳槽面试拿到高薪呢?
- c语言结构体、函数以及指针练习(简单通讯录)
- R语言使用coxph函数构建生存分析回归模型,使用forestmodel包的forest_model函数可视化生存回归模型对应的森林图
- 《痞子衡嵌入式半月刊》 第 60 期
- 渗透测试与攻防对抗——漏洞扫描&逻辑漏洞(Part1)
- The technical aspects of the byte have been passed, and the salary has been negotiated for 20K*13, but the result is still being brushed. I asked the HR why...
- WPF DataGrid 使用数据模板
- 【obs】obsqsv11 硬编 及与metartc codec对比
猜你喜欢

安全知识培训——消防安全

The older tester has just passed the "hurdle" of being 35 years old, and I want to tell you something from my heart

宝塔实测-搭建LightPicture开源图床系统

Web性能测试模型小结

线程的同步与互斥

openEuler 知:abi 检测

微服务【同步和异步通讯详解】第6章

02|运算符

How to turn off system protection in Win11?How to turn off the system protection restore function?

Mysql database ALTER basic operations
随机推荐
基于ABP的AppUser对象扩展
router路由
3.9 - 正规表达式和正规集 3.10 - 有限自动机
《MySQL入门很轻松》第4章:数据表中存放的数据类型
-Chess game-
【CAS:41994-02-9 |Biotinyl tyramide】Biotinyl tyramide price
Leecode-205. 同构字符串
Docker interview question 2--get the number of database connections and docker-compose
Solving for the number of mines
-象棋比赛-
无源晶振负载电容值CL匹配方法及说明
足不出户也能看星空
Penetration Testing and Offensive and Defense Confrontation - Vulnerability Scanning & Logic Vulnerability (Part1)
3.4 - 编译与解释 3.5 - 编译过程 3.8 - 文法
deepstream学习笔记(三):deepstream-imagedata-multistream解析与接入适配yolov5模型测试
CAS:183896-00-6 (Biotin-PEG3-C3-NH2) PEG衍生物
【obs】obsqsv11 硬编 及与metartc codec对比
Xi'an biotin-tetrapolyethylene glycol-amide-4phenol light yellow semi-solid
R语言使用glm函数构建logistic回归模型,使用forestmodel包的forest_model函数可视化逻辑回归模型对应的森林图
Kubernetes 60个为什么