Web

Где я могу найти файл php.ini

Несколько лет назад я установил Apache 2.2x и PHP 5.3.1 на Linux-сервер, который я обслуживаю. Я использовал .tar.gz и собрал их в соответствии с инструкциями (вместо rpms и т. п.). И все было в порядке. Сегодня мне нужно установить нечто, которое кажется библиотекой PHP. Я прошел все шаги до make install и нашел ibm_db2.so в:

$PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so.

Загвоздка в том, что на последнем шаге нужно настроить файл php.ini, но в моей системе нет ни одного файла php.ini. PHP работает нормально, за исключением, конечно, этой новомодной штуки ibm_db2, которую я хочу использовать, чтобы кто-то мог применять GUI для работы с DB2 (я попробовал небольшой PHP-скрипт, который не работает и показывает, что функции ibm_db2 недоступны). Мне приходится иметь дело с PHP раз в несколько лет, поэтому, пожалуйста, просветите меня на самом базовом уровне о том, что я могу сделать, чтобы обеспечить доступ к DB2 через веб-интерфейс GUI.

 

Ответ 1

В командной строке выполните:

php --ini

Вы получите что-то вроде этого:

Configuration File (php.ini) Path: /etc/php5/cli

Loaded Configuration File:         /etc/php5/cli/php.ini

Scan for additional .ini files in:   /etc/php5/cli/conf.d

Additional .ini files parsed:         /etc/php5/cli/conf.d/curl.ini,

/etc/php5/cli/conf.d/pdo.ini,

/etc/php5/cli/conf.d/pdo_sqlite.ini,

/etc/php5/cli/conf.d/sqlite.ini,

/etc/php5/cli/conf.d/sqlite3.ini,

/etc/php5/cli/conf.d/xdebug.ini,

/etc/php5/cli/conf.d/xsl.ini

 Это с моей локальной dev-машины. Однако вторая строка — самая интересная. Если там ничего не указано, посмотрите на первую. Это путь, по которому PHP ищет файл php.ini.

 Вы можете найти ту же информацию с помощью phpinfo() в скрипте и вызвать его через браузер. Он упоминается в первом блоке вывода. php -i делает то же самое для командной строки, но это довольно неудобно.

 

Ответ 2

PHP поставляется с двумя встроенными функциями, показывающими, какой файл конфигурации загружен:

  1. php_ini_loaded_file возвращает загруженный .ini файл;

  2. php_ini_scanned_files возвращает список .ini файлов, разобранных из дополнительной директории ini.

В зависимости от вашей установки, Apache и CLI могут использовать разные .ini файлы. Вот два решения:

Apache:

Просто добавьте следующее в файл PHP (.php) и откройте его в браузере:

print php_ini_loaded_file();

print_r(php_ini_scanned_files());

CLI:

Скопируйте-вставьте в терминал:

php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'

 


Ответ 3

Попробуйте одно из следующих решений:

  1. В терминале введите find / -name "php.ini".

  2. В терминале введите php -i | grep php.ini. Это должно показать путь к файлу как "Configuration File (php.ini) Path => /etc".

  3. Если вы можете получить доступ к одному из ваших PHP файлов, откройте его в редакторе (Блокнот) и вставьте phpinfo(); после <?php на новой строке. Это сообщит вам расположение php.ini.

  4. Вы также можете общаться с PHP в интерактивном режиме. Просто наберите php -a в терминале и введите phpinfo(); после запуска интерпретатора PHP.



Ответ 4

Для SAPI: php-fpm

Нет необходимости создавать файл php.info (в любом случае оставлять его на всеобщее обозрение не самая лучшая идея). Выполните в командной строке:

php-fpm -i | more

Где-то в выходных данных будет показана эта строка:

Configuration File (php.ini) Path => /etc

 

Ответ 5

Уже упоминалось несколько действенных способов найти файл php.ini, но, если вы наткнулись на эту страницу, потому что хотите что-то сделать с ним в сценарии Bash:

path_php_ini="$(php -i | grep 'Configuration File (php.ini) Path' | grep -oP '(?<=\=\>\s).*')"

echo ${path_php_ini}

 

 Ответ 6

Используйте следующую команду, чтобы найти путь к файлу php.ini в Linux:

locate php.ini

Вывод:

/etc/php.ini

/etc/php.ini.rpmnew

/usr/share/doc/php-common-5.4.45/php.ini-development

/usr/share/doc/php-common-5.4.45/php.ini-production

Или попробуйте другой способ:

php --ini

 

Схожие статьи

Web

Создание таблицы для каждой записи в цикле foreach

Web

Выполнение фонового процесса в PHP

Web

Как получить содержимое POST на php?

Web

Доступ к $_COOKIE сразу после setcookie()