php.ini problem

Need help installing PHP, configuring a script, or configuring a server? Then come on in and post your questions! We'll try to help the best we can!

Moderator: General Moderators

Post Reply
tk89121
Forum Newbie
Posts: 3
Joined: Sat Jul 29, 2006 8:27 pm

php.ini problem

Post by tk89121 »

I am trying to change some settings in my php.ini file. The whole file can be found here
http://code.bulix.org/1y87y7-11506

Ive only changed two things
display_errors = On
magic_quotes_gpc = On

The problem is neither seem to work when I run my scripts. Ive restarted apache, as well as my box trying to get php to reflect the changes.

Ive checked the phpinfo() and it says that the php.ini file is located in
etc/php.ini

This is the one that i have been editing, and the one that is posted on code.bulix

Ive also tried creating an htaccess with
php_value display_errors 1

in it but that didnt work either, can someone please help me ive been at this for hours and im at wits end
jamiel
Forum Contributor
Posts: 276
Joined: Wed Feb 22, 2006 5:17 am
Location: London, United Kingdom

Post by jamiel »

Are your setting changes reflected in phpinfo();
tk89121
Forum Newbie
Posts: 3
Joined: Sat Jul 29, 2006 8:27 pm

Post by tk89121 »

no the changes dont show up
bdlang
Forum Contributor
Posts: 395
Joined: Tue May 16, 2006 8:46 pm
Location: Ventura, CA US

Post by bdlang »

Have you checked your apache server log to see if there is an error loading PHP?
This is your own server? What OS/Version? Is PHP installed by source or package?
Is the PHP install a part of your Apache install or seperate?
What permissions are on the php.ini file?
Where is the PHP install? '/usr/local'? Should the php.ini file be in /usr/local/etc/? or /etc/? or even /usr/local/php/etc/?

What specifically are you trying to do that can't be done with the following in a script:

Code: Select all

ini_set('display_errors', 1);
if ( !get_magic_quotes_gpc() ) {
    $_REQUEST= array_map('addslashes', $_REQUEST);
}
Yes, I realize these are hacks to perform a specific function (and you should really take a hard look at NOT using magic quotes but instead escaping all data with a specific function, especially if that data is headed towards a database).
User avatar
Ambush Commander
DevNet Master
Posts: 3698
Joined: Mon Oct 25, 2004 9:29 pm
Location: New Jersey, US

Post by Ambush Commander »

Please run Feyd's diagnostic script and tell us the results:

Code: Select all

<?php

$neg = array(0, false, '', null, 'off');
$ve = phpversion();
$os = PHP_OS;
$er = intval(error_reporting());
$rg = (in_array(strtolower(ini_get('register_globals')), $neg) ? 'Off' : 'On');
$de = (in_array(strtolower(ini_get('display_errors')), $neg) ? 'Off' : 'On');
$so = (in_array(strtolower(ini_get('short_open_tag')), $neg) ? 'Off' : 'On');
$le = '';
$cli = (php_sapi_name() == 'cli');
$eol = ($cli ? "\n" : "<br />\n");

$gle = get_loaded_extensions();
$rows = array();
$wide = 4;
$j = count($gle);
$pad = $wide - $j % $wide;
$len = max(array_map('strlen', $gle));
$func = create_function('$a', 'return str_pad($a, ' . intval($len) . ');');
$gle = array_map($func, $gle);
for($i = 0; $i < $j; $i += $wide)
{
    $le .= '   ' . implode('   ', array_slice($gle, $i, $wide)) . "\n";
}
if ($cli)
{
     $le = $eol . $le;
}
else
{
 $le = '<pre>' . $le . '</pre>';
}

$ec = array(
   'E_STRICT' => 2048, 'E_ALL' => 2047, 'E_USER_NOTICE' => 1024,
   'E_USER_WARNING' => 512, 'E_USER_ERROR' => 256, 'E_COMPILE_WARNING' => 128,
   'E_COMPILE_ERROR' => 64, 'E_CORE_WARNING' => 32, 'E_CORE_ERROR' => 16,
   'E_NOTICE' => 8, 'E_PARSE' => 4, 'E_WARNING' => 2, 'E_ERROR' => 1,
);

$e = array();
$t = $er;
foreach ($ec as $n => $v)
{
   if (($t & $v) == $v)
   {
      $e[] = $n;
      $t ^= $v;
   }
}
$er = $er . ' (' . implode(' | ', $e) . ')';

if (!$cli)
{
  echo '<html><head><title>quick info</title></head><body>' . "\n";
}

echo 'PHP Version: ' . $ve . $eol;
echo 'PHP OS: ' . $os . $eol;
echo 'Error Reporting: ' . $er . $eol;
echo 'Register Globals: ' . $rg . $eol;
echo 'Short Tags: ' . $so . $eol;
echo 'Display Errors: ' . $de . $eol;
echo 'Loaded Extensions:' . $le . $eol;

if (!$cli)
{
  echo '</body></html>' . "\n";
}

?>
Furthermore, if PHP is installed as an Apache module, you will need to restart Apache before the changes go into effect.
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Code: Select all

display_errors = On
magic_quotes_gpc = On
Both of these can be manipulated code-side. Are you sure your scripts are changing these settings at run time?
tk89121
Forum Newbie
Posts: 3
Joined: Sat Jul 29, 2006 8:27 pm

Post by tk89121 »

This is the output of the provided script

Code: Select all

PHP Version: 4.3.9
PHP OS: Linux
Error Reporting: 2047 (E_ALL)
Register Globals: Off
Short Tags: On
Display Errors: Off
Loaded Extensions:

   yp               xml              wddx             tokenizer     
   sysvshm          sysvsem          standard         sockets       
   shmop            session          pspell           posix         
   pcre             overload         mime_magic       iconv         
   gmp              gettext          ftp              exif          
   dio              dbx              dba              curl          
   ctype            calendar         bz2              bcmath        
   zlib             openssl          apache2handler   ldap          
   mysql
As for not using magic quotes, I agree that not using them is the better way to go but that is not an option for me. Furthermore there are other settings in my php.ini file that i would like to change.

My php.ini file is located in /etc as reported by php_info.

I already have restarted apache as well as the box multiple times

Thank you for your help so far in trying to resolve this problem
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

You may not be working in the proper php.ini. If you say you turned error_reporting on then you are in the wrong php.ini because the diagnostic says otherwise.
Post Reply