Docker httpd apache 和获取 cgi-bin 来执行 perl 脚本
Docker httpd apache and getting cgi-bin to execute perl script
Docker 的新手并试图让 cgi-bin 在 httpd 映像中工作。我的 Docker 文件如下。 SED 行将 perl 位置添加到图像附带的示例脚本的第一行:
FROM httpd:2.4.46
RUN sed -i '1c#!/usr/bin/perl' /usr/local/apache2/cgi-bin/printenv
然后我构建并 运行 使用:
docker build -t my-apache2 .
docker run -dit --name my-running-app -p 8080:80 my-apache2
然后我导航到 localhost:8080/cgi-bin/printenv
但我没有执行脚本,而是将代码显示为文本。看起来 httpd 图像默认启用了 ScriptAlias。有什么想法吗?
您还需要启用mod_cgid
FROM httpd:2.4.46
RUN sed -i '1c#!/usr/bin/perl' /usr/local/apache2/cgi-bin/printenv
RUN chmod +x /usr/local/apache2/cgi-bin/printenv
CMD httpd-foreground -c "LoadModule cgid_module modules/mod_cgid.so"
Docker 的新手并试图让 cgi-bin 在 httpd 映像中工作。我的 Docker 文件如下。 SED 行将 perl 位置添加到图像附带的示例脚本的第一行:
FROM httpd:2.4.46
RUN sed -i '1c#!/usr/bin/perl' /usr/local/apache2/cgi-bin/printenv
然后我构建并 运行 使用:
docker build -t my-apache2 .
docker run -dit --name my-running-app -p 8080:80 my-apache2
然后我导航到 localhost:8080/cgi-bin/printenv
但我没有执行脚本,而是将代码显示为文本。看起来 httpd 图像默认启用了 ScriptAlias。有什么想法吗?
您还需要启用mod_cgid
FROM httpd:2.4.46
RUN sed -i '1c#!/usr/bin/perl' /usr/local/apache2/cgi-bin/printenv
RUN chmod +x /usr/local/apache2/cgi-bin/printenv
CMD httpd-foreground -c "LoadModule cgid_module modules/mod_cgid.so"