Ron*_*Ron 5 perl apache2 docker
我有这个文件:
在 /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>
Run Code Online (Sandbox Code Playgroud)
在 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
Run Code Online (Sandbox Code Playgroud)
构建并运行容器,index.php 正在正确执行,但是当这个页面时myawesomesite.com/cgi-bin/helloworld.pl
,脚本只是打印没有执行。结果如下:
#!/usr/bin/perl
print "Content-Type:text/html\n\n";
print "Hello World!";
Run Code Online (Sandbox Code Playgroud)
我期待结果是Hello World!
因为我在 myawesomesite.conf 文件中添加了这些指令。但为什么?
Options ExecCGI
AddHandler cgi-script .pl
尝试添加到您的 Dockerfile:
RUN chmod +x cgi-bin/helloworld.pl
Run Code Online (Sandbox Code Playgroud)
CGI 脚本必须设置可执行位。
归档时间: |
|
查看次数: |
5801 次 |
最近记录: |