标签: fastcgi

我可以同时为Windows和Linux平台编写Python Web应用程序吗?

我可以编写可以在Windows(IIS Web服务器)和Linux(Apache或lighttpd)上托管的Web应用程序而无需进行任何更改吗?

CGI?也许是新事物?WSGI | FastCGI?

python cgi wsgi fastcgi

3
推荐指数
1
解决办法
1510
查看次数

使用 PHP 作为 FCGI 运行的 HTTP 身份验证

我无法让基本的 HTTP 身份验证在安装并作为 FCGI 工作的 PHP 中工作。但是,当 PHP 作为模块安装时,它可以完美运行。

有什么办法可以让它工作吗???

我在 ubuntu 中运行 PHP 5.2.6 版。

<?Php 
if ( !$_SERVER['PHP_AUTH_USER'] ) {
    $this->getResponse()->setHeader('WWW-Authenticate',  'Basic realm="Testing"');
    $this->getResponse()->setBody('Unauthorized');
    $this->getResponse()->setHttpResponseCode(401);
} else { 
    var_dump($_SERVER['PHP_AUTH_USER']);
    var_dump($_SERVER['PHP_AUTH_PW']);
}  
Run Code Online (Sandbox Code Playgroud)

我确实尝试过

[Rewrite rule on .htaccess]
 RewriteEngine on
 RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]

[user:pass on PHP-script]
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':',     base64_decode(substr($_SERVER['REDIRECT_REMOTE_USER'], 6)));
Run Code Online (Sandbox Code Playgroud)

但它似乎没有工作。

php apache fastcgi

3
推荐指数
1
解决办法
5089
查看次数

Apache - 如何获取REMOTE_USER变量

以前我使用IIS服务器作为PHP服务器.目前,它是apache.

在IIS上,我可以访问$_SERVER ['REMOTE_USER']返回用户名和域的变量(例如domain\user),但在安装XAMPP后,此变量不可用.

我该怎么办才能让这个变量再次出现?

我的应用程序位于本地网络上,没有互联网连接

apache fastcgi

3
推荐指数
1
解决办法
2万
查看次数

Perl:标准应用程序开发方法

使用Perl进行Web应用程序开发有很多选项,例如

  • Perl CGI /快速CGI
  • 的mod_perl
  • 使用任何框架,如Catalyst/Dancer
  • 有一个叫做Moose的新对象系统

我已经在基本的Perl中完成了大约一年的编程,为一些自动化等构建了后端脚本.

有了各种各样的东西,什么是应用程序开发的框架/模块/方法的真正良好组合.

perl frameworks fastcgi mod-perl catalyst

3
推荐指数
1
解决办法
134
查看次数

FCGX_Accept_r 在 C 上的简单 FastCGI 应用程序中运行两次

我正在尝试创建用 C 编写的简单 FastCGI 应用程序:

#include <fcgiapp.h>
#include <stdio.h>
int main()
{
    int sockfd = FCGX_OpenSocket("127.0.0.1:9000", 1024);
    FCGX_Request request;

    FCGX_Init();
    FCGX_InitRequest(&request, sockfd, 0);

    while (FCGX_Accept_r(&request) == 0)
    {
        printf("Accepted\n");
        FCGX_FPrintF(request.out, "Content-type: text/html\r\n\r\n<h1>Hello World!</h1>");
        FCGX_Finish_r(&request);
    }
}
Run Code Online (Sandbox Code Playgroud)

它工作正常 - 当我从浏览器调用它时,它会显示带有“Hello World!”的页面。信息。

问题是“while”中的代码工作两次,即我在终端中看到以下输出:

[root@localhost example]$ ./hello 
Accepted 
Accepted
Run Code Online (Sandbox Code Playgroud)

为什么每个请求都会打印“Accepted”两次?如果我把真正的代码放在这里,例如查询一个数据库,它也会被执行两次。

c fastcgi nginx

3
推荐指数
1
解决办法
693
查看次数

使用 NGINX 运行 C FastCGI 脚本

这应该是我关于 FastCGI 和 NGINX 的最后一个问题(我已经问了太多了),但是我有一个关于在 Web 服务器上运行 C FastCGI 脚本的问题,特别是 NGINX。现在我的 nginx.conf 文件是这样的:

user nobody nobody;

events {
    worker_connections 1024;
}    

http {
    server {
        listen 80;
        server_name localhost;

        location / {
            root            /nginx/html;
            index index.html index.htm new.html;
            autoindex on;
            fastcgi_pass   127.0.0.1:8000;
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个简单的 C FastCGI 脚本,可以打印出 Hello World。我知道为了运行这个脚本,我首先必须编译 C 脚本,这将生成一个二进制文件。然后我使用spawn-fcgi -p 8000 -n <binary>or执行这个二进制文件cgi-fcgi -start -connect localhost:8000 ./<binary>。我已经成功地做到了这一点并显示了正确的结果。然而,当我这样做时,CGI 脚本是 Web 服务器上唯一显示的内容。我无法访问任何 .html 页面或任何其他页面。即使我输入随机扩展名(这会导致 404 Page not Found 错误),也会显示 CGI 脚本。基本上我试图让index.html成为主页,然后当用户单击按钮时,用户将被带到一个显示C CGI脚本的新页面。

这可能吗?如果是这样,我该怎么办?我花了几个小时试图在网上寻找解决方案,但没有成功。如果问题太模糊/不清楚或者您需要更多信息,请告诉我!谢谢你!

c cgi fastcgi nginx

3
推荐指数
1
解决办法
2255
查看次数

nginx.conf 中的 PHP_VALUE 不会覆盖 php.ini 中的参数

我在 nginx.conf 中有这个位置部分:

location ~ \.php {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param   PHP_VALUE   "memory_limit = 500M; post_max_size = 400M; upload_max_filesize = 300M";
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
            fastcgi_index index.php;
            fastcgi_pass 127.0.0.1:9000;
}
Run Code Online (Sandbox Code Playgroud)

我需要增加这些参数以进行文件下载,但phpinfo()尽管更新了 $_SERVER['PHP_VALUE'] (包含我在配置中写入的值),但 -list 中仍然存在 php.ini 的先前值。我尝试以不同的方式更改值:不使用分号,使用\n,混合之前的两种变体,替换PHP_VALUEPHP_ADMIN_VALUE,从其他人的配置中复制参数;但仍然不成功。问题出在哪里?什么阻碍了我的参数的应用?

php config fastcgi nginx php-ini

3
推荐指数
1
解决办法
4178
查看次数

使用 nginx、fastcgi 和 php 设置开发环境时,我从 php 服务器收到“无效请求(格式错误的 HTTP 请求)”

我正在建立一个使用 nginx 的开发环境,并使用 fastcgi 将请求转发到命令行 php 服务器。当我直接向 php 服务器发送请求时,它会正确处理它们。nginx 服务器可以正确处理非 php 文件的请求。但是,当我通过 nginx 发送 php 请求时,php 服务器被命中,但返回“无效请求(格式错误的 HTTP 请求)”。

很抱歉附上我的所有配置文件,但我不确定从哪里开始。所有文件都位于$PROJECT_PATH/dev-config/.

这是我的 nginx 配置的相关部分。

http {
    ...

    server {
        root .;
        listen       8123;
        server_name  localhost;

        location / {
            index  index.php;
        }

        location ~ \.php$ {
            try_files $fastcgi_script_name =404;
            fastcgi_param  SCRIPT_FILENAME $request_filename;
            fastcgi_pass   127.0.0.1:9123;
            fastcgi_index  index.php;
            include        fastcgi_params;  # this file is the default
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是运行以(重新)启动 nginx 和 php 的脚本:

#!/bin/bash

PROJECT_PATH="$(dirname $0)/../"

nginx -s stop || true …
Run Code Online (Sandbox Code Playgroud)

php fastcgi nginx

3
推荐指数
1
解决办法
939
查看次数

如何停止超过配置的请求超时的 FastCGI 进程

我有一个接受大文件(最大 500Mb)的 API。直到最近它还在发挥作用。现在我不断收到一个Error 500.0 - Internal Server Error. 警告消息指出C:\inetpub\Scripts\python.exe - The FastCGI process exceeded configured request timeout。大约 10 分钟后会出现此情况。

以前,CGI 和 IIS 的超时设置为大约 20 分钟,但自从我收到此错误消息后,我荒谬地提高了超时,大约 10 分钟后它仍然发生。

  • 在 IIS 的 CGI 下,我将超时设置为 1 小时 30 分。

  • 在 IIS 的 web.config 中,我有:

    <system.web>
        <httpRuntime executionTimeout="12250" maxRequestLength="500000" />
        <customErrors mode="Off" />
    </system.web>
Run Code Online (Sandbox Code Playgroud)

python iis fastcgi

3
推荐指数
1
解决办法
4088
查看次数

FCGI死了吗?如今有什么替代方案?

我是 Perl 的初学者。

我的理解如下。

  • FCGI是一个协议
  • 它是 Web 服务器和 Web 应用程序之间的网关接口
  • 该进程在特定时间(例如5分钟)内保持活动状态并接受多个请求,因此响应速度很快。
  • 您可以在构建进程之前缓存一些数据,以便可以与所有进程共享这些缓存,并且可以通过写入时复制来节省内存。

看起来很好。然而,在我使用 Golang、Nginx 等进行现代开发的经验中,我从未见过 FCGI。

现代 Web 应用程序不再需要 FCGI 了吗?

FCGI的缺点是什么,FCGI的优点是什么?

perl cgi fastcgi

3
推荐指数
1
解决办法
2828
查看次数

标签 统计

fastcgi ×10

nginx ×4

cgi ×3

php ×3

apache ×2

c ×2

perl ×2

python ×2

catalyst ×1

config ×1

frameworks ×1

iis ×1

mod-perl ×1

php-ini ×1

wsgi ×1