Как найти php.ini-файл, используемый в командной строке?



Мне нужно включить pdo_mysql в моей среде EasyPhp, поэтому я пошел на php.ini и раскомментировать следующую строку:



extension=php_pdo_mysql.dll


к сожалению, у меня все та же проблема.
Я использую CLI, поэтому я полагаю, что мне нужно найти php.ini-файл, используемый CLI. Как я могу его найти?

656   13  

13 ответов:

просто запустить php --ini

вы можете получить полный phpinfo() использование :

php -i 

и там есть используется :

$ php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

на Windows используйте find вместо:

php -i|find/i"configuration file"
php --ini

даст вам все детали детали на пути использования и возможных ini-файлов

можно использовать get_cfg_var ('cfg_file_path') для этого:

чтобы проверить, использует ли система файл конфигурации, попробуйте получить значение параметра конфигурации cfg_file_path. Если это доступно, используется файл конфигурации.
в отличие от phpinfo () он скажет, если он не нашел/не использовал php.Ини вообще.
var_dump( get_cfg_var('cfg_file_path') );

а можно просто set расположение php.ini. Вы используете командную строку версия, так что с помощью

выполнить php --ini в вашем терминале вы получите всю информацию о ini-файлах

[root@tamilan src]# php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/apc.ini,
/etc/php.d/bcmath.ini,
/etc/php.d/curl.ini,
/etc/php.d/dba.ini,
/etc/php.d/dom.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/gd.ini,
/etc/php.d/imap.ini,
/etc/php.d/json.ini,
/etc/php.d/mbstring.ini,
/etc/php.d/memcache.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini,
/etc/php.d/posix.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/ssh2.ini,
/etc/php.d/sysvmsg.ini,
/etc/php.d/sysvsem.ini,
/etc/php.d/sysvshm.ini,
/etc/php.d/wddx.ini,
/etc/php.d/xmlreader.ini,
/etc/php.d/xmlwriter.ini,
/etc/php.d/xsl.ini,
/etc/php.d/zip.ini

для получения дополнительной информации используйте команду helpingphp --help он будет отображать все возможные варианты.

Если вы хотите, чтобы все файлы конфигурации загружались, это скажет вам:

php -i | grep "\.ini"

некоторые системы загружают вещи из более чем одного ini-файла. В моей системе ubuntu это выглядит так:

$  php -i | grep "\.ini"
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
Scan this dir for additional .ini files => /etc/php5/cli/conf.d
additional .ini files parsed => /etc/php5/cli/conf.d/apc.ini,
/etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/gd.ini,
/etc/php5/cli/conf.d/mcrypt.ini,
/etc/php5/cli/conf.d/memcache.ini,
/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/mysqli.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini

иногда вещи не всегда таковы, какими они кажутся, когда речь заходит о файлах конфигурации в целом. Поэтому здесь я применяю свои обычные методы для изучения того, какие файлы открываются процессом.

Я использую очень мощную и полезную программу командной строки под названием strace показать мне, что на самом деле происходит за моей спиной!

$ strace -o strace.log php --version
$ grep php.ini strace.log

Strace выкапывает вызовы ядра (системы), которые делает ваша программа, и сбрасывает вывод в файл, указанный-o

Это простота в использовании для поиска вхождений php.ini в этом журнале. Это довольно очевидно, глядя на следующий типичный ответ, чтобы увидеть, что происходит.

open("/usr/bin/php.ini", O_RDONLY)      = -1 ENOENT (No such file or directory)
open("/etc/php.ini", O_RDONLY)          = 3
lstat("/etc/php.ini", {st_mode=S_IFREG|0644, st_size=69105, ...}) = 0

на OSX Mavericks, работает:

$ php -i | grep 'Configuration File'

вернулся:

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

на было:

php.ini.default

(а также php-fpm.conf.default)

я смог скопировать php.ini.default до php.ini добавьте date.timezone = "US/Central" наверх (справа внизу [php]), и проблема решена.

(по крайней мере, сообщение об ошибке исчезло.)

Если вам нужно передать его в другое приложение, вы можете сделать что-то вроде:

php --ini | grep Loaded | cut -d" " -f12

возвращает только путь. php -c $(php --ini | grep Loaded | cut -d" " -f12) пройдет в конфигурационном файле (полезно для fpm)

из того, что я помню, когда я использовал EasyPHP, php.ini-файл либо в C:\Windows\ или C:\Windows\System32

в вашем php.ini-файл установите каталог расширения, например:

extension_dir = "C:/php/ext/"

вы увидите, что в вашей папке PHP есть папка ext со всеми dll и расширениями.

Do

find / -type f -name "php.ini" 

это выведет все файлы с именем php.ini.

узнайте, какой из них вы используете, обычно apache2/php.ini

нет php.ini используется в командной строке. Вы должны скопировать файл из ...EasyPHP-<<version>>\apache\php.ini до ...EasyPHP-<<version>>\php\php.ini чем редактировать один в php каталог

ссылки:

Comments

    Ничего не найдено.