richter 00/08/08 22:11:07 Modified: embperl Faq.pod.1.html Faq.pod.cont.html Log: Embperl Webpages - Changes Revision Changes Path 1.12 +118 -0 modperl-site/embperl/Faq.pod.1.html Index: Faq.pod.1.html =================================================================== RCS file: /home/cvs/modperl-site/embperl/Faq.pod.1.html,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- Faq.pod.1.html 2000/05/02 04:42:18 1.11 +++ Faq.pod.1.html 2000/08/09 05:11:04 1.12 @@ -33,6 +33,7 @@ <LI><A href="Faq.pod.1.html#Embperl_on_SCO_Unix">Embperl on SCO Unix</A> <LI><A href="Faq.pod.1.html#Embperl_and_mod_perl_on_AIX">Embperl and mod_perl on AIX </A> <LI><A href="Faq.pod.1.html#Embperl_does_not_write_to_the_lo">Embperl does not write to the logfile, because of missing permissions</A> + <LI><A href="Faq.pod.1.html#Is_it_possible_to_install_EmbPer">Is it possible to install EmbPerl into a private directory on my Unix/Linux Internet Service Provider account of which I have no root privilege?</A> </UL> <hr> <P> @@ -344,6 +345,123 @@ <P> The current solutions is to write something to the log, before Apache changes it's user (i.e. in the startup.pl) + +<P> +<HR> +<H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Is_it_possible_to_install_EmbPer">Is it possible to install EmbPerl into a private directory on my Unix/Linux Internet Service Provider account of which I have no root privilege?</A></H2> +<P> +Like any other Perl module it can. Read ``perldoc ExtUtils::MakeMaker'', to +see which parameters are needed for Makefile.PL to change the installation +directory. Additionally, you have to change the <CODE>@INC</CODE> path to +contain your private directory and possibly paths to other object files. + +<P> +Here are the brief details: + +<P> +<STRONG>Requirements</STRONG>: + +<UL> +<LI><STRONG><A NAME="item_At">At least Perl 5.004_04</A></STRONG> +<LI><STRONG><A NAME="item_cc">cc or gcc (your isp must give you access to the gcc compiler)</A></STRONG> +<LI><STRONG><A NAME="item_URI">URI</A></STRONG> +<LI><STRONG><A NAME="item_MIME">MIME::Base64</A></STRONG> +<LI><STRONG><A NAME="item_HTML">HTML::Parser</A></STRONG> +<LI><STRONG><A NAME="item_HTML">HTML::HeadParser</A></STRONG> +<LI><STRONG><A NAME="item_Digest">Digest::MD5</A></STRONG> +<LI><STRONG><A NAME="item_libnet">libnet</A></STRONG> +<LI><STRONG><A NAME="item_libwww">libwww</A></STRONG> +<LI><STRONG><A NAME="item_File">File::Spec (I believe you may have to install this too if you are using Perl 5.004_04 as it may not be a standard module)</A></STRONG> +</UL> +<P> +<STRONG>Direction</STRONG>: + +<UL> +<LI><STRONG><A NAME="item_Get">Get your copy of EmbPerl (HTML-Embperl-x.x.tar.gz)</A></STRONG> +<LI><STRONG><A NAME="item__tar_xvzf_HTML_Embperl_x_x_tar">% tar -xvzf HTML-Embperl-x.x.tar.gz</A></STRONG> +<LI><STRONG><A NAME="item__cd_HTML_Embperl_x_x">% cd HTML-Embperl-x.x</A></STRONG> +<LI><STRONG><A NAME="item__perl_Makefile_PL_PREFIX_to_yo">% perl Makefile.PL PREFIX=/to/your/private/dir</A></STRONG> +<LI><STRONG><A NAME="item__make">% make</A></STRONG> +<LI><STRONG><A NAME="item__make_test">% make test</A></STRONG> +<LI><STRONG><A NAME="item__make_install">% make install</A></STRONG> +</UL> +<P> +Replace /to/your/private/dir with the path to the directory you want the +module to be placed in. Now preface your CGI scripts with something like +this: + +<P> +[Alternative 1] + +<P> +<PRE> #!/usr/bin/perl -wT + use CGI::Carp qw( fatalsToBrowser ); #recommend using this to report errors on die or warn to browser + + use lib '/to/your/private/dir/lib'; #for <A HREF="FILE::Spec">FILE::Spec</A> + use lib '/to/your/private/dir/'; #to find Embperl + use lib '/to/your/private/dir/i386-linux/auto/HTML/Embperl'; #to find Embperl compiled stuff + + #if for some very weird reason the above 'use lib' pragma directive doesn't work, see Alternative 2 + + use HTML::Embperl; + + #your code below ... +</PRE> +<P> +[Alternative 2] + +<P> +<PRE> #!/usr/bin/perl -wT + use CGI::Carp qw( fatalsToBrowser ); #recommend using this to report errors on die or warn to browser + + BEGIN { + unshift @INC, '/to/your/private/dir/lib'; #for <A HREF="FILE::Spec">FILE::Spec</A> + unshift @INC, '/to/your/private/dir/'; #to find Embperl + unshift @INC, '/to/your/private/dir/i386-linux/auto/HTML/Embperl'; #to find Embperl compiled stuff + } + + use HTML::Embperl; + + #your code below ... +</PRE> +<P> +When you make test, you may encounter superfluous warnings, you may want to +change the test.pl that ships with EmbPerl from + +<P> +<PRE> BEGIN + { + $fatal = 1 ; +</PRE> +<P> +to + +<P> +<PRE> BEGIN + { + unshift @INC, '/to/your/private/dir/lib'; + $fatal = 1 ; + ... +</PRE> +<P> +because the test.pl may not be able to find FILE::Spec if you have it +installed on a private directory for Perl 5.004_04. + +<P> +Do something similar to the important file embpcgi.pl as you do for all +your CGI scripts, like modifying the <CODE>@INC</CODE> as shown above, to +allow perl to find in particular the EmbPerl shared obj files... + +<P> +And when you invoke your CGI scripts like so, + +<P> +<A +HREF="http://www.yourdomain.com/cgi-bin/embpcgi.pl/templateFiles/myNifty.epl">http://www.yourdomain.com/cgi-bin/embpcgi.pl/templateFiles/myNifty.epl</A> + + +<P> +the script should work. <p>[<a href="index.html">HOME</a>] [<a href="Faq.pod.cont.html">CONTENT</a>] [<a href="Faq.pod.cont.html">PREV (FAQ - Content)</a>] [<a href="Faq.pod.2.html">NEXT (Common Problems)</a>] <br> <font color="#808080">___________________________________________________________________________________<br> 1.14 +1 -0 modperl-site/embperl/Faq.pod.cont.html Index: Faq.pod.cont.html =================================================================== RCS file: /home/cvs/modperl-site/embperl/Faq.pod.cont.html,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- Faq.pod.cont.html 2000/05/02 04:42:19 1.13 +++ Faq.pod.cont.html 2000/08/09 05:11:05 1.14 @@ -46,6 +46,7 @@ <LI><A href="Faq.pod.1.html#Embperl_on_SCO_Unix">Embperl on SCO Unix</A> <LI><A href="Faq.pod.1.html#Embperl_and_mod_perl_on_AIX">Embperl and mod_perl on AIX </A> <LI><A href="Faq.pod.1.html#Embperl_does_not_write_to_the_lo">Embperl does not write to the logfile, because of missing permissions</A> + <LI><A href="Faq.pod.1.html#Is_it_possible_to_install_EmbPer">Is it possible to install EmbPerl into a private directory on my Unix/Linux Internet Service Provider account of which I have no root privilege?</A> </UL> <LI><A href="Faq.pod.2.html#Common_Problems">Common Problems</A>