php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #36716 php.ini not found in scriptdirectory see Bug #33882
Submitted: 2006-03-13 14:19 UTC Modified: 2006-03-20 13:49 UTC
From: schwarz at power-netz dot de Assigned:
Status: Not a bug Package: CGI/CLI related
PHP Version: 5.1.2 OS: linux 2.4.32
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: schwarz at power-netz dot de
New email:
PHP Version: OS:

 

 [2006-03-13 14:19 UTC] schwarz at power-netz dot de
Description:
------------
php 5.1.2 does not search in /home/user/public_html/xxx/
for the php.ini if the script lies i.e. here 
/home/user/public_html/xxx/script.php

Same as bug #33882 from 2005

Notes:

We have renamed the php-cgi.ini to php5-cgi.ini to 
be able to use php4 and php5 on the same system.
Source has been changed since 5.0.0 and worked up to/including  
5.0.3 without any problems.


Expected result:
----------------
bash-2.04# pwd

/home/benderircde/public_html               

bash-2.04# strace php5 /home/benderircde/public_html/php5/info.php 2>&1 | grep php5-cgi.ini

open("/home/benderircde/public_html/php5/php5-cgi.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/apache/conf//php5-cgi.ini", O_RDONLY) = 3
lstat64("/usr/local/apache/conf/php5-cgi.ini", {st_mode=S_IFREG|0644, st_size=25282, ...}) = 0
<tr><td class="e">Configuration File (php.ini) Path </td><td class="v">/usr/local/apache/conf/php5-cgi.ini </td></tr>


Actual result:
--------------
bash-2.04# pwd

/home/benderircde/public_html               

bash-2.04# strace php5 /home/benderircde/public_html/php5/info.php 2>&1 | grep php5-cgi.ini

open("/home/benderircde/public_html/php5-cgi.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/apache/conf//php5-cgi.ini", O_RDONLY) = 3
lstat64("/usr/local/apache/conf/php5-cgi.ini", {st_mode=S_IFREG|0644, st_size=25282, ...}) = 0
<tr><td class="e">Configuration File (php.ini) Path </td><td class="v">/usr/local/apache/conf/php5-cgi.ini </td></tr>


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-03-13 19:51 UTC] tony2001@php.net
I don't quite understand: you want PHP to look for the ini file in the directory where the script is?
 [2006-03-14 09:12 UTC] schwarz at power-netz dot de
yes.. where else should the USER php.ini be searched?

Just behave like php4 or php5.0.3 :)
 [2006-03-14 09:28 UTC] tony2001@php.net
PHP4 doesn't behave this way and I doubt PHP5 will do it either, just because putting php.ini into scripts directory doesn't make any sense to me.
PHP looks for .ini in TWO directories: the directory where PHP binary is placed and the directory specified with --with-config-file-path option. Also you can use -c option when running PHP binary to specify ini file path. 
 [2006-03-14 10:16 UTC] schwarz at power-netz dot de
You are right, php4 and 5.0.3 don't seek inside 
the script dir directly. The Apache sets the current
directory to the scripts directory and php4 + 5.0.3 
try to open "./php-cgi.ini" which 5.1.2 does not 
try.

Pls see here for the difference:


bash-2.04# pwd
/home/benderircde/public_html/php5


bash-2.04# cd /home/benderircde/public_html/php5
bash-2.04# strace php5 /home/benderircde/public_html/php5/info.php 2>&1 | grep php5-cgi.ini
open("/usr/local/apache/conf//php5-cgi.ini", O_RDONLY) = 3
lstat64("/usr/local/apache/conf/php5-cgi.ini", {st_mode=S_IFREG|0644, st_size=25282, ...}) = 0
<tr><td class="e">Configuration File (php.ini) Path </td><td class="v">/usr/local/apache/conf/php5-cgi.ini </td></tr>


bash-2.04# strace php5.0.3 /home/benderircde/public_html/php5/info.php 2>&1 | grep php5-cgi.ini
open("./php5-cgi.ini", O_RDONLY)        = 3
lstat64("/home/benderircde/public_html/php5/php5-cgi.ini", {st_mode=S_IFREG|0644, st_size=339, ...}) = 0
<tr><td class="e">Configuration File (php.ini) Path </td><td class="v">/home/benderircde/public_html/php5/php5-cgi.ini </td></tr>

bash-2.04# strace php /home/benderircde/public_html/php5/info.php 2>&1 | grep php-cgi.ini
open("./php-cgi.ini", O_RDONLY)         = 3
lstat64("/home/benderircde/public_html/php5/php-cgi.ini", {st_mode=S_IFREG|0644, st_size=339, ...}) = 0
<tr><td class="e">Configuration File (php.ini) Path </td><td class="v">/home/benderircde/public_html/php5/php-cgi.ini </td></tr>
bash-2.04#
 [2006-03-16 10:50 UTC] schwarz at power-netz dot de
reconsider it.
 [2006-03-19 18:08 UTC] mike@php.net
Works fine here:

mike@honeybadger:~/development/testimonials$ strace -o t ../php/5.1/sapi/cgi/php -i >/dev/null; grep "\.ini" t; rm t;
lstat64("/home/mike/development/php/5.1/sapi/cgi/php-cgi.ini", 0xbfedf5fc) = -1 ENOENT (No such file or directory)
open("/home/mike/development/php/5.1/sapi/cgi/php-cgi.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
lstat64("/home/mike/development/testimonials/php-cgi.ini", 0xbfedf5fc) = -1 ENOENT (No such file or directory)
open("/home/mike/development/testimonials/php-cgi.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
lstat64("/home/mike/development/php/5.1/sapi/cgi/php.ini", {st_mode=S_IFLNK|0777, st_size=13, ...}) = 0
readlink("/home/mike/development/php/5.1/sapi/cgi/php.ini", "../../php.ini", 4096) = 13
lstat64("/home/mike/development/php/5.1/php.ini", {st_mode=S_IFREG|0644, st_size=103, ...}) = 0
open("/home/mike/development/php/5.1/php.ini", O_RDONLY) = 3
lstat64("/home/mike/development/php/5.1/sapi/cgi/php.ini", {st_mode=S_IFLNK|0777, st_size=13, ...}) = 0
readlink("/home/mike/development/php/5.1/sapi/cgi/php.ini", "../../php.ini", 4096) = 13
lstat64("/home/mike/development/php/5.1/php.ini", {st_mode=S_IFREG|0644, st_size=103, ...}) = 0
write(1, "Configuration File (php.ini) Pat"..., 33) = 33

 [2006-03-20 13:42 UTC] schwarz at power-netz dot de
RESOLVED would be a good status :)

The error is simple to remove :

Add a "./:" before your configure --with-config-file-path
option, like i.e. --with-config-file-path=./:/usr/local/apache/conf

Problem solved. 

If you have stated that matter in the changelogs,
we didn't see it , but if not, you should mention it.

5.0.3 :
 	 './configure' '--with-pdflib=/home/power-netz/PDFlib-Lite-6.0.0p1/bind/pdflib/c/' '--with-mysql=/usr' '--with-imap=/usr/src/imap-2002d' '--with-openssl' '--with-jpeg-dir' '--with-zlib-dir' '--enable-ftp' '--with-gd' '--with-freetype-dir=/usr/include/freetype2' '--with-png-dir' '--with-session' '--enable-trans-sid' '--enable-gd-native-ttf' '--with-ming' '--with-curl' '--with-mcrypt' '--with-mysql-sock=/opt/root/tmp/mysql.sock' '--with-imap-ssl=/usr/src/imap-2002d' '--with-config-file-path=/usr/local/apache/conf/' '--with-idn' '--enable-force-cgi-redirect'

5.1.2 :

 	 './configure' '--with-pdflib=/home/power-netz/PDFlib-Lite-6.0.0p1/bind/pdflib/c/' '--with-mysql=/usr' '--with-imap=/usr/src/imap-2002d' '--with-openssl' '--with-jpeg-dir' '--with-zlib-dir' '--enable-ftp' '--with-gd' '--with-freetype-dir=/usr/include/freetype2' '--with-png-dir' '--with-session' '--enable-trans-sid' '--enable-gd-native-ttf' '--with-ming' '--with-curl' '--with-mcrypt' '--with-mysql-sock=/opt/root/tmp/mysql.sock' '--with-imap-ssl=/usr/src/imap-2002d' '--with-config-file-path=.:/usr/local/apache/conf/' '--with-idn' '--enable-force-cgi-redirect'
 [2006-03-20 13:49 UTC] mike@php.net
No bug -> no change -> Bogus.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Wed Jul 02 14:01:36 2025 UTC