快捷搜索:

以非超级用户身份安装 mod_perl

就像大年夜家从曩昔的文章里看到的,mod_perl nbsp;使Apache由两个组件组成: nbsp;Perl nbsp;模块和 nbsp;Apache nbsp;本身。虽然以非超级用户权限安装Apache很简单,然则应该知道若何安装在非系统位置的Perl模块。本文我将论证几种措施来实现这个义务。

在这些例子里,我将用stas作为用户名,/home/stas作为该用户的私人目录。

安装Perl模块到选择的目录

既然不用超级用户权限,那么你就不容许安装到系统目录,象/usr/lib/perl5。你必要找到若何在你的私人目录安装这些模块的措施。这很轻易。 nbsp;

首先,你必要抉择安装这些模块到什么地方。最简单的道路便是在你的私人目录下仿照与Perl有关的根目录文件系统的移植。实际上,我们只必要两个目录: nbsp;

/home/stas/bin

/home/stas/lib

既然他们会在第一个模块被安装时自动创建,那么我们就不必创建它们。99%的文件将被拷贝到lib目录下。无意偶尔候,当一些模块跟着Perl脚本宣布的时刻会被拷贝到bin目录。假如目录不存在会被创建。

让我们安装CGI.pm包,该包包孕了一些其它CGI::*模块。平日,从CPAN库下载该包,解开该包并进入新建的目录里。

现在做一个标准的perl文件Makefile.PL去筹备Makefile.然则这个时刻让 nbsp;MakeMaker nbsp;用你的Perl安装目录,而不是缺省的。 nbsp;

% nbsp;perl nbsp;Makefile.PL nbsp;PREFIX=/home/stas

PREFIX=/home/stas nbsp;只是安装历程不合于平日的一部分。 nbsp;留意假如你不在意MakeMaker若何选择剩下的目录,或者假如你正在用一个必要显式指明所有目的目录的老版本,那么这样做: nbsp;

% nbsp;perl nbsp;Makefile.PL nbsp;PREFIX=/home/stas nbsp;

INSTALLPRIVLIB=/home/stas/lib/perl5 nbsp;

INSTALLSCRIPT=/home/stas/bin nbsp;

INSTALLSITELIB=/home/stas/lib/perl5/site_perl nbsp;

INSTALLBIN=/home/stas/bin nbsp;

INSTALLMAN1DIR=/home/stas/lib/perl5/man nbsp;

INSTALLMAN3DIR=/home/stas/lib/perl5/man3

剩下的跟平日一样: nbsp;

% nbsp;make

% nbsp;make nbsp;test

% nbsp;make nbsp;install

make nbsp;install nbsp;安装所有的文件到私人目录。留意所有损掉的目录会被自动创建,是以没有需要创建它们。

以下便是这么做的(轻细篡悛改): nbsp;

正在安装 nbsp;/home/stas/lib/perl5/CGI/Cookie.pm

正在安装 nbsp;/home/stas/lib/perl5/CGI.pm

正在安装 nbsp;/home/stas/lib/perl5/man3/CGI.3

正在安装 nbsp;/home/stas/lib/perl5/man3/CGI::Cookie.3

正在写入 nbsp;/home/stas/lib/perl5/auto/CGI/.packlist

正在追加安装信息到 nbsp;/home/stas/lib/perl5/perllocal.pod

假如你不得不用显式目的参数,那么不用单个PREFIX参数,你会发明建立一个被调用的文件很有用。

例如, nbsp;/.perl_dirs nbsp;(这里 nbsp;在我们的例子中是 nbsp;/home/stas) nbsp;的内容包孕: nbsp;

PREFIX=/home/stas nbsp;

INSTALLPRIVLIB=/home/stas/lib/perl5 nbsp;

INSTALLSCRIPT=/home/stas/bin nbsp;

INSTALLSITELIB=/home/stas/lib/perl5/site_perl nbsp;

INSTALLBIN=/home/stas/bin nbsp;

INSTALLMAN1DIR=/home/stas/lib/perl5/man nbsp;

INSTALLMAN3DIR=/home/stas/lib/perl5/man3

从现在起,任何时刻你想本地化安装Perl模块就可以这样履行: nbsp;

% nbsp;perl nbsp;Makefile.PL nbsp;`cat nbsp;/.perl_dirs`

% nbsp;make

% nbsp;make nbsp;test

% nbsp;make nbsp;install

用这个措施,你可以很轻易地维持不合Perl模块的存储。例如,你可以一个用作production nbsp;Perl,另一个用作开拓。 nbsp;

% nbsp;perl nbsp;Makefile.PL nbsp;`cat nbsp;/.perl_dirs.production`

或者 nbsp;

% nbsp;perl nbsp;Makefile.PL nbsp;`cat nbsp;~/.perl_dirs.develop`

编写你自己的脚本找到本地已安装模块

这些Perl模块平日都放在四个主要目录。为了找到这些目录,履行: nbsp;

% nbsp;perl nbsp;-V

输出包孕紧张的perl安装信息。着末你将看到: nbsp;

Characteristics nbsp;of nbsp;this nbsp;binary nbsp;(from nbsp;libperl):

Built nbsp;under nbsp;linux

Compiled nbsp;at nbsp;Apr nbsp;6 nbsp;1999 nbsp;23:34:07

@INC:

/usr/lib/perl5/5.00503/i386-linux

/usr/lib/perl5/5.00503

/usr/lib/perl5/site_perl/5.005/i386-linux

/usr/lib/perl5/site_perl/5.005

.

这向我们注解Perl特殊变量@INC的内容,这个特殊变量平日被Perl用来查找模块的。它等价于Unix nbsp;shells里的PATH情况变量,是用来查找可履行法度榜样的。

留意Perl也在.目录(代表当前目录)查找模块,这是在以上输出目录里的着末的进口路径。当然,这个例子来自5.00503版本的perl, nbsp;它安装在我的x86布局PC的Linux中。这便是为什么你看到了i386-linux和5.00503. nbsp;假如你的系统运行着不合版本的perl、操作系统、处置惩罚器或者芯片布局,那么一些目录会有不合的名字。

我也安装了perl nbsp;5.6.1版本到 nbsp;/usr/local/lib/ nbsp;,以是当我这么做: nbsp;

% nbsp;/usr/local/bin/perl5.6.1 nbsp;-V

你会看到: nbsp;

@INC:

/usr/local/lib/perl5/5.6.1/i586-linux

/usr/local/lib/perl5/5.6.1

/usr/local/lib/site_perl/5.6.1/i586-linux

/usr/local/lib/site_perl

留意这照样Linux, nbsp;然则较新的perl版本用了奔跑的处置惩罚器(所所以i586而不是i386)。这对奔跑处置惩罚器的编译优化有用,当二进制Perl扩展被创建时。

所有平台指定的文件,象已编译的C文件用XS或者SWIG去粘合Perl,应该进入类似i386-linux目录。

重点:当我们已经安装了Perl模块进入非标准目录,我们不得不让Perl知道去哪里搜索这四个目录。有两个实现措施:你可以设置PERL5LIB nbsp;情况变量或者你可以在你的脚本中改动@INC变量。

假设我们用Perl nbsp;5.00503版本,在我们的例子中目录如下: nbsp;

/home/sbekman/lib/perl5/5.00503/i386-linux

/home/sbekman/lib/perl5/5.00503

/home/sbekman/lib/perl5/site_perl/5.005/i386-linux

/home/sbekman/lib/perl5/site_perl/5.005

就象前面提到的,你能经由过程perl nbsp;-V找到确切的目录并用你自己的私人目录代替全局的perl安装基目录。

改动 nbsp;@INC nbsp;是很轻易的。最好的道路是用lib模块(编译唆使), nbsp;经由过程在你的脚本最上方加入以下代码片段,这些代码必要本地化已经安装的模块:

use nbsp;lib nbsp;qw(/home/stas/lib/perl5/5.00503/

/home/stas/lib/perl5/site_perl/5.005);

另一个道路是写代码显式改动@INC: nbsp;

BEGIN nbsp;{

unshift nbsp;@INC,

qw(/home/stas/lib/perl5/5.00503

/home/stas/lib/perl5/5.00503/i386-linux

/home/stas/lib/perl5/site_perl/5.005

/home/stas/lib/perl5/site_perl/5.005/i386-linux);

}

留意既然它们假如存在会自动加入(确切地说,当$dir/$archname/auto存在的时刻),那么用lib模块我们不必列出同等的布局指定目录。

而且,留意到两种道路都预先斟酌到@INC里被搜索的目录。这就容许你安装一个更新的模块加入你的本地库。Perl会用这个模块取代已经安装在系统库里的旧模块。

两种道路都是在编译时代改动 nbsp;@INC nbsp;的值。这个lib模块也用BEGIN块,然则是内部地。

现在,让我假设如下情景。我已经在我的本地库中安装了 nbsp;LWP nbsp;包. nbsp;现在我想安装另一个模块(例如 nbsp;mod_perl) nbsp;,这个模块有在它的首选列表中列出的 nbsp;LWP。我知道我已经安装 nbsp;LWP nbsp;,然则当我为了筹备安装的模块运行perl nbsp;Makefile.pl,我被见告我没有安装LWP。

Perl没有法子知道我们有本地已经安装的模块。所有这些都在@INC里列出的目录搜索中。既然后者包孕只有4个缺省目录(加上 nbsp;.目录),那么它弗成能找到本地安装的 nbsp;LWP nbsp;包。我们不能经由过程加入代码改动@INC来办理这个问题,而要改变PERL5LIB情况变量才能办理。假如你正在用tcsh办理交互事情,那么这样做: nbsp;

setenv nbsp;PERL5LIB nbsp;/home/stas/lib/perl5/5.00503:

/home/stas/lib/perl5/site_perl/5.005

它应该是带目录的单行,并且目录是被冒号(:)和非空格所分开。假如你是bash用户,那么这么做: nbsp;

export nbsp;PERL5LIB=/home/stas/lib/perl5/5.00503:

/home/stas/lib/perl5/site_perl/5.005

同样,写成单行。假如你用bash,那么你能经由过程反斜杆()来输入多行敕令,象这样: nbsp;

export nbsp;PERL5LIB=/home/stas/lib/perl5/5.00503:

/home/stas/lib/perl5/site_perl/5.005

因为用lib,以是假如存在,Perl自动会预先斟酌布局指定目录到 nbsp;@INC nbsp;.

当我们这么做的时刻,我们就要象曩昔那样经由过程履行perl nbsp;-V来确认@INC新设置设置设备摆设摆设的值。你应该看到 nbsp;@INC nbsp;改动的值: nbsp;

% nbsp;perl nbsp;-V

Characteristics nbsp;of nbsp;this nbsp;binary nbsp;(from nbsp;libperl): nbsp;

Built nbsp;under nbsp;linux

Compiled nbsp;at nbsp;Apr nbsp;6 nbsp;1999 nbsp;23:34:07

%ENV:

PERL5LIB=”/home/stas/lib/perl5/5.00503:

/home/stas/lib/perl5/site_perl/5.005” nbsp;

@INC:

/home/stas/lib/perl5/5.00503/i386-linux

/home/stas/lib/perl5/5.00503

/home/stas/lib/perl5/site_perl/5.005/i386-linux

/home/stas/lib/perl5/site_perl/5.005

/usr/lib/perl5/5.00503/i386-linux

/usr/lib/perl5/5.00503

/usr/lib/perl5/site_perl/5.005/i386-linux

/usr/lib/perl5/site_perl/5.005

.

当统统都如你所愿的那样事情时,加入这些敕令到 nbsp;.tcshrc nbsp;或者 nbsp;.bashrc nbsp;文件. nbsp;当下次你启动shell的时刻,情况将会为你筹备好与新的Perl一路事情。

留意,假如你设置了 nbsp;PERL5LIB nbsp;, nbsp;那么你不必在你的脚本中改变 nbsp;@INC nbsp;的值。然则假如, nbsp;举例说, nbsp;其他人 nbsp;(不想在 nbsp;shell中设置的人)想履行你的脚本,那么Perl就不能找到你本地安装的模块。最好的例子便是 nbsp;crontab nbsp;脚本,可以用不合的SHELL情况,是以,不能进行PERL5LIB的设置。

于是最好的道路便是象上面所描述的,既设置PERL5LIB情况变量又在脚本开首改动 nbsp;@INC nbsp;扩展代码。

CPAN.pm nbsp;Shell nbsp;和 nbsp;本地安装模块

CPAN.pm nbsp;shell nbsp;在处置惩罚perl模块安装和维持更新的时刻保存了大年夜量的光阴。它为我们做了这项事情,只管在首选列表中反省到的损掉模块,掏出它们并安装。以是你会想知道你是否能用 nbsp;CPAN.pm nbsp;也来维持你的本地库。

当你开始启动 nbsp;CPAN nbsp;交互Shell的时刻, nbsp;它会首先搜索用户私人设置设置设备摆设摆设文件和系统文件。当我作为stas用户被记录时,安装的两个文件会是: nbsp;

/home/stas/.cpan/CPAN/MyConfig.pm

/usr/lib/perl5/5.00503/CPAN/Config.pm

假如你的系统没有 nbsp;CPAN nbsp;Shell,那么当你第一次启动shell时,它会问你一系列问题,然后为你建立Config.pm文件。

假如你已经有一个系统设置设置设备摆设摆设,那么你应该有/usr/lib/perl5/5.00503/CPAN/Config.pm. nbsp;假如你有不合版本的Perl,那么在找文件的时刻改动路径用你的Perl的版本号。新建目录(mkdir nbsp;-p nbsp;立即新建全部路径),该目录便是本地设置设置设备摆设摆设文件将放的地方: nbsp;

% nbsp;mkdir nbsp;-p nbsp;/home/stas/.cpan/CPAN

现在复制哈系统设置设置设备摆设摆设文件到本地。 nbsp;

% nbsp;cp nbsp;/usr/lib/perl5/5.00503/CPAN/Config.pm nbsp;

/home/stas/.cpan/CPAN/MyConfig.pm

独一留下的工作是在你的本地文件改变 nbsp;.cpan nbsp;基目录到你的私人目录下。在我的机械里,我用 nbsp;/home/stas nbsp;取代 nbsp;/usr/src/.cpan nbsp;(这便是我的 nbsp;.cpan nbsp;系统目录所在地方)。我当然用perl! nbsp;

% nbsp;perl nbsp;-pi nbsp;-e nbsp;’s|/usr/src|/home/stas|’ nbsp;

/home/stas/.cpan/CPAN/MyConfig.pm

现在你已经有本地设置设置设备摆设摆设文件。当履行 nbsp;perl nbsp;Makefile.PL nbsp;的时刻,你可以奉告它你必须通报什么参数。

用你最爱好的编辑器打开该文件并调换下行: nbsp;

‘makepl_arg’ nbsp;=> nbsp;q[],

采纳: nbsp;

‘makepl_arg’ nbsp;=> nbsp;q[PREFIX=/home/stas],

现在你已经完成了设置设置设备摆设摆设。假设你作为同样的用户登岸并筹备好了本地安装(我们的例子是 nbsp;stas),象这样开始: nbsp;

% nbsp;perl nbsp;-MCPAN nbsp;-e nbsp;shell

从现在起,任何你想安装的模块都邑被本地化安装。假如你必须安装一些系统模块,那么就成为超级用户并用同样的措施进行安装。当你以超级用户登岸时,系统设置设置设备摆设摆设文件将被用而不是本地的。

假如你已经用了不光一个PREFIX变量,然后改动 nbsp;MyConfig.pm nbsp;去用他们. nbsp;例如,假如你用这些变量: nbsp;

perl nbsp;Makefile.PL nbsp;PREFIX=/home/stas nbsp;

INSTALLPRIVLIB=/home/stas/lib/perl5 nbsp;

INSTALLSCRIPT=/home/stas/bin nbsp;

INSTALLSITELIB=/home/stas/lib/perl5/site_perl nbsp;

INSTALLBIN=/home/stas/bin nbsp;

INSTALLMAN1DIR=/home/stas/lib/perl5/man nbsp;

INSTALLMAN3DIR=/home/stas/lib/perl5/man3

鄙人面一行顶用以上所有变量调换 nbsp;PREFIX=/home/stas nbsp;: nbsp;

‘makepl_arg’ nbsp;=> nbsp;q[PREFIX=/home/stas] nbsp;

于是该行变成: nbsp;

‘makepl_arg’ nbsp;=> nbsp;q[PREFIX=/home/stas nbsp;

INSTALLPRIVLIB=/home/stas/lib/perl5 nbsp;

INSTALLSCRIPT=/home/stas/bin nbsp;

INSTALLSITELIB=/home/stas/lib/perl5/site_perl nbsp;

INSTALLBIN=/home/stas/bin nbsp;

INSTALLMAN1DIR=/home/stas/lib/perl5/man nbsp;

INSTALLMAN3DIR=/home/stas/lib/perl5/man3],

假如你能在一行内放置所有以上参数,那么你可以去掉落反斜杆 nbsp;().

安装本地 nbsp;Apache

就像 nbsp;Perl nbsp;模块一样, nbsp;假如你没有权限安装文件到系统区,那么你不得欠妥地化安装它们到你的私人目录。这险些跟简单安装一样,然则你不得不运行侦听端口号大年夜于1024的办事器,由于只有root进程才能侦听小于1024的端口号。

另一个紧张的问题你必须办理的是若何把启动关闭脚本作为系统办事写入目录里。你将不得不向你的系统治理员寻求赞助。

为了本地化安装Apache, nbsp;所有你必须做的是奉告Apache源代码目录里的.configure文件应该用那些目的目录。假如你按照我的约定使你的私人目录看起来象 nbsp;/ nbsp;根目录一样,那么期望的参数将是: nbsp;

./configure—prefix=/home/stas

Apache nbsp;会用前缀来代替目的目录另外部分,而不是缺省的 nbsp;/usr/local/apache. nbsp;假如你想知道它们是什么,那么运行之前加上—show-layout nbsp;选项: nbsp;

./configure—prefix=/home/stas—show-layout

你可能想按照Apache的约定把Apache所有的文件放在 nbsp;/home/stas/apache nbsp;下: nbsp;

./configure—prefix=/home/stas/apache

假如你想改动一些或者所有自动创建的目录的名字: nbsp;

./configure—prefix=/home/stas/apache nbsp;

—sbindir=/home/stas/apache/sbin

—sysconfdir=/home/stas/apache/etc

—localstatedir=/home/stas/apache/var nbsp;

—runtimedir=/home/stas/apache/var/run nbsp;

—logfiledir=/home/stas/apache/var/logs nbsp;

—proxycachedir=/home/stas/apache/var/proxy

就这些!

而且记着你只能在属于你的用户和用户组下运行该脚本。 nbsp;你必须在httpd.conf里设置相宜的值给用户和组项。

手动安装本地 nbsp;mod_perl nbsp;启用 nbsp;Apache

既然我们知道若何分开安装Apache和Perl模块,那就让我们来看看若何在我们的私人目录安装mod_perl启用Apache。这险些跟分开安装一样简单,然则有一个问题你必要知道的,这在本部分的着末我会提到。

假设你解包 nbsp;Apache nbsp;和 nbsp;mod_perl nbsp;源代码到 nbsp;/home/stas/src nbsp;目录下,就像这样: nbsp;

% nbsp;ls nbsp;/home/stas/src

/home/stas/src/apache_x.x.x

/home/stas/src/mod_perl-x.xx

这里的 nbsp;x.xx nbsp;是跟曩昔一样的版本号。你想从已安装在 nbsp;/home/stas/lib/perl5 nbsp;下的 nbsp;mod_perl nbsp;包中获得Perl模块和 nbsp;/home/stas/apache nbsp;目录下的 nbsp;Apache nbsp;文件。以下敕令是这么做的: nbsp;

% nbsp;perl nbsp;Makefile.PL nbsp;

PREFIX=/home/stas nbsp;

APACHE_PREFIX=/home/stas/apache nbsp;

APACHE_SRC=../apache_x.x.x/src nbsp;

DO_HTTPD=1 nbsp;

USE_APACI=1 nbsp;

EVERYTHING=1

% nbsp;make nbsp;&& nbsp;make nbsp;test nbsp;&& nbsp;make nbsp;install nbsp;

% nbsp;cd nbsp;../apache_x.x.x

% nbsp;make nbsp;install

假如你必要一些参数通报给 nbsp;.configure nbsp;脚本, nbsp;就像我们在曩昔的章节里看到的,那么就用 nbsp;APACI_ARGS. nbsp;例如: nbsp;

APACI_ARGS=’—sbindir=/home/stas/apache/sbin, nbsp;

—sysconfdir=/home/stas/apache/etc, nbsp;

—localstatedir=/home/stas/apache/var, nbsp;

—runtimedir=/home/stas/apache/var/run, nbsp;

—logfiledir=/home/stas/apache/var/logs, nbsp;

—proxycachedir=/home/stas/apache/var/proxy’

留意以上多行分开只事情在bash下, nbsp;tcsh用户将不得不在同一行列出所有参数。

基础上安装停止。独一留下的问题是 nbsp;@INC nbsp;变量。假如你依附 nbsp;PERL5LIB nbsp;情况变量,那么@INC nbsp;将不会被精确设置,除非你在你的启动文件中显式设置它。启动文件必须在装载任何你的本地库模块之前启动。一个更好的道路就像我们曩昔看到的,是用lib编译唆使,然则轻细有点不合的地方:我们在启动文件顶用这种措施将会影响所有在mod_perl处置惩罚下的代码将会被履行。例如: nbsp;PerlRequire nbsp;/home/stas/apache/perl/startup.pl nbsp;这里的 nbsp;startup.pl nbsp;以这样开始: nbsp;

use nbsp;lib nbsp;qw(/home/stas/lib/perl5/5.00503/

/home/stas/lib/perl5/site_perl/5.005);

留意你仍可以在脚本顶用硬编码的 nbsp;@INC nbsp;的改动, nbsp;但意识到脚本改动BEGIN块里的 nbsp;@INC, nbsp;而mod_perl nbsp;只在脚本编译的时刻才履行 nbsp;BEGIN块。结果,@INC nbsp;将会在编译今后被原始值复位,硬编码的设置将会被遗忘。

只有一个地方你可以改变“原始”值是在启动文件或者放 nbsp;

PerlSetEnv nbsp;Perl5LIB nbsp;

/home/stas/lib/perl5/5.00503/:/home/stas/lib/perl5/site_perl/5.005

到 nbsp;httpd.conf的办事器设置设置设备摆设摆设阶段, nbsp;然则后者设置假如你用 nbsp;PerlTanintcheck nbsp;设置将会被轻忽。我盼望你能这样用它。

接下来的mod_perl nbsp;设置设置设备摆设摆设和应用是一样的,就似乎你正在以超级用户身份安装mod_perl一样。

用 nbsp;CPAN.pm nbsp;进行本地安装 nbsp;mod_perl nbsp;启用 nbsp;Apache nbsp;假设你已经像文章前面所解释的设置设置设备摆设摆设 nbsp;CPAN.pm nbsp;来安装Perl模块,那么安装就简单了。

启动 nbsp;CPAN.pm nbsp;shell, nbsp;设置参数通报给 nbsp;perl nbsp;Makefile.PL nbsp;(改动例子设置得当你的必要), nbsp;然后奉告 nbsp;为你去做剩下的事: nbsp;

% nbsp;perl nbsp;-MCPAN nbsp;-eshell

cpan> nbsp;o nbsp;conf nbsp;makepl_arg nbsp;‘DO_HTTPD=1 nbsp;USE_APACI=1 nbsp;EVERYTHING=1 nbsp;

PREFIX=/home/stas nbsp;APACHE_PREFIX=/home/stas/apache’

cpan> nbsp;install nbsp;mod_perl

当你为了本地化安装用 nbsp;CPAN.pm nbsp;的时刻, nbsp;mod_perl nbsp;安装停止之后你必须确认 nbsp;makepl_arg nbsp;是否被回覆到原始值。最简单的措施是经由过程输入 nbsp;quit退出交互Shell然后从新输入。然则假如要坚持,那么下面便是假如不退出Shell就生效. nbsp;你真的想跳过这个:)

假如你想不退出Shell用CPAN继承事情,那么你必须:

1)记着 nbsp;makepl_arg nbsp;的值

2)改变它以得当你的新安装

3)构建和安装 nbsp;mod_perl

4)安装 nbsp;mod_perl nbsp;之后规复它

这是相称麻烦的义务,然则我信托 nbsp;CPAN.pm nbsp;终极会被改良,处置惩罚起来更轻易。

以是你照样跟我一路,那么就像平日一样启动 nbsp;Shell: nbsp;

% nbsp;perl nbsp;-MCPAN nbsp;-eshell

第一,读取 nbsp;makepl_arg nbsp;的值: nbsp;

cpan> nbsp;o nbsp;conf nbsp;makepl_arg

PREFIX=/home/stas

假如你设置设置设备摆设摆设CPAN.pm来本地化安装模块,那就会是象 nbsp;PREFIX=/home/stas nbsp;这样的字符串。保存这个值: nbsp;

cpan> nbsp;o nbsp;conf nbsp;makepl_arg.save nbsp;PREFIX=/home/stas

第二,设置一个新值, nbsp;mod_perl nbsp;安装进程会用到它。(你可以根据你的必要加入参数到这行或者删除) nbsp;

cpan> nbsp;o nbsp;conf nbsp;makepl_arg nbsp;‘DO_HTTPD=1 nbsp;USE_APACI=1 nbsp;EVERYTHING=1 nbsp;

PREFIX=/home/stas nbsp;APACHE_PREFIX=/home/stas/apache’

第三, nbsp;让 nbsp;为你构建和安装 nbsp;mod_perl: nbsp;

cpan> nbsp;install nbsp;mod_perl

第四, nbsp;复位makepl_arg到原始值.我们可以经由过程打印这些保存的变量值然后分配给 nbsp;makepl_arg来实现. nbsp;

cpan> nbsp;o nbsp;conf nbsp;makepl_arg.save

PREFIX=/home/stas

cpan> nbsp;o nbsp;conf nbsp;makepl_arg nbsp;PREFIX=/home/stas

不是很简明,但却是一个有效措施。你可以在一张纸条上写下这个值,而不是保存在 nbsp;makepl_arg.save, nbsp;然则这样你更可能犯差错。 nbsp;参考

Apache nbsp;网站网址: nbsp;http://www.apache.org

mod_perl nbsp;网站网址: nbsp;http://perl.apache.org nbsp;

CPAN nbsp;是 nbsp;Perl nbsp;综合典藏网的缩写(Comprehensive nbsp;Perl nbsp;Archive nbsp;Network). nbsp;主站网址是http://cpan.org/. nbsp;

天下范围内,CPAN nbsp;的镜像站点有 nbsp;100 nbsp;多个。

您可能还会对下面的文章感兴趣: