Re: Current working directory always /

2008-05-23 Thread Perrin Harkins
On Thu, May 22, 2008 at 11:37 PM, Foo JH [EMAIL PROTECTED] wrote:
 To conclude, I can't agree with your statement
 that people don't use threads.

I disagree with that statement too.  What I actually said was that
most people don't use threads (since they are on Linux) and that
people who don't use threads don't need to worry about them when
writing internal code they don't plan to distribute.  Of course Win32
users will run threads and will need to write all of their code with
threads in mind.

- Perrin


Re: Current working directory always /

2008-05-22 Thread william
On 5/21/08, Perrin Harkins [EMAIL PROTECTED] wrote:
 On Wed, May 21, 2008 at 10:28 AM, Philip M. Gollucci
  [EMAIL PROTECTED] wrote:
   You should almost always use full paths to files, think of threads.


 This is true in a module you plan to distribute on CPAN, but for local
  use you typically don't need to think of threads because most people
  will not use them.  There are arguments you could make that full paths
  increase security though.


  - Perrin



Btw, could you tell me how does full paths increase security ? Thanks


Re: Current working directory always /

2008-05-22 Thread Perrin Harkins
On Thu, May 22, 2008 at 5:50 AM, william [EMAIL PROTECTED] wrote:
 Btw, could you tell me how does full paths increase security ?

It prevents some attacks based on tricking your application into
working on different files.  If you don't assume a certain working
directory, you won't be compromised if someone finds a way to change
it.

Using absolute paths is pretty common advice, e.g.:
http://advosys.ca/papers/web-security.html#absolute

- Perrin


Re: Current working directory always /

2008-05-22 Thread Foo JH

Hello Perrin,

I would think that threads are more important to Win32 Perlies than 
their Linux counterparts. To me, I use threads as often as I can to 
maximise performance and scalability. To conclude, I can't agree with 
your statement that people don't use threads.



william wrote:

On 5/21/08, Perrin Harkins [EMAIL PROTECTED] wrote:
  

On Wed, May 21, 2008 at 10:28 AM, Philip M. Gollucci
 [EMAIL PROTECTED] wrote:
  You should almost always use full paths to files, think of threads.


This is true in a module you plan to distribute on CPAN, but for local
 use you typically don't need to think of threads because most people
 will not use them.  There are arguments you could make that full paths
 increase security though.


 - Perrin





Btw, could you tell me how does full paths increase security ? Thanks
  




Current working directory always /

2008-05-21 Thread william
Hello,
It took me hours just to notice that my current working directory of
mod_perl2 always appear as /

Alias /modperl/ /var/www/modperl/
Location /modperl/
  SetHandler perl-script
  PerlResponseHandler ModPerl::Registry
  PerlOptions +ParseHeaders
  Options +ExecCGI
  Order allow,deny
  Allow from all
/Location


But either I place my script at /var/www/modperl/test.pl OR
/var/www/modperl/directory/test.pl
use CGI qw(:standard);
print header;

use Cwd;
print getcwd();


These always print out /. I have some modules living in my working
directory how can I have the directory working as like no using the
mod_perl2 before ? Thanks


Re: Current working directory always /

2008-05-21 Thread Fred Moyer

william wrote:

Hello,
It took me hours just to notice that my current working directory of
mod_perl2 always appear as /


See slide 77 and on:

http://gozer.ectoplasm.org/Talks/mod_perl-2.0-from-cgi-fast.pdf

Specifically slide 81 looks like it addresses this issue.

Try adding:

require “/var/www/modperl/directory/test.pl;

to your cgi script.

Hope that helps.



Alias /modperl/ /var/www/modperl/
Location /modperl/
  SetHandler perl-script
  PerlResponseHandler ModPerl::Registry
  PerlOptions +ParseHeaders
  Options +ExecCGI
  Order allow,deny
  Allow from all
/Location


But either I place my script at /var/www/modperl/test.pl OR
/var/www/modperl/directory/test.pl
use CGI qw(:standard);
print header;

use Cwd;
print getcwd();


These always print out /. I have some modules living in my working
directory how can I have the directory working as like no using the
mod_perl2 before ? Thanks



--
Red Hot Penguin Consulting LLC
mod_perl/PostgreSQL consulting and implementation
http://www.redhotpenguin.com/


Re: Current working directory always /

2008-05-21 Thread william
On Wed, May 21, 2008 at 4:29 PM, Fred Moyer [EMAIL PROTECTED] wrote:
 william wrote:

 Hello,
 It took me hours just to notice that my current working directory of
 mod_perl2 always appear as /

 See slide 77 and on:

 http://gozer.ectoplasm.org/Talks/mod_perl-2.0-from-cgi-fast.pdf

 Specifically slide 81 looks like it addresses this issue.

 Try adding:

 require /var/www/modperl/directory/test.pl;

 to your cgi script.

 Hope that helps.


 Alias /modperl/ /var/www/modperl/
 Location /modperl/
  SetHandler perl-script
  PerlResponseHandler ModPerl::Registry
  PerlOptions +ParseHeaders
  Options +ExecCGI
  Order allow,deny
  Allow from all
 /Location


 But either I place my script at /var/www/modperl/test.pl OR
 /var/www/modperl/directory/test.pl
 use CGI qw(:standard);
 print header;

 use Cwd;
 print getcwd();


 These always print out /. I have some modules living in my working
 directory how can I have the directory working as like no using the
 mod_perl2 before ? Thanks


 --
 Red Hot Penguin Consulting LLC
 mod_perl/PostgreSQL consulting and implementation
 http://www.redhotpenguin.com/


Thanks, I also found the same and better solution using ModPerl::RegistryPrefork
http://perl.apache.org/docs/2.0/api/ModPerl/RegistryPrefork.html

I don't know why they don't just recommend using
ModPerl::RegistryPrefork instead of ModPerl::Registry , that could
save a lot of other people's trouble. But there must be a reason that
I don't know.
Thanks.


Re: Current working directory always /

2008-05-21 Thread Torsten Foertsch
On Wed 21 May 2008, william wrote:
 I don't know why they don't just recommend using
 ModPerl::RegistryPrefork instead of ModPerl::Registry , that could
 save a lot of other people's trouble. But there must be a reason that
 I don't know.

because it won't work with a threaded MPM.

Torsten

--
Need professional mod_perl support?
Just hire me: [EMAIL PROTECTED]


Re: Current working directory always /

2008-05-21 Thread william
On Wed, May 21, 2008 at 5:26 PM, Torsten Foertsch
[EMAIL PROTECTED] wrote:
 On Wed 21 May 2008, william wrote:
 I don't know why they don't just recommend using
 ModPerl::RegistryPrefork instead of ModPerl::Registry , that could
 save a lot of other people's trouble. But there must be a reason that
 I don't know.

 because it won't work with a threaded MPM.

 Torsten

 --
 Need professional mod_perl support?
 Just hire me: [EMAIL PROTECTED]


Sigh...Even ModPerl::RegistryPrefork does not work as what I want, why
do they say Run unaltered CGI scripts under mod_perl when it is
working differently with CGI ?

/var/www/modperl/Dir/Test.pm
package Dir::Test;

use Cwd;
use Storable;

sub mygetcwd()
{
open(FILE, 'textfile') || die $!; #No such file or directory at
/var/www/modperl//Dir/Test.pm line 8.\n
print FILE;
print cwd; #The result is /var/www/modperl
}

1;

/var/www/modperl/Dir/textfile
Hello world

/var/www/modperl/test.pl
use CGI qw(:standard);
print header;

use Dir::Test;
Dir::Test::mygetcwd();


Because the working directory is always the directory of the start of
execution file /var/www/modperl .So why can't I use the relative
directory , it only works if I use open(FILE, 'Dir/textfile');

Thanks.


Re: Current working directory always /

2008-05-21 Thread Perrin Harkins
On Wed, May 21, 2008 at 7:52 AM, william [EMAIL PROTECTED] wrote:
 Sigh...Even ModPerl::RegistryPrefork does not work as what I want, why
 do they say Run unaltered CGI scripts under mod_perl when it is
 working differently with CGI ?

 /var/www/modperl/Dir/Test.pm
 package Dir::Test;

Under normal CGI, the cwd will be the directory that the script was
found in, not the directory of the currently executing module.  This
is the same behavior.

- Perrin


Re: Current working directory always /

2008-05-21 Thread Philip M. Gollucci

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

william wrote:
| /var/www/modperl/Dir/Test.pm
| package Dir::Test;
|
| use Cwd;
| use Storable;
|
| sub mygetcwd()
| {
|   open(FILE, 'textfile') || die $!; #No such file or directory at
| /var/www/modperl//Dir/Test.pm line 8.\n
|   print FILE;
|   print cwd; #The result is /var/www/modperl
| }
|
| 1;
You should almost always use full paths to files, think of threads.


- --
- 
Philip M. Gollucci ([EMAIL PROTECTED])
o:703.549.2050x206
Senior System Admin - Riderway, Inc.
http://riderway.com / http://ridecharge.com
1024D/DB9B8C1C B90B FBC3 A3A1 C71A 8E70  3F8C 75B8 8FFB DB9B 8C1C

Work like you don't need the money,
love like you'll never get hurt,
and dance like nobody's watching.

-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.8 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFINDFwdbiP+9ubjBwRArraAJ4gIWKyxD17Yiqjn71FRF4jOGicPACdFd6F
kZWFcNaE/JkhSjcldojVrQY=
=XfnH
-END PGP SIGNATURE-


Re: Current working directory always /

2008-05-21 Thread Perrin Harkins
On Wed, May 21, 2008 at 10:28 AM, Philip M. Gollucci
[EMAIL PROTECTED] wrote:
 You should almost always use full paths to files, think of threads.

This is true in a module you plan to distribute on CPAN, but for local
use you typically don't need to think of threads because most people
will not use them.  There are arguments you could make that full paths
increase security though.

- Perrin