我有一个相当耗费资源的CGI,需要相当长的时间才能开始发送数据。 我们已经看到了很多不耐烦的人重新加载了几次,然后触发额外运行的CGI被加载,或者客户端超时并且断开连接的情况,但是CGI继续运行。 有什么好的方法来检测这种情况何时发生? 它甚至不需要在CGI本身之内(如果不是,它可能更好 – 它交给另一个我无法控制的程序),但可能是一个经常运行的cron作业寻找死亡的连接收获。 我目前正在使用Apache,但这是一个问题,如果它有处理它的条款(或者让我监视这个问题的方法),我愿意运行其他的web服务器。
我正在使用mod_rewrite将所有传入请求redirect到CGI应用程序。 我现在需要让应用程序返回404如果找不到请求的文件。 我怎么能从我的程序中解决这个问题? 发送的第一行是内容types,而之前的行通常表示状态(200/404/500等)。
我知道这不是TFTP的目的,但我正在一个环境中,很多不同types的设备从TFTP服务器提取configuration信息。 我正在开发的是一个跟踪和维护设备configuration的configuration系统,我希望能够随时生成所请求的文件,就像您可以使用任何Web应用程序一样。 是的,其中一些设备可以支持HTTP进行configuration,但不是所有设备都可以,我们希望事物保持一致。 有没有可以提供类似于CGI的东西的TFTP守护进程?
当你通过一个基本的身份validation页面login时,你authentication的用户名是否存储在任何地方(在服务器或客户端机器上),也许在一个环境variables? 背景 :我有一个电子邮件服务器的公共Webpipe理页面,我想知道谁在做什么。 当用户通过基本身份validation成功login时,我不知何故希望能够识别他们并logging他们的行为。 所以每次提交请求时,我都可以写入日志文件。 基本格式是: $username ran a $function against $useraccount 所以如果用户改变了某人的权限,例如: Admin-Bob ran a permission change against User-Scott 因此,如果发生错误,我可以轻松地追溯到日志文件中导致原因的操作。 我试图检查%ENV哈希无济于事,任何想法? 我真的不想进入类似PHP的会话,因为这意味着废除我的基本身份validation,这已经给我一个很好的控制程度。 如果我必须使用会话编写代码,我需要实现一个系统来阻止用户经过最大尝试等,我不想编码。 我认为这更适合serverfault,因为它比编程语言更适合于Apache。 会议可以用无数种语言完成。
我已经习惯了用“vi”编辑Perl CGI脚本,同时打开一个浏览器来testing它们。 最近,当我这样做的时候,我得到了“500”的服务器错误,当我从shell运行脚本的时候,我得到了“糟糕的解释器:文本文件忙”。 唯一的解决办法是每当我想testing脚本时退出“vi”,这是一个皇家的痛苦, 应该是完全没有必要的。 那是怎么回事? 我正在运行一个Debian服务器,我经常更新,我假设它开始于一些所谓的“升级”:)
我正在build立一个git–http-backend和Smart HTTP的git服务器,但是Apache似乎没有调用Smart HTTP CGI: $ curl http://localhost/repo/myproject.git/info/refs?service=git-receive-pack 2ddf56592a0f55456b8c42dc9f2cb9289f083f53 refs/heads/1.0.x 55079bb13d9af8a9164ad0d24b654cbfe119bc7e refs/heads/master 这是我的configuration: <VirtualHost *:8000> ServerName localhost DocumentRoot /opt/local/apache2/htdocs/repo SetEnv GIT_PROJECT_ROOT /opt/local/apache2/htdocs/repo SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /repo/ /usr/libexec/git-core/git-http-backend/ AliasMatch ^/repo/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /opt/local/apache2/htdocs/repo/$1 AliasMatch ^/repo/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /opt/local/apache2/htdocs/repo/$1 ScriptAliasMatch \ "(?x)^/repo/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f]{2}/[0-9a-f]{38} | \ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ /usr/libexec/git-core/git-http-backend/$1 <Directory "/usr/libexec/git-core/"> Options […]
我使用的是Apache 2.2,并且希望将X-Frame-Options标头设置为“拒绝”大部分网站。 我可以使用mod_headers无条件地打开它。 但是,有一个CGI脚本返回必须被构build的内容,所以我需要closures该脚本。 有没有办法做到这一点? 我正在使用Debian的Apache 2.2.9。
我一直认为PHP可以更好地安装为Apache模块,但是最近在本地论坛上有人指出,将PHP作为CGI运行更安全。 我做了一些Googlesearch,似乎Dreamhost默认PHP安装通过CGI工作 。 现在我有点困惑。 据我所知(我不是系统pipe理员,只是一个Web开发人员),当PHP作为Apache模块安装时,存在用户权限问题。 而通过CGI(或者是)使用PHP的时候存在速度问题。 现在安装PHP的推荐方式是什么? 在共享和专用主机上。
我已经看了很多类似的问题,但似乎没有为我工作的职位 我有以下/etc/apache2/httpd.conf文件: <Directory /var/www/index.py> Options +ExecCGI </Directory> <Directory /var/www> Options +ExecCGI AllowOverride None Order allow,deny Allow from all AddHandler cgi-script .py DirectoryIndex index.py </Directory> <Directory /var/www/tiles> AddHandler mod_python .py PythonHandler TileStache::modpythonHandler PythonOption config /home/TileStache/tilestache.cfg </Directory> 当我尝试访问主页为:只是主机名: http : //exampleHost.com我在错误日志上得到以下错误: Options ExecCGI is off in this directory: /var/www/index.py 但是当我去http://exampleHost.com/index.py它工作正常。 所以我猜是重写/ var / www目录? 我没有/ var / […]
我想问你一些你知道的PHP / Apacheconfiguration方法,它们的优缺点。 我会开始自己: —————- PHP作为Apache模块 —————- 优点 :速度很好,因为你不需要每次启动exe,尤其是在mpm-worker模式下。 您也可以在APC或eAccelerator这种模式下使用各种PHP加速器 。 缺点 :如果你在mpm-worker模式下运行apache,你可能会遇到稳定性问题,因为任何php脚本中的每一个小故障都将导致整个apache进程的线程池不稳定。 在这种模式下,所有的脚本都代表apache用户执行。 这对安全性不利。 mpm-workerconfiguration要求以线程安全模式编译PHP。 至lessCentOS和RedHat默认存储库没有线程安全的PHP版本,所以在这些操作系统上,您至less需要自己编译PHP(有一种方法可以激活Apache上的worker mpm)。 线程安全的PHP二进制文件的使用被认为是实验性的和不稳定的。 此外,许多PHP扩展不支持线程安全模式,或者在线程安全模式下未经过良好testing。 —————- PHP作为CGI —————- 这似乎是最慢的默认configuration,似乎是一个“con”本身;) —————- PHP作为CGI通过mod_suphp —————- 优点 :suphp允许您代表脚本文件所有者执行php scipts。 这样你可以安全地在同一台机器上分离不同的网站。 另外,suphp允许为每个虚拟主机使用不同的php.ini文件。 缺点 :CGI模式下的PHP意味着更低的性能。 在这种模式下,你不能使用像APC这样的PHP加速器,因为每当新进程产生处理脚本的时候,渲染前一个进程的caching就没用了。 顺便说一句,你知道在这个configuration中应用某些加速器的方式吗? 我听说有关使用PHP的字节码cachingshm的东西。 此外,您不能在此模式下通过.htaccess文件configurationPHP。 如果您需要通过.htaccess(php_value / php_flag指令)设置各种脚本选项,您将需要安装P ECL htscanner 。 —————- 通过suexec作为CGI的PHP —————- 这个configuration看起来和suphp一样,但是我听说它比较慢,不太安全。 几乎相同的优点和缺点适用。 —————- PHP作为FastCGI —————- 优点 :FastCGI标准允许单个php进程在php进程死亡之前处理几个脚本。 这样你就可以获得性能,因为不需要为每个脚本启动新的php进程。 […]