日星网 windows 中文论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 47|回复: 2

[Ubuntu] Apache2 开启Perl cgi的支持

[复制链接]
发表于 2020-7-30 01:35:09 | 显示全部楼层 |阅读模式
系统:Ubuntu20.04

前提:由于最近得一个项目需要使用Perl来解析网站里的一些cgi文件。所以需要开启Apache2对Perl的引用

1.  修改/etc/apache2/sites-available/000-default.conf,删掉cgi的注释#

  1. Include conf-available/serve-cgi-bin.conf
复制代码


2. 修改网站的配置文件 xx.conf 在VirtualHost下添加以下内容

  1. ScriptAlias /cgi-bin/ /var/www/xxx/         #这里是重点
  2. <Directory "/var/www/xxx">
  3. Options Indexes FollowSymLinks Includes ExecCGI  #这里是重点
  4. AllowOverride All
  5. AddType text/html .shtml .html .htm
  6. AddOutputFilter INCLUDES .shtml .html .htm
  7. </Directory>
复制代码


3.  修改/etc/apache2/conf-available/serve-cgi-bin.conf
  1. <IfDefine ENABLE_USR_LIB_CGI_BIN>
  2.                 ScriptAlias /cgi-bin/ /var/www/xxx/          #这里是重点,修改自己的项目目录
  3.                 <Directory "/var/www/cfc_old">
  4.                         AllowOverride None
  5.                         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  6.                         Require all granted        #这里是重点
  7.                 </Directory>
  8.         </IfDefine>
复制代码


4.  链接/etc/apache2/mods-available/cgi.load到 mods-enabled
  1. ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
复制代码


5.  修改/etc/apache2/mods-available/mime.conf,添加
  1. AddHandler cgi-script .cgi .pl .sh .py .php
复制代码


重启Apache服务,即可。


 楼主| 发表于 2020-7-30 01:35:57 | 显示全部楼层
提供一个测试代码

  1. #!/usr/bin/perl

  2. print "Content-Type: text/html\n\n";
  3. print "It works ok!";
复制代码
 楼主| 发表于 2020-7-30 07:02:20 | 显示全部楼层
多数CGI的错误不外乎

1. 使用了windows的换行,文件却在linux下执行,解决方法,就是直接将文件转成LF格式即可。编辑器都有
2. cgi代码太老。 解决方法,去/var/log/apache2/error.log中去查找错误信息。
3. defined(%hash),由于不使用了,直接删掉!!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

手机版|小黑屋|日星网

GMT, 2020-8-13 11:43 AM , Processed in 0.018951 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表