Как узнать, какой php.использовать ini находится?

Я ищу путь, где php.ini-файл находится на нашем сервере Linux Ubuntu, и я нашел много php.ini при выполнении команды find / -name php.ini . Так как точно узнать из php скрипта веб-страницы, где php.ini находится ?

6 ответов


можно использовать php_ini_loaded_file ()

взято из php.net:

$inipath = php_ini_loaded_file();
if ($inipath) {
    echo 'Loaded php.ini: ' . $inipath;
} else {
    echo 'A php.ini file is not loaded';
}

вы также можете проверить php_ini_scanned_files ()

кроме того, вы должны отметить, что если вы запустите PHP-скрипт из CLI, возможно, что другой php.ini файл будет использоваться, чем если сервер (т. е. nginx или apache) запускает его.

другие варианты:

  • php -i|grep 'php.ini'
  • создать info.php, который содержит <?php phpinfo(); в webroot и запустите его в своем браузере

php --ini

для веб-сервера-SAPIs используйте phpinfo()

вот некоторые примеры вывода:

bash-3.2# php --ini
Configuration File (php.ini) Path: /usr/local/php5/lib
Loaded Configuration File:         /usr/local/php5/lib/php.ini
Scan for additional .ini files in: /usr/local/php5/php.d
Additional .ini files parsed:      /usr/local/php5/php.d/10-extension_dir.ini,
/usr/local/php5/php.d/20-extension-opcache.ini,
/usr/local/php5/php.d/40-openssl.ini,
/usr/local/php5/php.d/50-extension-apcu.ini,
/usr/local/php5/php.d/50-extension-curl.ini,
/usr/local/php5/php.d/50-extension-gmp.ini,
/usr/local/php5/php.d/50-extension-imap.ini,
/usr/local/php5/php.d/50-extension-intl.ini,
/usr/local/php5/php.d/50-extension-mcrypt.ini,
/usr/local/php5/php.d/50-extension-mssql.ini,
/usr/local/php5/php.d/50-extension-pdo_pgsql.ini,
/usr/local/php5/php.d/50-extension-pgsql.ini,
/usr/local/php5/php.d/50-extension-propro.ini,
/usr/local/php5/php.d/50-extension-raphf.ini,
/usr/local/php5/php.d/50-extension-readline.ini,
/usr/local/php5/php.d/50-extension-xdebug.ini,
/usr/local/php5/php.d/50-extension-xsl.ini,
/usr/local/php5/php.d/60-extension-pecl_http.ini,
/usr/local/php5/php.d/99-liip-developer.ini

обратите внимание, что конфигурация, загруженная для PHP, когда она используется на консоли, отличается от конфигурации для веб-процесса. Большинство PHP установкам приходят с PHP.ini для apache и другой для CLI.

чтобы узнать, какой файл конфигурации используется для консольных команд, используйте

$ php -i | grep "Configuration File"

чтобы узнать, какой файл конфигурации используется для веб-процессов, выполните следующие действия

  1. создать информационный файл [желательно в корне папка]
  2. содержимое этого файла должно быть <?php phpinfo(); ?>
  3. Ctrl+F и поиск "файла конфигурации"

вы должны использовать метод php php_ini_loaded_file (только после php 5.2.4)

php_ini_loaded_file-получить путь к загруженному php.ini-файл

пример веб-сайта php:

<?php
$inipath = php_ini_loaded_file();

if ($inipath) {
    echo 'Loaded php.ini: ' . $inipath;
} else {
    echo 'A php.ini file is not loaded';
}
?>

источник: php сайт


создайте простую страницу, и она будет указана там!

<?php

phpinfo();

?>

просто поместите файл следующим образом:

<?php
phpinfo();
?>

тогда ищите

Loaded Configuration File

вы увидите полный путь для php.ini-файл