首页 » 网站建设 »

配置Apache开启CGI功能

2020年10月7日 / 39次阅读
APACHE

好好学习这篇官方的文档:http://httpd.apache.org/docs/2.4/howto/cgi.html

------====--------

先了解一下:关于CGI和FastCGI

当你配置Apache失败的时候,请先查阅error log,生命会轻松许多...

1, 开始Apache Web Server的CGI,首先在httpd.conf中打开cgi模块:

LoadModule cgid_module modules/mod_cgid.so

cgid用配合worker模式的MPM模块,d是daemon的意思,mod_cgid和mod_cgi在使用上完全一样。

When using a multi-threaded MPM under unix, the module mod_cgid should be used in place of this module. At the user level, the two modules are essentially identical.

2, 打开Scriptsock:

Scriptsock cgisock

后来测试确认,这一行不动,保持原来注释掉的状态也是OK的。

3, 设置CGI路径:

需要修改ScriptAlias配置的cgi路径?

如果cgi-bin路径在DocumentRoot内,ScriptAlias这一行配置就是多余的。

修改对应的 Directory 配置:

<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options +ExecCGI -Indexes
   Require all granted
</Directory>

4, AddHandler

AddHandler cgi-script .py

5, 测试:

自己写的.py脚本,前面向stdin输出的两行必须是:

print('Content-type: text/html')
print()

然后再拼接其它部分,否则会出现500 server internal error,查看error log,你会看到 bad head。

====好多坑====

不要将存放cgi的路径命名为cgi-bin,换个命令,就用cgi,URL也要跟着改;(我遇到的是Forbidden)

.py脚本一定要按照第5步先输出两行,否则error log中有bad head;

cgi-bin路径是否一定要在 DocumentRoot里面?

都不知道怎么来描述遇到的问题。。。

本文链接:https://www.maixj.net/wz/apache-cgi-24000

相关文章

留言区

《配置Apache开启CGI功能》有12条留言

  • 麦新杰

    如果把ScriptAlias指向别的地方,就是Forbidden,这个问题还没有解决? []

    • 麦新杰

      尝试了修改apache的user和group,与home对应用户一致,失败。 []

    • 麦新杰

      尝试了设置Options ExecCGI,失败。 []

    • 麦新杰

      又一个好坑:ScriptAlias指令,后面的两个路径,要带上 / !! 这样就成功的配置了ScriptAlias指令指向自定义的cgi目录。 []

  • 麦新杰

    1, 打开cgid模块;
    2, 检查ScriptAlias,默认是打开的;
    3, 修改cgi-bin/test-cgi文件的权限为755,修改它的#!
    4, 成功!
     []

  • 麦新杰

    在Ubuntu桌面系统上测试,一样的 500 Internal Server Error,操作如下:
    1, 安装apache;
    2, 打开mod_cgid.so;
    3, Option ExecCGI;
     []

    • 麦新杰

      500 错误原来是cgi程序造成的,apache的cgi-bin/test-cgi这个脚本除了要修改chmod 755,还要修改#!,WTF... []

  • 麦新杰

    如果出现Internal Server Error,500这样的错误,一般都是cgi程序本身的问题。 []

  • 麦新杰

    一直无法解决的Forbidden,有无可能是Linux本身的而一些权限机制造成的? []

  • 麦新杰

    配置的DocumentRoot下的cgi路径中的script可以正常运行,通过ScriptAlias配置的路径,一直是Forbidden,各种折腾,就是Forbidden,哪里的问题? []

  • 麦新杰

    Content-type: text/txt, 这就会触发浏览器下载文件。 []

  • 麦新杰

    Content-type: text/plain,这样就相当于通过浏览器直接打开txt文件的效果。 []


前一篇:
后一篇:
-->只要几分钟回答问卷,就能轻松赚现金!

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

go to top