当前位置: 首页 > news >正文

linux系统源代码安装apache、编译隐藏版本号

linux系统源代码安装apache、编译隐藏版本等信息

文章使用rocky10系统,apache-2.4.63版本

系统是最小化安装的,需要安装组包。

dnf -y groupinstall "Development tools" "base"

在这里插入图片描述

1、安装依赖包
dnf -y install wget openssl-devel pcre-devel expat-devel libtool autoconf openssl-devel db4-devel expat-devel sqlite-devel mysql-devel libdb4-devel  pcre2-devel
2、下载apache(httpd-2.4.63)、apr-1.7.6、apr-utils-1.6.3
mkdir -p /usr/local/src/apache/ && cd /usr/local/src/apache
curl -LO https://downloads.apache.org/apr/apr-1.7.6.tar.gz
tar zxf apr-1.7.6.tar.gz
curl -LO https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
tar zxf apr-util-1.6.3.tar.gz
curl -LO https://downloads.apache.org/httpd/httpd-2.4.63.tar.gz
3、安装apr-1.7.6
cd /usr/local/src/apache/apr-1.7.6
./configure --prefix=/usr/local/apache-apr \--enable-threads \--enable-posix-shm \--enable-sysv-shm \--enable-allocator-uses-mmap \--enable-allocator-guard-pages \--enable-pool-concurrency-check \--enable-other-child \--enable-nonportable-atomics \--enable-shared \--enable-static \--enable-debug \--enable-profile \--with-valgrind && \make && make install
4、安装apr-utils-1.6.3
cd /usr/local/src/apache/apr-utils-1.6.3.tar.gz
./configure --prefix=/usr/local/apache-apr-util \--with-apr=/usr/local/apache-apr \--without-crypto \--with-expat=/usr && \make && make install
5、隐藏apache版本和信息
sed -i.bak '
40s|Apache Software Foundation|https://blog.csdn.net/2301_77161927|
41s|Apache HTTP Server|https://blog.csdn.net/2301_77161927|
42s|Apache|https://blog.csdn.net/2301_77161927|
74s|AP_SERVER_MINORREVISION "." AP_SERVER_PATCHLEVEL|"https://blog.csdn.net/2301_77161927"|
75s|AP_SERVER_BASEPRODUCT "/" AP_SERVER_BASEREVISION|"https://blog.csdn.net/2301_77161927"|
' /usr/local/src/apache/httpd-2.4.63/include/ap_release.h
sed -i.bak '
/^#define AP_SERVER_MAJORVERSION_NUMBER/ c\
#define AP_SERVER_MAJORVERSION_NUMBER 2301
/^#define AP_SERVER_MINORVERSION_NUMBER/ c\
#define AP_SERVER_MINORVERSION_NUMBER 77161927
/^#define AP_SERVER_PATCHLEVEL_NUMBER/ c\
#define AP_SERVER_PATCHLEVEL_NUMBER 0
' /usr/local/src/apache/httpd-2.4.63/include/ap_release.h
sed -i.bak '
/SrvTk_MAJOR,/ s|/\*.*\*/|/* https://blog.csdn.net/2301_77161927 */|
/SrvTk_MINOR,/ s|/\*.*\*/|/* https://blog.csdn.net/2301_77161927 */|
/SrvTk_MINIMAL,/ s|/\*.*\*/|/* https://blog.csdn.net/2301_77161927 */|
/SrvTk_OS,/ s|/\*.*\*/|/* https://blog.csdn.net/2301_77161927 */|
/SrvTk_FULL,/ s|/\*.*\*/|/* https://blog.csdn.net/2301_77161927 */|
/SrvTk_PRODUCT_ONLY/ s|/\*.*\*/|/* https://blog.csdn.net/2301_77161927 */|
' /usr/local/src/apache/httpd-2.4.63/server/core.c

https://blog.csdn.net/2301_77161927是替换的内容。

如果使用的是其他版本,版本信息可能会有不同,如果没有修改成功,可以查找一下在那个文件。

如果已经执行了上面的修改命令没有查询到、应该就是修改成功了。

egrep -n '#define AP_SERVER_BASEVENDOR "Apache Software Foundation"' server/core.c include/ap_release.h
6、安装httpd-2.4.63
/usr/local/src/apache/httpd-2.4.63
./configure --prefix=/usr/local/apache \--enable-so \--enable-ssl \--enable-rewrite \--enable-proxy \--enable-proxy-http \--enable-proxy-connect \--enable-proxy-ajp \--enable-cache \--enable-mods-shared=most \--enable-mpms-shared=all \--with-apr=/usr/local/apache-apr \--with-apr-util=/usr/local/apache-apr-util \--with-pcre \--with-ssl \--with-z \--enable-deflate \--enable-expires \--enable-headers \--enable-unique-id \--enable-remoteip && \make && make install
7、添加apache绝对路径
echo -e 'export APACHE_HOME=/usr/local/apache  
export APACHE_APR_HOME=/usr/local/apache-apr  
export APACHE_APU_HOME=/usr/local/apache-apr-util  
export PATH=$APACHE_HOME/bin:$APCHE_APR_HOME/bin:$APACHE_APU_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
8、添加systemctl
cat << 'EOF' | sudo tee /etc/systemd/system/apache.service
[Unit]
Description=Apache HTTP Server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/apache/bin/apachectl start
ExecStop=/usr/local/apache/bin/apachectl stop
ExecReload=/usr/local/apache/bin/apachectl graceful
PIDFile=/usr/local/apache/logs/httpd.pid
PrivateTmp=true
Restart=on-failure[Install]
WantedBy=multi-user.target
EOF

httpd.conf文件默认没有pid文件,因为apache会使用编译时的默认路径,如果不确定可以使用apachectl -V查看。

apachectl -V

在这里插入图片描述

也可以在httpd.conf配置文件中指定。

echo "PidFile /usr/localhttpd.pid" >> /usr/local/apache/conf/httpd.conf
http://www.lryc.cn/news/580407.html

相关文章:

  • ubuntu手动编译VTK9.3 Generating qmltypes file 失败
  • Cursor/VScode ,点击运行按钮,就打开新的终端,如何设置为在当前终端运行文件而不是重新打开终端----一招搞定篇
  • 高频交易服务器篇
  • Redis服务器
  • 【Elasticsearch】检索高亮
  • 【网络与爬虫 13】智能伪装:Scrapy-Fake-UserAgent反检测技术实战指南
  • Matplotlib 安装部署与版本兼容问题解决方案(pyCharm)
  • Vue.js TDD开发深度指南:工具链配置与精细化测试策略
  • Linux(centos)安装 MySQL 8
  • ADAS功能介绍
  • alpine安装及配置nodejs开发测试环境
  • 流水线(Jenkins)打包拉取依赖的时候提示无法拉取,需要登录私仓的解决办法
  • Swift 数学计算:用 Accelerate 框架让性能“加速吃鸡”
  • Vue前端项目接收webSocket信息
  • ASP.NET 安装使用教程
  • CppCon 2018 学习:THE BITS BETWEEN THE BITS HOW WE GET TO HOW WE GET TO main()
  • 3dmax标准材质转物理材质插件,支持VR材质和CR材质转换成功物理材质,支持多维子材质
  • Python asyncio库与GIL之间的关系,是否能够解决核心问题?
  • 【鸿蒙】鸿蒙操作系统发展综述
  • Redis 哨兵模式部署--docker版本
  • 个人独创-CV领域快速测试缝合模型实战框架讲解-基础篇-Pytorch必学知识
  • STM32中实现shell控制台(命令解析实现)
  • PyTorch中 item()、tolist()使用详解和实战示例
  • 如何修改Siteground max_execution_time值?
  • 打印界智能助手Print Distributor:日志记录 纸张状态实时看,异常情况秒通知
  • LucidShape 2024.09 最新
  • 顺序栈和链式栈
  • spring加载外部properties文件属性时,读取到userName变量值和properties文件的值不一致
  • 动手实践OpenHands系列学习笔记8:后端服务开发
  • 大数据在UI前端的应用探索:基于用户行为分析的产品优化策略