Чувак, где мой php?Ини?

несколько лет назад я установил Apache 2.2 x и PHP 5.3.1 на сервер Linux, который я поддерживаю. Я использовал .смола.gz и построил их по инструкции (вместо rpms и what-have-you). И все было хорошо.

сегодня мне нужно установить этой что похоже на библиотеку PHP. Я прошел все шаги, чтобы сделать установку, и я нахожу ibm_db2.так в $PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so

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

Я должен иметь дело с PHP один раз в несколько лет, поэтому, пожалуйста, просветите меня на очень базовом уровне о том, что я мог бы сделать, чтобы включить веб-доступ к GUI DB2.

12 ответов


лучший способ найти это: создайте php файл и добавьте следующий код:

<?php phpinfo(); ?>

и откройте его в браузере, он покажет файл, который на самом деле читается!

обновления ПО OP:

  1. ранее принятого ответ вероятно, будет быстрее и удобнее для вас, но это не всегда правильно. См. комментарии к этому ответу.
  2. Пожалуйста, обратите внимание на более удобную альтернативу <?php echo php_ini_loaded_file(); ?> упоминается в ответ.

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

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.

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


это работает для меня:

php -i | grep 'php.ini'

вы должны увидеть что-то вроде:

Loaded Configuration File => /usr/local/lib/php.ini

п.С. Чтобы получить только php.inin path

php -i | grep /.+/php.ini -oE

в командной строке введите

php --ini

Он покажет вам путь что-то вроде

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini

если вышеуказанная команда не работает, используйте это

echo phpinfo();

эта команда должна помочь вам найти его

php -r "phpinfo();" | grep php.ini

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

[[email protected] ~]# 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


или попробуй по-другому.

[[email protected] ~]# php --ini
его показывает результат пути


phpinfo();

сообщит вам свое местоположение или из командной строки

php -i

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

  • php_ini_loaded_file верните загруженный ini-файл
  • php_ini_scanned_files возвращает список .ini-файлы, проанализированные из дополнительного ini dir

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

Apache :

просто добавьте следующее в файл 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());'

find / -name php.ini

Эй... у меня получилось!


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

$ -> php -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini

для SAPI: php-fpm

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

php-fpm -i | more

где-то в своем выходе он покажет эту строку:

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

вот более полное объяснение: https://www.cloudinsidr.com/content/how-to-figure-out-your-php-configuration-parameters-without-info-php/


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

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