Yocto apache build:默认情况下如何启用mod_cgid?

Yocto apache build:默认情况下如何启用mod_cgid?,apache,yocto,Apache,Yocto,我们正在使用Yocto进行嵌入式Linux构建 我们正在使用来自的配方构建apache2 meta-openembedded/meta-webserver/recipes-httpd/apache2 加载图像时,CGI执行被禁用。我们可以看到,在apache2配置文件(/etc/apache2/httpd.conf)中,加载mod_cgid.so的行被注释掉了: #LoadModule cgid_module lib/apache2/modules/mod_cgid.so 作为构建的一部分,

我们正在使用Yocto进行嵌入式Linux构建

我们正在使用来自的配方构建apache2

meta-openembedded/meta-webserver/recipes-httpd/apache2
加载图像时,CGI执行被禁用。我们可以看到,在apache2配置文件(/etc/apache2/httpd.conf)中,加载mod_cgid.so的行被注释掉了:

#LoadModule cgid_module lib/apache2/modules/mod_cgid.so
作为构建的一部分,我们需要取消注释上面的行,而不是手动取消注释,这是我们现在必须做的

apache2的README.cmake说明中说,您可以为每个模块设置一个构建标志(“I”用于构建并禁用,“a”用于构建并启用)。但在CMakelists.txt中,我看到mod_cgi.c的条目(标志设置为I),但mod_cgid.c没有条目:

SET(MODULE_LIST 
... 
"modules/generators/mod_autoindex+A+directory listing" 
"modules/generators/mod_cgi+I+CGI scripts" 
"modules/generators/mod_info+I+server information" 
... 
)
我尝试为mod_cgid.c添加一个条目。我还尝试更改mod_cgi.c的条目。这两次修改都没有导致对httpd.conf进行所需的更改

如何进行此更改以将其添加到修补程序文件?我需要一个补丁文件,这样我就可以把它添加到Yocto配方中

有什么想法吗


谢谢,Aram要修改映像上安装的
httpd.conf
文件,您需要创建一个*.bbappend文件

两种可能性:

  • 在bbappend中使用
    sed
    ,修改httpd.conf文件
  • 将原来的httpd.conf替换为您提供的(带有未注释的行)
对于第一种可能性,你可以看一看

对于第二种可能性,这是一个如何做的示例:

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += " file://httpd.conf "

do_install_append() {
    install -d ${D}${sysconfdir}/apache2
    install -m 0644 ${WORKDIR}/httpd.conf ${D}${sysconfdir}/apache2/httpd.conf
}
*.bbappend文件必须命名为apache2_u2;%.bbappend或apache2_2;.bbappend

元中的文件树将是:

meta-my-meta
├──recipes-httpd
│  └──apache2
│     ├──apache2_%.bbappend
│     └──apache2
│        └──httpd.conf
│ 
└──recipes-...

你可以看看和。谢谢。非常有用。虽然我相信do_install_append()块的第二行应该是:install-m0644${WORKDIR}/httpd.conf${D}${sysconfdir}/apache2/httpd.conf,也就是说,目标中缺少{D},对吗?@Aram你完全正确!我会编辑我的帖子来修正这个错误!