问题标签 [cgi-application]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - CGI::Application 应用程序的 nginx fastcgi 配置
我正在尝试让 C::A 应用程序在 nginx fastcgi 环境(debian 6.0)中工作并使用 spawn-fcgi。
C::A 路由配置使用$self->mode_param( path_info=> 1, param => 'rm' );
问题是无论我请求什么 C::A 应用程序网址(等),它总是显示主页,这就是它example.com/cities
所做的。example.com/profile/99
example.com/index.pl
我的 nginx 设置是
我已经以类似的方式成功设置了几个 php 应用程序。
但是,在这种情况下,我怀疑我没有将必要的内容传递fastcgi_param
给它所要求的 C::A。
你有什么想法?
perl - Perl CGI::Session save_param 将所有参数保存为一个键下的数组
我CGI::Session
用来存储会话数据CGI::Application
(特别是我CGI::Session
通过CGI::Application::Plugin::Session
模块使用)。在我的一种应用程序模式中,我这样做:
要将我的参数保存到会话数据中,但是在使用检索它们时,$self->session->param('user')
我发现只有用户参数包含任何数据,即使其他参数正在发送到服务器端并且可以通过$q->param()
从会话中检索到的用户参数访问参数数组,但是我希望这$self->session->param('user')
将返回一个包含参数“用户”内容的字符串。
这种行为是预期的吗?
如果是,为什么?
perl - Perl nginx REST CGI::Application
我正在尝试将一个简单的基于 CGI::Application::Dispatch 的 REST 应用程序从 Apache 服务器转换为 Nginx。该应用程序在 Apache 下运行良好,但在 Nginx 下运行时,只有 Dispatch 请求的根层工作——即 /app。路径的任何其他部分,例如 /app/doit,都会导致调用失败并显示 Forbidden。
我怀疑我需要更改将 URL 传递给 fastcgi 的方式,但我不清楚如何拆分它。我能够找到的大多数示例都是在存在 dispatcher.cgi 类型的脚本时进行拆分,但是由于 C:A:D 期望被称为 /app 并期望看到 URL 的 /doit 部分,所以我我不确定如何实现它。
我当前的位置块是:
Apache 中的设置非常简单:
perl - Perl - CGI::Application - 从数据库创建会话变量
我在数据库中存储了一堆配置变量,可通过以下查询访问键值对:
我想将这些键/值对加载到 CGI::Applicaiton 会话中。目前这是通过手动完成的(所以不是来自数据库,而是硬编码)
对于一堆键值对。使用 DBI 和某种形式的循环是否有更明智的方法?
谢谢
dbix-class - 辅助 perl 子例程未在分叉进程中返回
我遇到了一个奇怪的错误,希望有人能提供帮助。我试图在下面提供尽可能多的背景,但不涉及太多细节,但很高兴澄清任何令人困惑的事情。
我目前正在开发一个使用 Perl 进行后端服务器处理的网络应用程序。基本上,用户请求从浏览器的 PostgreSQL 数据库中处理和返回一些数据。有时这需要很短的时间,我可以在服务器超时错误发生之前将数据返回给用户。对于较大的请求,我会分叉后端流程,并在准备好后向用户发送一封电子邮件,并附上数据。
使用CGI::Application
我有一个运行模式,它调用这个子进程,它分叉后端进程并将父进程返回到一个页面,告诉用户他们将在数据准备好时收到一封电子邮件:
注意:这里的 dbixSchema 只是 cgi 初始化时创建的数据库模式对象(数据库连接和数据库处理程序),允许我连接到 PostgreSQL 数据库,并直接在 Perl 中运行查询。
现在在另一个模块中,LongProcess
我有一个子程序emailResultsToUser
,它可以完成对数据库的所有访问、数据处理和向用户发送电子邮件(在精简版中):
子 emailResultsToUser {
并在辅助子中:
问题
无论出于何种原因getData
,都会调用并且一切运行顺利(如错误日志中的各种打印语句所示 - 我已省略),但子例程永远不会返回到调用者(即emailResultsToUser
),因此emailResultsToUser
永远不会完成。getData
只是挂在它的 return 语句上,没有任何错误的迹象。我能够打印从数据库返回的结果,并且我可以验证数据处理是否发生并且 a%resultHash
已完成。
我不确定为什么会发生这种情况。我已经设法将其确定为可能连接到 postgreSQL 数据库。如果我不将 dbixSchema 传递给孩子(是的,我会收到一个未在孩子中定义的错误),emailResultsToUser
如果我my $userData = $self->getData();
将eval{}
. 即使我没有从父级传递 dbixSchema 对象并在子级中创建一个新对象,也会发生相同的“错误”。
有什么想法吗?
perl - CGI::Application::Plugin::REST 实例脚本
我正在尝试使用CGI::Application::Plugin::REST构建一个 Restful 服务,但我不确定如何实际构建脚本。是否与使用 CGI::Application 相同,所以下面将是使用 Perl 库路径的实例脚本引用模块?
我承认我可能正在向后学习 CGI::Application,并且正在寻找一个简单的出路,因为一旦框架完成,其余的都是可以实现的。我也不想使用 MVC 框架,因为我想从头开始构建它。我在这里先向您的帮助表示感谢。
json - CGI::Application::Plugin::JSON - json_body 向后返回
我想知道是否有人知道为什么这个返回与CGI::Application::Plugin::JSON倒退
输出如下:
{"message":"I should be AFTER result","result":"1"}
我会假设它会从键/值对从左到右格式化 JSON,记住它是向后的是可以的,但我有很多返回要处理,客户端的验证是用“结果”完成的价值,所以如果我只是错过了一些东西,我想让它像输入一样输出。
编辑:
另外我只是注意到它没有返回 JSON Boolean 类型对象,因为"result":"1"
它将反序列化为 sting 对象而不是 JSON Boolean。有没有办法让它输出"result":1
感谢您提供的任何帮助。
perl - CGI::Application param() 未设置
我有一段代码CGI::Application
用作它的基础,但有些东西不能正常工作。
当我尝试通过它设置某些东西时,$Template->param()
它似乎没有设置。
$Template
等于$self->load_tmpl($template);
我要保存的部分是:
我知道\%a_hash_ref
包含预期值。它有一个类似的形式:
另外,如果我这样做
它不保存,但是
确实,where$Pagination
也是一个 hash_ref。
我知道所有的值都是它们应该的值,并且我还尝试了一些简单的字符串,它们应该可以工作,但它们没有设置。我知道这一点,因为当我跑步时:
它输出它应该设置的所有变量,但'Hey!xD'
缺少预期的变量(包括字符串)。我也知道它实际上运行代码,因为这个 die Dumper 在我尝试设置值之后。
模板文件包含这段代码:
$(document).ready(function () { mainFunction('[%symbol%]'); });
任何帮助,将不胜感激。
编辑:
这是赋予参数的内容:
[ { 'date' => '2006-07-05', 'avg_gain' => undef, 'bollinger_mid' => '32.80000', 'symbol' => 'BBQ' }, { 'date' => '2006- 04-04', 'avg_gain' => undef, 'bollinger_mid' => '34.55656', 'symbol' => 'AAPL' } ... ]
perl - Perl CGI::Fast 关闭连接而不发送数据
我正在尝试部署一个CGI::Application
通过 Nginx 使用的 Perl 应用程序,使用 FastCGI 在它们之间进行通信。
Nginx 不断返回“502 Bad Gateway”,错误日志充满了这个:
2015/02/03 12:40:03 [错误] 11209#0: *2 上游过早关闭连接,同时从上游读取响应标头,客户端:10.1.1.23,服务器:www.example.com,请求:“GET /test .fcgi HTTP/1.1”,上游:“ http://127.0.0.1:5001/test.fcgi ”,主机:“www.example.com”
这是 Nginx 站点配置:
CGI::Fast
为了查看问题是否出在 Perl 应用程序本身,我根据文档中的测试代码创建了一个新的 fcgi 应用程序:
当我运行时./test.fcgi
,我可以看到netstat
它已绑定到端口 5001。当我在浏览器中访问 URL 时,使用这个超级简单的应用程序仍然得到 502。错误日志中没有Carp
正在写入的内容。
由于应用程序的启动时间长,我不想使用纯 CGI(通过包装脚本),而且我无法将整个应用程序转换为 Plack/PSGI。
我如何才能弄清楚为什么 Nginx 不会与 Perl 对话CGI::Fast
,甚至不会与文档中的简单示例对话?
perl - Perl CGI::Application 写入文档文件
我正在尝试在 perl 5.8 中生成一个文件,该文件从 xml 文件(具有 utf-8 编码)读取并生成一个 word 文档。当我在命令行运行代码时,它运行良好。
从 CGI::Application 运行相同的代码时,它会忽略 unicode 字符并错过注释。
这是代码:
我尝试设置 binmode 但问题似乎出在 CGI::Application 在写入文档文件时忽略了 utf 编码。
当作为 perl 脚本运行时,我有以下代码可以很好地生成具有正确法语口音的 word 文档。
Perl 脚本
模块 XYZ 的代码如下:
但是当从 CGI 调用时,相同的模块会生成 word 文档,但没有法语口音。
Perl CGI 程序