歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> PERL編程

以非超級用戶身份安裝 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;多個。




Copyright © Linux教程網 All Rights Reserved