好吧,让我们更温和地说:cgi(通用网关接口)是遗产吗?
是?没有?
在什么情况下,从今天开始的项目(一个不需要与遗留系统或库交互的项目)使用cgi?
使用apache和配置时perl cgi scripts,不知道为什么index.cgi/ index.pl显示为纯文本而不是执行它们.当我放入http://localhost浏览器时,它显示在代码下面,而不是执行它.
List item
#!C:/Dwimperl/perl/bin/perl.exe -w
print "Content-type: text/html\n\n";
print <<HTML;
<html>
<head>
<title>A perl web page</title>
</head>
<body>
<h3>A hello world form perl</h3>
</body>
HTML
exit;
Run Code Online (Sandbox Code Playgroud)
这是httpd.conf我大部分时间编辑的文件的一部分(阅读各种在线参考,教程后)
# This should be changed to whatever you set DocumentRoot to.
<Directory "D:\webserver">
Listen 80
ServerName localhost:80
LoadModule cgi_module modules/mod_cgi.so
# First, we configure the "default" to be a very restrictive set of
# features.
<Directory />
Options FollowSymLinks …Run Code Online (Sandbox Code Playgroud) 我使用的是Windows 7和Python 3.4.3.我想在浏览器中运行这个简单的helloworld.py文件:
print('Content-Type: text/html')
print( '<html>')
print( '<head></head>')
print( '<body>')
print( '<h2>Hello World</h2>')
print( '</body></html>')
Run Code Online (Sandbox Code Playgroud)
我所做的是:
1)转到命令行C:\Python(安装python的地方)
2)运行: python -m http.server
3)到Firefox并输入 http://localhost:8000/hello.py
但是,浏览器只打印hello.py文件的内容,而不是"Hello World".
我该如何解决?
出于业余爱好的目的,我在托管服务器上有一个共享空间,它提供了许多PHP和Perl CGI.我已经阅读了几个CGI脚本现在已经过时的地方了,我认为主要是针对性能问题(比如PHP或vanilla Perl CGI更快吗?).
但是,自从我刚开始学习Perl以来,我不想浪费时间在PHP中实现更容易(或仅可能)在Perl中的解决方案.
还有样板问题,我知道CPAN(这是存在的,还不是内容),但不熟悉PHP库(虽然我毫不怀疑它们存在).我不准备从头开始编写登录程序或基本用户管理10 ^ 10次.
在这一点上,我也没有浪费大量时间研究业余爱好项目,所以我想,让我们请专家们了解一下.
我的python cgi如何返回特定的http状态代码,例如403或418?
我尝试了显而易见的(打印"状态:403 Forbidden"),但它不起作用.
我想通过CGI在Apache中使用Ruby.我的配置文件中有以下内容:
DocumentRoot /home/ceriak/ruby
<Directory /home/ceriak/ruby>
Options +ExecCGI
AddHandler cgi-script .rb
</Directory>
Run Code Online (Sandbox Code Playgroud)
test.rb是一个放置在第一行下的testfile /home/ceriak/ruby/,#!/usr/bin/ruby并给出了可执行权限.不过,当我访问时,localhost/test.rb我得到一个下载窗口,可以获取源代码.
有趣的是,当我将相同的脚本置于其下/usr/lib/cgi-bin/并调用localhost/cgi-bin/test.rb它时可以正常工作.
(Ubuntu 9.10上的Apache2.)
任何的想法?
这是我的cron工作线...
*/5 * * * * php /home/user/public_html/index.php --uri=minion --task=emailassets
Run Code Online (Sandbox Code Playgroud)
当我的脚本从这个cron作业运行时,PHP常量PHP_SAPI等于'cgi-fcgi'.为什么PHP_SAPI不等于'cli'?
我只是安装Ubuntu 13.10而我正在尝试安装Apache.但是当我尝试在cgi-bin中运行perl文件时,浏览器只显示纯文本.
我的Apache的default.conf如下:
AddHandler cgi-script .cgi .pl
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +Indexes +ExecCGI +MultiViews +SymLinksIfOwnerMatch
#Order allow,deny
Require all granted
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
这是我的perl cgi文件:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<title> PERL CGI</title>\n";
print "<body>";
print "hello perl-cgi!!!!!!!";
print "</body>";
print "</html>\n";
Run Code Online (Sandbox Code Playgroud)
我在mime.conf中打开了Handler文件在/ usr/lib/cgi-bin中,我将其作为http而不是file:///运行.我还安装了mod_perl.我是Apache新手.我搜索了几个小时,尝试无限的Apache配置,阅读Apache文档,但仍然无法解决它.是因为"+ ExecCGI"代码有问题吗?我看到另一个人在将Ubuntu 12.04更新到13.10之后也遇到了类似的问题.也许Ubuntu是问题?请帮忙.Apache配置和Ubuntu权限几乎让我很生气.