gpt4 book ai didi

perl - 如何配置docker文件像perl一样运行cgi-script

转载 作者:行者123 更新时间:2023-12-04 09:43:12 26 4
gpt4 key购买 nike

我有这个文件:

  • index.php
  • Dockerfile
  • /conf/myawesomesite.conf
  • cgi-bin/helloworld.pl

  • 在/conf/myawesomesite.conf 中:
    <VirtualHost *:80>

    ServerAdmin webmaster@myawesomesite.com
    ServerName myawesomesite.com
    ServerAlias www.myawesomesite.com
    DocumentRoot /var/www/html/myawesomesite.com/httpdocs
    ErrorLog /var/www/myawesomesite.com/logs/error.log
    CustomLog /var/www/myawesomesite.com/logs/access.log combined
    Options ExecCGI
    AddHandler cgi-script .pl

    </VirtualHost>

    在 Dockerfile 中:
    FROM ubuntu:16.04

    ## Install Base Packages
    RUN apt-get update && apt-get -y install \
    apache2 \
    make \
    curl \
    git \
    gcc

    RUN a2enmod rewrite

    ## Install Perl
    RUN apt-get update && apt-get -y install \
    libapache2-mod-perl2 \
    perl

    RUN a2enmod perl

    ## Install PHP
    RUN apt-get update && apt-get -y install \
    php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-json \
    php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-readline \
    libapache2-mod-php7.0

    RUN a2enmod rewrite


    EXPOSE 80

    RUN mkdir -p /var/www/html/myawesomesite.com/httpdocs

    RUN mkdir -p /var/www/myawesomesite.com/logs/

    COPY ./conf/myawesomesite.conf /etc/apache2/sites-available/
    RUN a2ensite myawesomesite
    RUN a2dissite 000-default.conf

    CMD /usr/sbin/apache2ctl -D FOREGROUND

    构建并运行容器,index.php 正在正确执行,但是当这个页面 myawesomesite.com/cgi-bin/helloworld.pl 时,脚本只是被打印出来并没有被执行。结果如下:
    #!/usr/bin/perl

    print "Content-Type:text/html\n\n";
    print "Hello World!";

    我期待结果是 Hello World!,因为我在 myawesomesite.conf 文件中添加了这些指令。但为什么?
    Options ExecCGI
    AddHandler cgi-script .pl

    最佳答案

    我不得不添加 RUN a2enmod cgid到 Dockerfile 和以下块到 conf (假设 perl 脚本被复制到 /var/www/myawesomesite.com/www/cgi-bin/ ):

    <Directory "/var/www/myawesomesite.com/www/cgi-bin/">
    Options +ExecCGI
    AddHandler cgi-script .pl
    </Directory>

    关于perl - 如何配置docker文件像perl一样运行cgi-script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42363767/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com