Articles of cgi

我如何以编程方式重新启动一个系统服务(而不是apache)从Linux中的Apache?

我需要简单的方法来允许最终用户从同一个框中的apache服务的网页重新启动tomcat。 我们试图让我们的QC部门轻松地将我们的webapp的新版本部署到apache。 我们使用samba,但是我们需要一个简单的方法让他们在部署之前/之后停止/启动tomcat服务器。 这只会用于内部的盒子。 有没有现有的解决scheme呢? 还是会更容易写一些快速的PHP应用程序来处理这个?

Unix3上的Python3 CGI HTTPS服务器失败

这个Python3 CGI HTTPS服务器过去几个星期(或几个月)工作,但现在不再在Linux(Ubuntu)下工作。 我试过在Ubuntu 10.04和Ubuntu 14.04上的行为是一样的。 现在,当我尝试访问任何CGI脚本,我得到: Secure Connection Failed An error occurred during a connection to 127.0.0.1:4443. SSL received a record that exceeded the maximum permissible length. (Error code: ssl_error_rx_record_too_long) 以下是服务器的代码: import http.server import ssl import os server_address = ('', 4443) cert = os.path.abspath('./server.pem') handler = http.server.CGIHTTPRequestHandler handler.cgi_directories = ['/cgi-bin'] httpd = http.server.HTTPServer(server_address, handler) […]

Apache / httpd / var / www / html / .cgi脚本会引发500个内部服务器错误

我今天安装了一个新的CentOS 7 x86_64 LAMP服务器。 我在c中编译了一个简单的CGI脚本,我把它命名为test.cgi,并为.cgi脚本启用了AddHandler。 然而,每次我尝试从我的/ var / www / html目录加载/test.cgi页面时,任何简单的.cgi脚本都会给我一个500内部服务器错误页面。 我testing了脚本在/ var / www / cgi-bin目录下工作正常。 我的服务器正在运行selinux,而apache / httpd正在使用suEXEC。 编辑:也没有创build任何额外的用户灯安装后,所以在这里我使用root来做所有的事情。 然而,我试图修复给Apache的用户/ var / www / html目录的所有权,这并没有修复悲伤。 这里是错误日志,你可以看到它给了我一个'Permission Denied'错误: [Mon Jul 21 15:28:14.336626 2014] [core:notice] [pid 22704] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0 [Mon Jul 21 15:28:14.339766 2014] [suexec:notice] [pid 22704] AH01232: suEXEC […]

Python CGIHTTPServer崩溃与“OSError:权限被拒绝”

我从我的主目录运行以下命令: python -m CGIHTTPServer 这运行服务器,但是当我尝试访问cgi-bin目录中的脚本时,我得到: Traceback (most recent call last): File "/usr/lib/python2.7/CGIHTTPServer.py", line 251, in run_cgi os.execve(scriptfile, args, env) OSError: [Errno 13] Permission denied 以root身份运行并没有什么区别。 这些文件似乎拥有所有权限: student@bandersnatch:~$ ls -lhR .: total 12K drwxr-xr-x 2 student student 4.0K Jun 13 18:38 cgi-bin drwxr–r– 2 student student 4.0K Jun 10 2004 kalpy -rwxrwxrwx 1 student student 2.0K […]

是否有可能在Linux中将数据写入到自己的stdin中

我想从IDE中debugging我的cgi脚本(C ++),所以我想创build一个“debugging模式”:从磁盘读取文件,把它推到自己的stdin,设置一些环境variables,对应这个文件,运行其余的该脚本是由Web服务器调用的。 是否可能,如果是,那我该怎么做?

我如何设置Python CGI服务器?

我在Windows上运行Python 3.2。 我想在我的机器上运行一个简单的CGI服务器来进行testing。 以下是我迄今为止所做的: 我用下面的代码创build了一个python程序: import http.server import socketserver PORT = 8000 Handler = http.server.CGIHTTPRequestHandler httpd = socketserver.TCPServer(("", PORT), Handler) httpd.serve_forever() 在同一个文件夹中,我创build了一个简单的HTML文件“index.html”。 然后运行该程序,并在我的Web浏览器中转到http:// localhost:8000 / ,并成功显示该页面。 接下来我在同一个目录下创build一个名为“hello.py”的文件,代码如下: import cgi import cgitb cgitb.enable() print("Content-Type: text/html;charset=utf-8") print() print("""<html><body><p>Hello World!</p></body></html>""") 现在,如果我去http:// localhost:8000 / hello.py ,我的网页浏览器会显示上面的完整代码,而不是“Hello World!”。 在提供之前,如何让python执行CGI代码?

在Windows上安装XAMPP Mercurial Apache – > HgWebDir.cgi脚本错误

我尝试通过CGI Python脚本hgwebdir.cgi通过XAMPP Apache发布多个现有的mercurial存储库位置…如本教程中所示https://www.mercurial-scm.org/wiki/HgWebDirStepByStep 当我尝试使用浏览器访问存储库path时,我从apache错误日志中得到以下错误: 脚本标题提前结束:hgwebdir.cgi [Tue Apr 20 16:00:50 2010] [error] [client 91.67.44.216] Premature end of script headers: hgwebdir.cgi [Tue Apr 20 16:00:50 2010] [error] [client 91.67.44.216] File "C:/hostdir/xampp/cgi-bin/hg/hgwebdir.cgi", line 39\r [Tue Apr 20 16:00:50 2010] [error] [client 91.67.44.216] test = c:/hostdir/mercurial/test/\r [Tue Apr 20 16:00:50 2010] [error] [client 91.67.44.216] ^\r [Tue Apr 20 16:00:50 […]

Windows和Lighttpd上的FastCGI

我正在寻找使我的CGI论坛软件FastCGI兼容。 论坛软件包含用C和x86汇编语言编写的几个dll和.exe(.cgi)文件。 我也有一个SQlite3数据库。 Lighttpd将所有这些cgi脚本作为subprocess运行,而且我非常认为整个系统的工作非常好。 但是我想用FastCGI进行实验。 但是,这些例子很差,文档很差,而且看起来好像是为了Linux而devise的。 有人得到FastCGI在Windows上工作? 如果有人有一个代码示例,并且lighttpdconfiguration行,我会很感激。

如何在CGI模式下运行时重写PHPconfiguration

有一些教程告诉我如何在CGI模式下运行时重写PHPconfiguration。 但是我仍然感到困惑,因为他们中的很多人都认为服务器是在Linux上运行的。 而我也需要在Windows上这样做。 我的主机确实使用Linux,但是我的本地开发计算机使用Windows XP和Xampp 1.7.3。 所以我需要先在本地计算机上执行此操作,然后再更改托pipe服务器上的configuration。 我的托pipe服务器中的PHP已经作为CGI运行,而在我的本地计算机仍然作为Apache模块运行。 在这一点上,我了解的过程是: 改变PHP以CGI模式工作。 我通过在“httpd-xampp.conf”中注释这两行来做到这一点: # LoadFile "C:/xampp/php/php5ts.dll" # LoadModule php5_module modules/php5apache2_2.dll 我的PHP现在作为CGI运行。 我用phpinfo()检查了这个。 它告诉我,Server API现在是CGI / FastCGI。 现在我想覆盖的PHPconfiguration。 在DocumentRoot中创build“cgi-bin”目录。 我的DocumentRoot是在“D:\ www \”(我使用虚拟主机的Apache)。 所以现在是“D:\ www \ cgi-bin”。 将默认的“cgi-bin”目录设置从“C:/ xampp / cgi-bin /”更改为“D:\ www \ cgi-bin”: ScriptAlias /cgi-bin/ "D:/www/cgi-bin/" <Directory "D:\www\cgi-bin"> Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI AllowOverride All Allow […]

是否有可能在windows下运行一个batch file作为Apache的CGI?

这听起来非常简单,但我不能使它工作。 我有awk和perl的工作,但cmd.exe并没有被devise成一个CGI程序,所以不pipe我做什么,我要么浏览器下载文件,内部服务器错误,要么我得到当前的path目录作为第一行。 你必须把一个#! 在CGI的第一行,或者你得到一个内部服务器错误,但我最终 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\cgi-bin>#!c:\windows\system32\cmd.exe /c Content-Type: text/html <HTML><BODY> <PRE>Your environment variables are: </PRE></BODY></HTML> 我试着用/ c,没有任何数量的排列,它总是先打印当前的工作目录,所以我不能打印出内容types作为标题。 有人得到这个工作? 我看到很多的猜测结果谷歌显示我,但没有实际的工作示例。