Re: Where to put my class files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Peter Lauri wrote:
I tried this, but now I get this error.

Warning: main(): open_basedir restriction in effect.
File(/home/httpd/vhosts/mydomain.com/httpsdocs/admin/../../httpdocs/classes/
orderadmin.class.php) is not within the allowed path(s):
(/home/httpd/vhosts/mydomain.com/httpsdocs:/tmp) in /home/httpd/vhosts/
mydomain.com/httpsdocs/admin/index.php on line 4

Warning:
main(/home/httpd/vhosts/mydomain.com/httpsdocs/admin/../../httpdocs/classes/
orderadmin.class.php): failed to open stream: Operation not permitted in
/home/httpd/vhosts/mydomain.com/httpsdocs/admin/index.php on line 4

Fatal error: main(): Failed opening required
'/home/httpd/vhosts/mydomain.com/httpsdocs/admin/../../httpdocs/classes/orde
radmin.class.php' (include_path='.:/usr/share/pear') in
/home/httpd/vhosts/mydomain.com/httpsdocs/admin/index.php on line 4

mydomain.com is just something I replaced the real domain name with.

What I am doing wrong?

/Peter

You're not doing anything wrong. Your host locks you into the '/home/httpd/vhosts/mydomain.com/httpsdocs/' folder so you can't include any scripts outside that directory.

The only thing you can do is ask them to adjust the open_basedir restrictions and allow you to include in the '/home/httpd/vhosts/mydomain.com/httpdocs/' directory as well.

They should be able to do this just by adding something to your apache config.

(Search www.php.net for what open_basedir does).



-----Original Message-----
From: Chris [mailto:dmagick@xxxxxxxxx] Sent: Tuesday, February 28, 2006 1:45 PM
To: Peter Lauri
Cc: php-general@xxxxxxxxxxxxx
Subject: Re:  Where to put my class files

Peter Lauri wrote:

Best group member,

I want to run the backend of the system under HTTPS for security reasons.
The pages in HTTP and HTTPS are both using the same classfiles.

Right now I have the class files in httpdocs/classes/

In the httpsdocs/admin I have a variable
$class_path='http://www.mydomain.com/classes/'; to describe where the

class

files can be found. I do this that does not generate an error:

require_once($class_path.'orderadmin.class.php');


Including them this way will have already processed the php. It's like viewing the file using a browser.


When I then do below it gives be an error.
echo OrderAdmin::getNewOrderList();

Fatal error: Undefined class name 'orderadmin' in
/home/httpd/vhosts/mydomain.com/httpsdocs/admin/order.php on line 46

When running on the localhost and with the admin in a subfolder in HTTP it
is no problems.

Where should I locate my class files so that they are visible for both

HTTP

and HTTPS? And how should I set my $class_path? I do not think my
$class_path is good enoght, because then I would not have that problem.

I have tried: $class_path='../../http/classes/';


You need to do something like:

// this gives you /home/httpd/vhosts/mydomain.com/httpsdocs/admin
$my_path = dirname(__FILE__);

// go back to the other folder.
$class_path = $my_path . '/../../httpdocs/classes/';



--
Postgresql & php tutorials
http://www.designmagick.com/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux