Чувак, где мой php.ini?
Несколько лет назад я установил Apache 2.2x и PHP 5.3.1 на сервере Linux, который я поддерживаю. Я использовал .tar.gz и построил их в соответствии с инструкциями (вместо rpms и what-have-you). И все было хорошо.
Сегодня мне нужно установить этот, который выглядит как библиотека PHP. Я прошел все шаги до установки, и я нашел ibm_db2.so в $PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so
Великий улов - последний шаг - настроить php.ini, но в моей системе нет php.ini. Ужас ужасов. PHP работает отлично, за исключением, конечно, для этого нового fangled ibm_db2 thingamagic, который я хочу использовать, чтобы кто-то мог использовать графический интерфейс, чтобы возиться с DB2
. (Я пробовал небольшой PHP скрипт, который не работает, и указывает, что функции ibm_db2 недоступны).
Мне нужно иметь дело с PHP один раз в несколько лет, поэтому, пожалуйста, просветите меня на очень базовом уровне о том, что я могу сделать, чтобы включить доступ к веб-интерфейсу GUI для DB2
.
Ответы
Ответ 1
Лучший способ найти это:
создайте файл php и добавьте следующий код:
<?php phpinfo(); ?>
и откройте его в браузере, он покажет файл, который на самом деле читается!
Обновления по OP:
- Ранее принятый ответ скорее всего будет быстрее и удобнее для вас, но это не всегда правильно. См. Комментарии к этому ответу.
- Также обратите внимание на более удобную альтернативу
<?php echo php_ini_loaded_file(); ?>
, указанную в этом ответе.
Ответ 2
В командной строке выполните:
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()
в script и вызвать ее с помощью браузера. Он упоминается в первом блоке вывода. php -i
делает то же самое для командной строки, но довольно неудобно.
Ответ 3
Это работает для меня:
php -i | grep 'php.ini'
Вы должны увидеть что-то вроде:
Loaded Configuration File => /usr/local/lib/php.ini
ps чтобы получить только путь php.inin
php -i | grep /.+/php.ini -oE
Ответ 4
В окне командного окна
php --ini
Он покажет вам путь, похожий на
Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File: /usr/local/lib/php.ini
Если приведенная выше команда не работает, используйте этот
echo phpinfo();
Ответ 5
Эта команда поможет вам найти ее
php -r "phpinfo();" | grep php.ini
Ответ 6
Используйте следующие команды, чтобы найти путь к файлу 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
его показывает результат пути
Ответ 7
phpinfo();
сообщит вам свое местоположение или из командной строки
php -i
Ответ 8
PHP поставляется с двумя встроенными функциями, чтобы показать, какой файл конфигурации загружен:
В зависимости от вашей установки Apache и CLI могут использовать разные 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());'
Ответ 9
find / -name php.ini
Эй, это сработало для меня!
Ответ 10
Вы можете получить дополнительную информацию о своих файлах конфигурации, используя что-то вроде:
$ -> php -i | ack config # Use fgrep -i if you don't have ack
Configure Command => './configure' ...
Loaded Configuration File => /path/to/php.ini
Ответ 11
Для 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/
Ответ 12
Попробуйте одно из этих решений
В вашем терминале введите find / -name "php.ini"
В вашем терминале введите php -i | grep php.ini
. Это должно показать путь к файлу как Configuration File (php.ini) Path => /etc
- Если вы можете получить доступ к одному из ваших файлов PHP, откройте его в редакторе (блокнот)
и вставьте следующий код после
<?php
в новую строку phpinfo();
This
скажет вам местоположение php.ini
- Вы также можете поговорить с php в интерактивном режиме. Просто введите
php -a
в терминал и введите phpinfo(); после инициации php.
Ответ 13
Существует несколько правильных способов определения файла php.ini, но если вы столкнулись с этой страницей, потому что вы хотите что-то сделать с ней в bash script:
path_php_ini="$(php -i | grep 'Configuration File (php.ini) Path' | grep -oP '(?<=\=\>\s).*')"
echo ${path_php_ini}