标签: mod-perl

Perl的未来?(Perl 6,就业能力)

我发现了一些相关的问题,比如Python与Perl(现已删除)和Perl值得吗?(现已删除),但我似乎无法找到任何直接解决此问题的内容.

Perl有合法的未来吗?我现在在Perl商店工作,而且我来自PHP,因此我在服务器级别做事时看到了一种可以说是"低级"语言的一些优点,但在我看来Perl中的很多任务可以在PHP中更快地执行,以及一些ARGUE(主观的,不是我的观点)认为Python以更明确的方式执行这些任务更容易维护.

在我的简历上有这份工作最终会让我减少就业,特别是如果语言不再增长?

几点说明:

  1. 我爱Perl,所以不要以为我在抨击语言.它使用起来很有趣,我们使用相对简单的语法,相对容易维护.
  2. 我意识到"Vaporware"是一个流行语,并不一定适用于这种情况,因为Perl没有市场营销部门,他们在任何时候都没有"承诺"Perl 6.
  3. 我意识到CPAN让社区保持运转,因此无论是否出现Perl 6,人们都会继续构建增加语言可能性的模块,但这并不意味着行业商店意识到这一点,并转而使用"更多支持"的语言继续推出修订版的语言,如Python和(特别是)PHP.*

编辑{澄清} Cade Roux和Telemachus都提出了关于您的未来是否可以通过简历定义的好点.

说实话,当我的一位前雇主说"我不雇用Perl任何人作为他们的最后一份工作时,就会提起这件事.那就是OLD技术." 这是一个PHP商店,所以拿出一点点盐.

现在,在没有诽谤我的前任雇主的情况下,她根本不是技术人员,所以她真的表达了一个非专业人士的意见,在这种情况下,我的问题更像是"这种特殊技术是否存在耻辱"那些不使用它的人?",特别是那些可能已经过类似雇主经历过的人.我不是要求你用魔术玻璃来展望未来,假设下一个"热门"的语言会是什么,而是如果这种特殊的语言(被指责为发育迟缓的增长,再次受到外行人士)的负面含义它.

我希望这更有意义.

perl cpan mod-perl

20
推荐指数
9
解决办法
4753
查看次数

apache模块与cgi(关于安全性)之间有区别吗?

例如,它是更安全的使用mod_php,而不是php-cgi?或者使用它mod_perl而不是传统更安全cgi-scripts

我主要对安全问题感兴趣,但如果存在显着差异,速度可能会成为一个问题.

php apache perl mod-perl mod-php

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

mod_perl vs mod_fastcgi

我正在使用Perl开发一个带有一些C的Web应用程序,这对于一些重载数字运算来说是必要的.到目前为止我遇到的主要问题是试图决定是否应该使用mod-perl,mod-fastcgi或两者来运行我的脚本,因为我很难分析每个mod的优点和缺点.

任何人都可以发布摘要或提供一个链接,我可以找到一些比较信息,也许一些建议与示例?

apache perl mod-perl mod-fastcgi

15
推荐指数
3
解决办法
8382
查看次数

我应该使用什么标准来评估Perl"app server"(mod_perl替换)?

短版:

我应该使用什么标准来评估Perl"app server"(mod_perl替换)的可能候选者?

我们正在寻找某种框架,它允许重复执行各种Perl程序(作为服务),而无需支付以下费用:

  1. 每次执行时重新启动perl解释器一次

  2. 每次执行一次加载/编译Perl模块

(这两个都是运行mod_perl提供的好处)

笔记:

  • 我们并不太关心mod_perl提供的任何额外好处,例如深度Apache集成.

  • 这将是一个纯粹的应用程序服务器,这意味着不需要任何特定于Web的功能(如果应用程序服务器提供它,则不会出现问题,只是不需要).

  • 我们当然会考虑明显的标准(原始速度,生产就绪稳定性,主动开发,在我们关心的操作系统上运行的能力).我感兴趣的是我们可能希望从这样的框架/服务器中获得的不那么微不足道和微妙的东西.

背景:

在$ work,决定他们想要替换当前情况的权力(简单的webapps在Embperl中开发并通过Apache/mod_perl部署).

决定使用(本土)MVC系统,该系统将具有View的Java Spring前端; 并且Controller会将后端服务请求分解为执行模型职责的每个应用程序服务(不要挂在这个细节上 - 它与主要问题不太相关).

后端服务的一个选项是Perl,因此我们可以利用我们现有的所有Perl IP(库,webapp后端代码),而不必将其100%移植到Java.

总结一下:

    | View    | Model/app | Model loaded/executed by:                          |
================================================================================
OLD | Empberl | Model.pm | mod_perl has Model.pm loaded, called from view.epl  |
NEW | Java    | Model.pm | perl generic_model.pl -model Model (does "require") |
================================================================================
Run Code Online (Sandbox Code Playgroud)

现在,那些在一段时间内进行Perl Web开发的人会立即注意到新设计中最明显的问题:

    | Perl interpreter starts  | Perl modules are loaded and compiled |
=======================================================================
OLD | Once per …
Run Code Online (Sandbox Code Playgroud)

perl web-applications mod-perl application-server

15
推荐指数
2
解决办法
646
查看次数

在mod_perl 2下关闭响应

我试图找出是否有办法在mod_perl 2下完成响应而不返回主处理程序.到目前为止,还没有在文档中找到方法.以下是我正在尝试实现的示例:

#!/usr/bin/perl
# This is some mod_perl handler
use strict;
use warnings;
use Apache2::Const ':common';

sub handler {
    my $r = shift;
    if ($r->method eq 'POST') {
        # just to do something as example
        do_post_response($r);
    }
    $r->content_type('text/plain');
    print "Thank you, goodbye.";
    return Apache2::Const::OK;
}

sub do_post_response {
    my $r = shift;
    unless (check_somthing()) {
        # Suppose I find a situation that requires
        # a different response than normal...
        $r->content_type('text/plain');
        print "We have a situation...";
        $r->something_to_finish_the_request_immediatly(Apache2::Const::OK);
    }
}
Run Code Online (Sandbox Code Playgroud)

在一个常规的Perl脚本中,单独运行或在mod_cgi下运行,我可以exit() …

apache perl mod-perl mod-perl2

14
推荐指数
1
解决办法
140
查看次数

文件下载结果"IE无法打开此网站"

我对这个感到茫然.我看了很多,似乎有很多解决方案,但它们并不适合我.我有一个CGI :: Application应用程序生成一个带有Spreadsheet :: WriteExcel的MS Excel电子表格.这个工作正常一段时间,直到我们的实时服务器在几周前出现硬件故障.我们使用中断作为升级到Windows Server 2008(从2003年)和Apache 2.2.17(从2.2.11)升级的借口.现在,我在尝试下载电子表格时收到来自此错误的客户的投诉是零星的(但是经常被忽视):

Internet Explorer无法从[site]下载[url].
Internet Explorer无法打开此Internet站点.请求的网站不可用或无法找到.请稍后再试.

我在XP,Vista和7上尝试过IE 7-8,并且无法在本地重现此错误.有问题的用户每次都有,而不是随机.所有投诉都来自IE用户,主要是IE8.

在阅读了几条关于错误消息的帖子后,我添加了-expires标题无济于事.(没有办法直接测试,我必须实施修复并等待一天左右,看看人们是否停止抱怨._.)

sub export_spreadsheet {
   my $self = shift;
   binmode STDOUT;

   my $str;
   open my $fh, '>', \$str;
   my $workbook = Spreadsheet::WriteExcel->new($fh);
   # words words words
   $workbook->close;
   close $fh;

   $self->header_add(-type => 'application/vnd.ms-excel',
                     -expires => '+1d',
                     -attachment => 'export.xls');
   return $str;
}  
Run Code Online (Sandbox Code Playgroud)

请求的标头看起来很正常.这些都是在我的本地机器上收集的,请注意.

HTTP/1.1 200 OK
Date: Tue, 31 May 2011 22:23:17 GMT
Server: Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o mod_perl/2.0.4-dev Perl/v5.10.1
Expires: Wed, 01 …
Run Code Online (Sandbox Code Playgroud)

apache perl internet-explorer mod-perl

12
推荐指数
1
解决办法
7248
查看次数

为什么Perl 5.14使用(0 + GvGP(gv) - > gp_cv)定义GvGC?

我正在做一些与mod_perl-Apache-Perl兼容性相关的研究.最近我尝试使用Perl 5.14.2构建mod_perl 2.0.4.编译阶段提前终止并出现错误:

modperl_perl.c: In function ‘modperl_perl_core_global_init’:
modperl_perl.c:58:9: error: lvalue required as left operand of assignment
Run Code Online (Sandbox Code Playgroud)

在这个地方写下面的代码:

    GvCV(gv) = get_cv(cglobals->sub_name, TRUE);
Run Code Online (Sandbox Code Playgroud)

搜索可能产生此错误的内容,我发现以前版本的Perl和Perl 5.14(CORE/gv.h)之间存在差异:

    #define GvCV(gv) (GvGP(gv)->gp_cv)   /* previous versions */
Run Code Online (Sandbox Code Playgroud)

VS

    #define GvCV(gv) (0+GvGP(gv)->gp_cv)  /* in Perl 5.14 */
Run Code Online (Sandbox Code Playgroud)

0+从定义中删除它允许mod_perl 2.0.4成功编译,这很好,因为与以前的版本相比,0+...它不被识别为左值.

为什么0+在GvCV的定义中使用并且是否有必要?或者删除它是否安全,并且GvCV(gv)在以前的Perl版本中有类似的定义?

c perl mod-perl

12
推荐指数
1
解决办法
513
查看次数

Perl连接池

现在我们有一个大型的perl应用程序,它使用原始DBI连接到MySQL并执行SQL语句.它每次都创建一个连接并终止.开始接近mysql的连接限制(一次200)

看起来DBIx :: Connection支持应用程序层连接池.

有没有人有过经历DBIx::Connection?连接池是否还有其他注意事项?

我还看到mod_dbd哪个是Apache mod,它看起来像处理连接池. http://httpd.apache.org/docs/2.1/mod/mod_dbd.html

mysql apache perl mod-perl

11
推荐指数
2
解决办法
6643
查看次数

如何在OS X Yosemite上的Apache 2.4中安装mod_perl 2.0.9?

随着OS X 10.10 Yosemite的发布,Apple将其Apache服务器升级到2.4版本.

在发布时,mod_perl 2.0.8与Apache 2.4不兼容,mod_perl 2.0.9尚未正式发布(更多信息).

所以,Apache没有mod_perl.

我使用perl在网站上本地工作,需要安装mod_perl.

我是一名经验丰富的程序员,但我之前从未做过这样的事情,只有我的主机才能工作.我不介意花一些时间来解决这个问题,但我承担不起我本地服务器的费用.

如何在OS X Yosemite上安装mod_perl?

子问题:

  • 我应该安装哪个版本?
  • 将其下载到安装位置或其他地方?
  • 我在哪里安装它?
  • 还有其他需要事先安装的依赖项吗?
  • 我是否必须重新创建apache安装或mod_perl安装是否自包含?

我在bash方面经验丰富,使用终端很舒服.

apache perl mod-perl osx-yosemite

11
推荐指数
3
解决办法
7753
查看次数

SSO - 使用Apache获取AD用户名

我在Debian 8上运行PHP 5.6.17和Apache 2.4.10.

我想$_SERVER['REMOTE_USER']用Windows用户名填充PHP变量,如果用户名在我的数据库中,则登录用户.我对此方法涉及的安全风险感到满意,因为这只会暴露在本地网络上.

这是我在Apache vhost定义中所做的:

<LocationMatch "/login/ssologin">
    PerlAuthenHandler Apache2::AuthenNTLM
    AuthBasicAuthoritative on

    AuthType ntlm
    AuthName "hello"

    Require valid-user

    PerlAddVar ntdomain  "my.local"
    PerlSetVar defaultdomain my.local
    PerlSetVar splitdomainprefix 1
    PerlSetVar ntlmauthoritative off
    PerlSetVar ntlmdebug 1
</LocationMatch>
Run Code Online (Sandbox Code Playgroud)

我将URL放入Internet Explorer中的受信任站点,但仍然提示我进行基本身份验证.

我错过了什么?

我唯一的目标是获取Windows会话的用户名.还有另一种更简单的方法吗?

php apache ntlm mod-perl

11
推荐指数
1
解决办法
995
查看次数