Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

Вы можете использовать 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 script из CLI, возможно, что будет использован другой файл php.ini, чем если его запускает сервер (например, nginx или apache).

Другие параметры:

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

Ответ 2

php --ini

Для веб-сервера-SAPI используйте 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

Ответ 3

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

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

$ php -i | grep "Configuration File"

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

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

Ответ 4

Вы должны использовать 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 site

Ответ 5

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

<?php
phpinfo();
?>

Затем найдите

Loaded Configuration File

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

Ответ 6

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

<?php

phpinfo();

?>

Ответ 7

Как уже упоминалось, "find / -name php.ini" поможет получить все файлы php.ini. Возможно, тот, который вы редактируете, может быть не тем, с которого сервер рисует команду! Я нашел php.ini для 3 разных версий php на моем сервере и сразу же получил исправление.