DrDamnit
asked on
PHP includes issue
PHP on Plesk / Linux
I have a custom app that I wrote and osCommerce installation.
If I want the custom app to work, I have to change php.ini's include directive to:
include_path = ".;/php/includes"
If I want the osCommerce install to work, I have to change it back to
include_path = ".:/php/includes"
The only difference is a semi colon versus a colon. How do I get them to both work at the same time?
__________________________ ____
Error Messages
-------------------------- ---------- ---------
When I have the semi colon in effect, osCommerce gives me:
Warning: main(includes/configure.ph p) [function.main]: failed to open stream: No such file or directory in /var/www/vhosts/domain.com /httpdocs/ shop/catal og/include s/applicat ion_top.ph p on line 29
Warning: main(includes/configure.ph p) [function.main]: failed to open stream: No such file or directory in /var/www/vhosts/domain.com /httpdocs/ shop/catal og/include s/applicat ion_top.ph p on line 29
Fatal error: main() [function.require]: Failed opening required 'includes/configure.php' (include_path='.;/php/incl udes') in /var/www/vhosts/domain.com /httpdocs/ shop/catal og/include s/applicat ion_top.ph p on line 29
When I have th COLON in effect, I have:
Warning: main() [function.main]: open_basedir restriction in effect. File(/php/includes/lng.php ) is not within the allowed path(s): (/var/www/vhosts/domain.co m/httpdocs :/tmp) in /var/www/vhosts/domain.com /httpdocs/ powerpanel /includes/ classes/wy sarea.clas s.php on line 16
Warning: main(lng.php) [function.main]: failed to open stream: Operation not permitted in /var/www/vhosts/domain.com /httpdocs/ powerpanel /includes/ classes/wy sarea.clas s.php on line 16
Fatal error: main() [function.require]: Failed opening required 'lng.php' (include_path='.:/php/incl udes') in /var/www/vhosts/domain.com /httpdocs/ powerpanel /includes/ classes/wy sarea.clas s.php on line 16
I have a custom app that I wrote and osCommerce installation.
If I want the custom app to work, I have to change php.ini's include directive to:
include_path = ".;/php/includes"
If I want the osCommerce install to work, I have to change it back to
include_path = ".:/php/includes"
The only difference is a semi colon versus a colon. How do I get them to both work at the same time?
__________________________
Error Messages
--------------------------
When I have the semi colon in effect, osCommerce gives me:
Warning: main(includes/configure.ph
Warning: main(includes/configure.ph
Fatal error: main() [function.require]: Failed opening required 'includes/configure.php' (include_path='.;/php/incl
When I have th COLON in effect, I have:
Warning: main() [function.main]: open_basedir restriction in effect. File(/php/includes/lng.php
Warning: main(lng.php) [function.main]: failed to open stream: Operation not permitted in /var/www/vhosts/domain.com
Fatal error: main() [function.require]: Failed opening required 'lng.php' (include_path='.:/php/incl
The semicolon is never valid in this setting. A colon is used to join two or more paths. If the custom application works with the semicolon, it needs to be altered to work using the correct format, a colon.
Hello DrDamnit,
The format of include_path is like the system's PATH environment variable: a list of directories separated with a colon in Unix or semicolon in Windows.
i.e.
in *nix include_path will be
include_path=".:/php/inclu des"
In Windows include_path will be
include_path=".;c:\php\inc ludes"
you cannot use both and this is set when PHP is installed on the machine...
HTH
!i!
The format of include_path is like the system's PATH environment variable: a list of directories separated with a colon in Unix or semicolon in Windows.
i.e.
in *nix include_path will be
include_path=".:/php/inclu
In Windows include_path will be
include_path=".;c:\php\inc
you cannot use both and this is set when PHP is installed on the machine...
HTH
!i!
The setings depends on your os. For Windows you need a ; to seperate the search pathes, on linux you must use the : to seperate the search pathes. See http://www.php.net/manual/en/function.set-include-path.php for more information
ASKER
THAT's the funny part. This is a linux box. FC4. So, when the setting is incorrect, one thing works, and when it is wrong something else works......
How do I get it so that EVERYTHING works?
How do I get it so that EVERYTHING works?
Hello DrDamnit
It might be something else causing problems... Please explain when there is problem and what php is pringins as an Error or Warning or whatever...
Because delimiter is a rule for php for a long time it is most likely the problem to be somewhere else...
Regards
!i!
It might be something else causing problems... Please explain when there is problem and what php is pringins as an Error or Warning or whatever...
Because delimiter is a rule for php for a long time it is most likely the problem to be somewhere else...
Regards
!i!
On linux you must use the :
Maybe /php/includes is the wrin path should'nt it be more: /var/www/vhosts/domain.com /php/inclu des
It depens where those global includes have been place by your webhoster and If he has added those files to the allowd dirs.
Maybe /php/includes is the wrin path should'nt it be more: /var/www/vhosts/domain.com
It depens where those global includes have been place by your webhoster and If he has added those files to the allowd dirs.
ASKER
ivostoykov:
What do you mean by pringins ? The error messages are in the original post.
hernst42:
What other information can I provide you so that we can see if I need to put the full path in there?
What do you mean by pringins ? The error messages are in the original post.
hernst42:
What other information can I provide you so that we can see if I need to put the full path in there?
Hello DrDamnit
Following message is quite descriptive... I've missed it
Warning: main() [function.main]: open_basedir restriction in effect. File(/php/includes/lng.php ) is not within the allowed path(s): (/var/www/vhosts/domain.co m/httpdocs :/tmp) in /var/www/vhosts/domain.com /httpdocs/ powerpanel /includes/ classes/wy sarea.clas s.php on line 16
This means that the serve reject access to the supplied path and the reason is given -> "not within the allowed path(s):"
regards
!i!
Following message is quite descriptive... I've missed it
Warning: main() [function.main]: open_basedir restriction in effect. File(/php/includes/lng.php
This means that the serve reject access to the supplied path and the reason is given -> "not within the allowed path(s):"
regards
!i!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
How do you use then in your code to include?
files in your basic include dir should just be called by
include ('filename.php');
Could you post an include tag from both cases? from the script.
files in your basic include dir should just be called by
include ('filename.php');
Could you post an include tag from both cases? from the script.
Because in the first case it cannot locate the file
in the second case its redirected to: /var/www/vhosts/domain.com /httpdocs: /tmp
in the second case its redirected to: /var/www/vhosts/domain.com