Questions tagged «cgi»


1
Amazon AWS EC2微实例上的Python CGI-入门指南!
此问题已从堆栈溢出迁移,因为可以在服务器故障时回答。 迁移 8年前。 如何使light2d的EC2微型实例提供CGI脚本?例如Python CGI? 嗯,花了半天时间,但是我已经使用lighttpd服务器在免费的Amazon AWS EC2微实例上运行了Python cgi。我认为这将帮助我的新手将所有步骤都放在一个位置。通过以下简单的步骤,只需15分钟即可完成设置! 对于阅读本文的经验丰富的用户,我的问题是:我所做的工作是否存在任何安全缺陷?(请参阅文件和目录权限。) 步骤1:启动您的EC2实例并ssh进入它。 [显然,您需要注册Amazon EC2并将密钥对保存到* .pem文件。正如亚马逊告诉您的操作方法,我不会赘述。] 登录您的AWS账户并启动您的EC2实例。网络上有关于此操作的教程。请注意,Amazon提供给您的默认实例大小很小。这不是“微型”的,所以会花钱。请务必手动选择“微型”。(微型实例仅在第一年是免费的...) 查找正在运行的实例的公共DNS代码。为此,请在信息中心顶部窗格中单击实例,最终您将在底部窗格中看到“ Public DNS”字段。(您可能需要摆弄一些。)公共DNS看起来像: ec2-174-129-110-23.compute-1.amazonaws.com 启动Unix控制台程序。(在Max OS X上,它称为Terminal,位于“应用程序”->“实用程序”文件夹中。) cd到桌面系统上的目录,该目录具有* .pem文件,其中包含AWS密钥对。 使用以下命令将ssh转到您的EC2实例: ssh -i <<your *.pem filename>> ec2-user@<< Public DNS address >> 因此,对我来说,这是: ssh -i amzn_ec2_keypair.pem ec2-user@ec2-174-129-110-23.compute-1.amazonaws.com 您的EC2实例应允许您进入。 步骤2:将lighttpd下载到您的EC2实例。 要安装lighttpd,您将需要对EC2实例具有root访问权限。问题是:Amazon不允许您以root用户身份登录。(至少不是直接的。)但是有一种解决方法。输入以下命令: sudo /bin/bash 系统提示字符将从$更改为#。在整个过程的最后一步之前,我们不会从“ sudo”退出。 安装lighttpd应用程序(对我来说是1.4.28-1.3.amzn1版本): yum install …

3
如何通过命令行将$ _GET变量传递给PHP脚本?
我正在尝试创建一个提供PHP脚本的Web服务器。当前,它的工作方式如下: 客户端请求/index.php?test=value 服务器调用 php index.php 服务器将HTTP请求标头作为STDIN馈送到PHP进程 服务器php从STDOUT 读取输出,并将其返回给客户端 所有这些都可以正常工作,只是由于以下原因未将参数传递给PHP脚本: var_dump($_GET); 返回: 数组(0){} $_GET调用PHP二进制文件时如何将参数传递给它?
14 php  http  cgi 

4
您知道哪些Apache / PHP配置,这些配置有多好?
我想向您询问有关您知道的PHP / Apache配置方法的优缺点。我将开始我自己: ---------------- PHP作为Apache模块 ---------------- 优点:速度快,因为您不需要每次都启动exe,尤其是在mpm-worker模式下。您也可以在此模式下使用各种PHP加速器,例如APC或eAccelerator。 缺点:如果您以mpm-worker模式运行apache,则可能会遇到稳定性问题,因为任何php脚本中的每个故障都会导致该apache进程的整个线程池不稳定。同样在此模式下,所有脚本均代表apache用户执行。这对安全性不利。mpm-worker配置需要PHP在线程安全模式下编译。至少CentOS和RedHat默认存储库没有线程安全的PHP版本,因此在这些OS上,您至少需要自己编译PHP(有一种在Apache上激活worker mpm的方法)。线程安全的PHP二进制文件的使用被认为是实验性的并且是不稳定的。另外,许多PHP扩展不支持线程安全模式或未在线程安全模式下经过良好测试。 ---------------- PHP作为CGI ---------------- 这似乎是最慢的默认配置,它本身似乎是“ con”;) ---------------- 通过mod_suphp将PHP作为CGI ---------------- 优点:suphp允许您代表脚本文件所有者执行php scipts。这样,您可以安全地将同一台计算机上的不同站点分开。另外,suphp允许每个虚拟主机使用不同的php.ini文件。 缺点:PHP处于CGI模式意味着性能降低。在这种模式下,您不能使用APC之类的php加速器,因为每次生成新进程来处理脚本时,都会使以前进程的缓存无效。顺便说一句,您知道在此配置中应用某些加速器的方法吗?我听说过将shm用于php字节码缓存。另外,在这种模式下,您无法通过.htaccess文件配置PHP。如果您需要通过.htaccess设置各种基于脚本的选项(php_value / php_flag指令),则需要为此安装P ECL htscanner。 ---------------- 通过suexec将PHP作为CGI ---------------- 此配置看起来与suphp相同,但是我听说它速度较慢且安全性较低。几乎相同的优点和缺点。 ---------------- PHP为FastCGI ---------------- 优点:FastCGI标准允许单个php进程在杀死php进程之前处理多个脚本。这样您就可以获得性能,因为无需为每个脚本启动新的php进程。您也可以在此配置中使用PHP加速器(请参阅缺点部分以获取评论)。同样,FCGI几乎与suphp一样也允许php进程代表某些用户执行。mod_fcgid似乎对Apache具有最完整的fcgi支持和灵活性。 缺点:在fastcgi模式下使用php加速器将导致大量内存消耗,因为每个PHP进程将具有自己的字节码缓存(除非有某些加速器可以将共享内存用于字节码缓存。是否有?)。FastCGI的配置也有些复杂。您需要创建各种配置文件并进行一些配置修改。 看来,fastcgi是最稳定,安全,快速和灵活的PHP配置,但是配置起来有些困难。但是,也许是,我错过了什么? 欢迎发表评论!

1
通过SSPI + CGI Perl检索Windows用户名
当他访问我的Intranet页面时,我需要检索当前登录的Windows用户的用户名。我正在尝试在Windows Server 2008和Apache 2.2上使用SSPI(mod_auth_sspi.so)对网页进行身份验证。我对httpd.conf文件进行了以下更改,并将我的Intranet站点添加到浏览器设置中的受信任站点。我的网页在Perl中,并且正在使用CGI.pm。我试图通过$ cgi-> user_name()和$ cgi-> remote_user()检索用户名,并尝试检查REMOTE_USER和AUTH_USER cgi ENV变量以获取用户名。 <IfModule !mod_auth_sspi.c> LoadModule sspi_auth_module modules/mod_auth_sspi.so </IfModule> <Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/TestWeb/"> <Files Test.pl> AuthName "TestWeb" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOfferBasic Off Require valid-user SSPIDomain domain name </Files> </Directory> 更改后,我已经重新启动了Apache。我看不到cgi Environment变量在环境变量中获取用户ID。我搜索了同一个论坛和其他论坛,这是他们都做了的并且似乎可以正常工作。我想念什么吗?感谢任何帮助。 谢谢
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.