大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
前言
以下是在自己的腾讯云vps(ubuntu16.04)操作,通过oneinstack安装lamp的,本文通过apxs安装mod_proxy.so
模块。
正文
apxs是apache管理模块的工具,它做的是将mod.c生成mod.so,并使其能被apache加载,使用apxs的前提:mod_so
已被加载
- 查看相关信息
## 注:以下httpd路径以自己服务器为准
## 查看是否加载了mod_so模块
/usr/local/apache/bin/httpd -l
## 列出编译过的模块,可看出是static静态,还是shared动态
/usr/local/apache/bin/httpd -M
## 查看apache版本
/usr/local/apache/bin/httpd -v
## 笔者的是2.2.34
Server version: Apache/2.2.34 (Unix)
- 安装apxs
## 搜索
locate apxs
## 如果没有就安装吧
sudo apt-get install apache2-dev
## 更新查询数据库
sudo updatedb
## 查询是否有apxs
locate apxs
## 有内容显示一般就是成功了
apache安装模块的流程是这样的(以mod_proxy.so为例子):
- 找到
mod_proxy.c
文件,即源文件,这个上官网下载源码包,注意对应自己的版本。 - 将
mod_proxy.c
编译,弄成mod_proxy.so
放到modules/
下。 - 在apache配置文件
httpd.conf
加上LoadModule 语句+ 找.c文件
使用apxs,第二三步一个命令就可完成
- 使用apxs
参数说明
-i : 把生成的.so文件移动到modules目录下(大概这个意思)
-c : 编译,.c->.so
-a : 在httpd.conf加上LoadModule该模块语句语句
具体使用
## 找到自己mod_proxy.c文件位置,执行apxs
## 注:mod_proxy.so模块需要2个文件编译
/usr/local/apache/bin/apxs -i -c -a mod_proxy.c proxy_util.c
## 查看modules下是否有mod_proxy.so模块
ll /usr/local/apache/modules/mod_proxy.so
## 显示
-rwxr-xr-x 1 root root 151K 1月 7 19:39 /usr/local/apache/modules/mod_proxy.so
## 查看httpd.conf是否LoadModule
cat /usr/local/apache/conf/httpd.conf | grep "proxy"
## 显示
LoadModule proxy_module modules/mod_proxy.so
## 重启httpd
service httpd stop
service httpd start
## 查看加载的模块
/usr/local/apache/bin/httpd -M
至此,使用apxs加载mod_proxy.so
模块完成
使用apxs加载自己的apache模块
在apax的介绍里看到的,顺手记录之,如果自己写了个小模块,也可以通过apxs加载,但我没测试过,具体看官网apxs
参数说明:
-g : generate,生成.c等文件
-n : 命名
$ /usr/local/apache/bin/apxs -g -n foo
Creating [DIR] foo
Creating [FILE] foo/Makefile
Creating [FILE] foo/modules.mk
Creating [FILE] foo/mod_foo.c
Creating [FILE] foo/.deps
## 然后也是将.c -> .so
总结
.c
源文件,.o
目标文件,.a
静态库,.so
动态库,用过gcc编译的对使用apxs使用应该很容易就能掌握。
相关链接
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193596.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...