【问题标题】:Issue while compiling apache2 with mod_perl使用 mod_perl 编译 apache2 时出现问题
【发布时间】:2018-03-24 17:57:13
【问题描述】:
perl Makefile.PL MP_USE_STATIC=1 \
MP_AP_PREFIX=/tmp/https2.2.34 \
MP_AP_CONFIGURE=“—with-mpm=prefork \
—prefix=/tmp/apache-2.2.34 \
-enable-modules=‘ssl rewrite info alias auth_basic usertrack so’”

/tmp/mod_perl-2.0.10/Apache-Reload/Makefile.PL 评估错误:在 Apache-Test/lib/TestRun.pm 第 1100 行使用未初始化的值替代 (s///)。

Os: sun Os 5.10 sun4v sparc SUNW,T5240
cc - /bin/cc
make - /usr/CORE/bin/make - GNU make 3.80
Perl - /bin/perl - v5.8.4
Apache - 2.2.34
Mod_perl - 2.0.10

【问题讨论】:

  • 你真的输入了带有花引号的命令吗?
  • 是的。我用引号输入了
  • 不,我的意思是 curly 引号 -- 例如, 而不是 "
  • 对不起,我不知道弯引号是什么意思。我用了双引号。堆栈溢出会改变字体,这就是它看起来如此的原因。

标签: perl compiler-errors apache2 mod-perl2


【解决方案1】:

看起来评估失败是因为来自 undef 值的致命警告。

您能在 loc 1100Apache-Test 中试用此补丁并报告输出吗?

索引:lib/Apache/TestRun.pm

my %args = @Apache::TestMM::Argv;
while (my($k, $v) = each %args) {
  unless (defined $v) {
      die "key $k has no value";
  }
  $v =~ s/\|/\\|/g;
  $body .= "\n\$Apache::TestConfig::Argv{'$k'} = q|$v|;\n";
}

如果显示key apxs has no value,则表示apxs模块未安装或脚本无法找到apxs模块的安装路径。

要检查是否安装了apxs module,请运行以下命令

which apxs --> 显示安装路径

如果上面的命令没有显示任何内容,则表示它没有安装,所以你可以通过运行以下命令来安装它

sudo apt-get install apache2-dev

现在再次运行which apxs 命令并检查它的安装位置,很可能会显示/usr/bin/apxs

现在运行 Makefile.PL 并添加以下行

MP_APXS=/usr/bin/apxs

所以命令应该是这样的

perl Makefile.PL MP_APXS=/usr/bin/apxs

现在它应该可以正常运行,没有任何中断。

【讨论】:

  • 错误:键 apxs 没有值
  • 我认为您的系统中没有安装apxs。您是否安装了apxs module,如果没有安装follow this Q&A
  • 我没有安装 apxs。如果没记错的话,Apxs 就是 apache xtension。我正在尝试使用静态 mod_perl 编译 apache。所以xs应该和apache一起编译吧
  • 它是一个单独的包,属于apache开发包。
  • MP_APXS 和 MP_AP_PREFIX 互斥
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-08
  • 2013-09-22
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多