Some server (hosting) providers choose to disable the PHP function phpinfo() for security reasons or say vulnerability in PHP 5.3 CVE-2014-4721, because it displays information which can be used to compromise the server that your site is running on. phpinfo()
outputs almost every information about PHP’s configuration, such as the values of PHP directives, loaded extensions and environment variables.
In cases where phpinfo() is disabled, debugging problems in PHP is much more difficult. But, even though phpinfo() is disabled, you can still find that information using php’s core functions:
<?php //PHP directives echo ini_get(upload_max_filesize); // 2M //Extensions/modules print_r(get_loaded_extensions()); //Environment variables print_r($_ENV); //PHP or extension version echo phpversion(); // 5.3.26 echo phpversion('pdo_mysql'); // 1.0.2 ?>
In case you have SSH access to the server, “php -i
” can also be used to get PHP configuration settings. For example, to get the configuration for the PDO – MySQL extension:
$ php -i|grep pdo_mysql
Or to get the version of PHP:
$ php -v
Though you can get lot of information without need of enabling phpinfo() but still if you want to enable it, learn “How to Enable and disable phpinfo()“.
One reply on “How to debug if phpinfo() is Disabled ?”
[…] Considering you don’t have access to your server’s php.ini file (most likely case), you may be able to create your own php.ini file and change the disable_functions directive that way. If that doesn’t work, learn “How to debug php application with phpinfo() disabled ?” […]