Articles of cgi

如何在Apache中以“nice”优先级运行CGI二进制文件

我有一个运行一些二进制CGI程序的Apache服务器。 这些程序在大多数情况下都performance得很好,但是在极less数情况下,它们将所有的内存加大,或者运行很长时间,占用100%的CPU。 当发生这种情况时,很难通过SSH连接到该机器(它是CentOS,BTW)并手动修复。 有没有办法让Apache执行“好”优先级的CGI二进制文件? 我不想限制RAM使用情况或CPU资源。 这是我的理解有一个“好”的优先权将允许我SSH的机器(因为sshd将具有更高的优先级),而且,如果RAM成为一个问题,OOM杀手将杀死CGI二进制第一。 有任何想法吗 ? 谢谢!

Apache虚拟主机的PHP CGI

我使用PHP5.3作为Apache2.2(Windows)的模块。 对于一个虚拟主机,我需要使用PHP4作为CGI的.php文件。 这是我的configuration <VirtualHost *:80> DocumentRoot "E:\projects\php\wp\dev" ServerName wp.dev4 AddHandler php4-script .php Action php4-script "E:\server\bin\php-4.4.9\php.exe" <Directory "E:\projects\php\wp\dev"> Options ExecCGI AllowOverride All Order deny,allow Allow from all </Directory> 但我得到错误 在此服务器上未find请求的URL /server/bin/php-4.4.9/php.exe/test.php。 有什么问题?

灯php的Ubuntu的10.04与CGI我得到访问'/ var / www / …'而不是'/ usr / lib / cgi-bin / …'

我在Ubuntu 10.04的apache web服务器上有一个基本的php cgiconfiguration问题。 我试图设置CGI以回答其中一个URL localhost/cgi-bin/index.php或localhost/index.php与执行/usr/lib/cgi-bin/index.php的输出具有输出phpinfo() 。 我遵循Ubuntu 10.04> Ubuntu服务器指南> Web服务器> HTTPD – Apache2 Web服务器让我开始,并完成虚拟主机的东西。 我也创build了PHP脚本,并试图访问它,但我有力redirect的问题。 我试图通过启用mod_actions来解决这个问题,并做了一些关于Action和AddHandler指令的说明 。 我在httpd.conf插入了2个指令,但是我在错误日志中访问了/var/www : Action php-script /cgi-bin/php # (or /cgi-bin , /cgi-bin/ for my setup) AddHandler php-script .php 所以现在我被卡住了,我可以使用一些帮助。

在localhost中使用apache安装Redmine slackware 13.1

我刚刚在slackware 13.1上安装了Redmine我按照webrick的说明和安装工作正常进行了testing: ruby script/server webrick -e production 但是,我现在想要在我的本地计算机(本地主机)与Apache使用它,但不知道如何configurationApache这个。 apache的文档根目录是/ var / www / htdocs。 所以我创build了一个符号链接到redmine(由apache:apache拥有),以便通过http:// localhost / redmine访问它。 现在,如果我访问http:// localhost / redmine我看到的目录,但如何运行redmine cgi? 任何人都可以给我一些指导?

Apache Mod_Rewrite:别名和CGI

我想让Apache在我的“项目”目录中运行一个cgi可执行文件。 它应该在以下位置响应HTTP请求: localhost/packages localhost/packages/ 但是,它不应该响应HTTP请求 localhost/packages/PackageName localhost/packages/PackageName/ localhost/packages/PackageName/more/stuff 为此,我创build了一个Apacheconfiguration文件,其中包含: ScriptAlias /doc_cgi/ /long/path/to/cgi/DocCGI.haskell/ RewriteEngine On RewriteRule ^/packages/?$ /doc_cgi/packages/ [L,PT] <Directory "/long/path/to/cgi/"> Order deny,allow Allow from all AddHandler cgi-script .haskell Options +ExecCGI </Directory> 正如我所预料的那样,在向localhost / doc_cgi /发送http请求时,会调用cgi程序。 但是,当我提出请求时,重写规则似乎没有被触发 localhost/packages localhost/packages/ 因为我得到404错误,日志说: [Wed Jul 20 12:29:42 2011] [error] [client 127.0.0.1] File does not exist: /var/www/packages 为了完整起见,下面是configuration文件的相关部分,它定义了我如何处理对localhost / packages […]

使用Apache以特定用户的身份执行CGI脚本

我想在我的web服务器上运行一个特定的(perl)CGI脚本。 这个工作是合理的,但是如果CGI脚本将以当前authentication的用户身份运行,那么这将非常好。 有没有办法做到这一点,例如与包装和sudo? 虚拟主机configuration如下: DocumentRoot /path/to/script <Directory /path/to/script> Options FollowSymLinks +ExecCGI AddHandler cgi-script .cgi AuthType Basic AuthName "Authenticate" # This authenticates against the local NIS PerlAuthenHandler Apache2::AuthenNIS PerlAuthzHandler Apache2::AuthzNIS PerlSetVar AllowAlternateAuth no Require valid-user </Directory>

在cgi-bin中redirect一个不存在的文件

我们正在使用RHLE 5.6。 我是相当新的Linux和Apache。 我们目前有一个网站在购物车的cgi-bin目录中使用一个古老的exe文件(在Windows上)。 我们正在将此网站迁移到RHLE 5.6服务器。 我遇到的挑战是redirect在commerce.exe文件指向的文件。 我已经尝试在我们的网站文件夹中设置一个.htaccess ErrorDocument指令,但日志说Apache不在cgi-bin( /home/site/ )的目录文件夹中,而是在/var/www 。 我曾尝试在/var/www/cgi-bin文件夹中添加.htaccess指令,并且仍然显示404错误。 我打开创造性的build议 – 我只需要将commerce.exeparsing或redirect到一个可以parsing的文件。 谢谢! JMAX

使用FCGI的不可读错误

我最近将mod_fcgi安装到Amazon EC2 64位Linux AMI上,并使用Movable Type 5.13。 这是我的错误日志。 [warn]mod_fcgid: error reading data, FastCGI server closed connection, referer: http://xxx/mt.fcgi?__mode=start_rebuild&old_previous=1&is_new=0&next=0&old_status=2&type=entry-1&blog_id=1&entry_id=1 [error]Premature end of script headers: mt.fcgi, referer: http://xxx/mt.fcgi?__mode=start_rebuild&old_previous=1&is_new=0&next=0&old_status=2&type=entry-1&blog_id=1&entry_id=1 我的.conf文件是/etc/httpd/conf.d/fcgid.conf LoadModule fcgid_module modules/mod_fcgid.so # Use FastCGI to process .fcg .fcgi & .fpl scripts AddHandler fcgid-script fcg fcgi fpl .cgi # Sane place to put sockets and shared memory file […]

使用CGI在PHP 5.3上运行单个Apache Vhost,其他站点在Apache模块上使用PHP 5.2

我一直在试图设置我的开发服务器来使用PHP 5.3.14通过CGI为我的Apache虚拟主机提供服务。 我设置的Apache服务器是Apache 2.2.3,PHP 5.2.10作为Apache模块运行。 CentOS 5.5是操作系统。 其中一个网站使用的function只能在PHP 5.3中使用,而且我的网站需要5.2,所以我只想运行CGI上需要PHP 5.3的网站。 我已经跟随了几个教程,我已经安装了Apache / PHP 5.2并作为一个模块工作。 我也下载和编译PHP 5.3.14成功到我已经build立了php-5.3.14 / sapi / cgi / php-cgi可执行文件,并准备好去。 如果我运行它与脚本它能正常工作。 但是,在将我认为正确的指令添加到VirtualHost之后,该站点仍然不使用PHP 5.3,而是继续使用PHP 5.2(将版本设置为Apache模块)。 这是我的Vhostconfiguration: <VirtualHost *:80> ServerName utfl.peapoddev.com ServerAlias elegal.utfl.peapoddev.com subsite.utfl.peapoddev.com library.utfl.peapoddev.com DocumentRoot /var/www/utfl/drupal DirectoryIndex index.html index.php SetEnv PHPRC /var/www/cgi-bin/php_5_3_14/ ScriptAlias /php-5-3-14/ /var/www/cgi-bin/php_5_3_14/ Action application/x-httpd-php-5-3-14 /php-5-3-14/php-cgi AddType application/x-httpd-php-5-3-14 .php .inc <Directory "/var/www/cgi-bin/php_5_3_14"> […]

多个PHP版本作为CGI运行

我试图安装PHP的第二个版本,与当前版本的PHP一起运行。 我已经从github(5.5-DEV)编译了最新的php源代码,并且正在尝试将其作为CGI运行。 这是我的虚拟主机configuration: <VirtualHost *:8055> DocumentRoot /Library/WebServer/Documents/ ScriptAlias /cgi-bin/ /usr/local/php55/cgi Action php55-cgi /cgi-bin/php-cgi AddHandler php55-cgi .php <Directory /Library/WebServer/Documents/> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order Allow,Deny Allow from all </Directory> DirectoryIndex index.html index.php </VirtualHost> 但是当我去http://127.0.0.1:8055/info.ph p,我得到以下错误: 被禁止 You don't have permission to access /cgi-bin/php-cgi/info.php on this server 编辑 我现在正在切换 LoadModule php5_module /usr/local/php54/libphp5.so 和 LoadModule […]