Как узнать, какой 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"
чтобы узнать, какой файл конфигурации используется для веб-процессов, выполните следующие действия
- создать информационный файл [желательно в корне папка]
- содержимое этого файла должно быть
<?php phpinfo(); ?>
-
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();
?>
тогда ищите
Loaded Configuration File
вы увидите полный путь для php.ini-файл