Как найти php.ini-файл, используемый в командной строке?
Мне нужно включить pdo_mysql в моей среде EasyPhp, поэтому я пошел на php.ini и раскомментировать следующую строку:
extension=php_pdo_mysql.dll
к сожалению, у меня все та же проблема.
Я использую CLI, поэтому я полагаю, что мне нужно найти php.ini-файл, используемый CLI. Как я могу его найти?
13 ответов:
вы можете получить полный
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"
можно использовать 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для получения дополнительной информации используйте команду helping
php --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.logStrace выкапывает вызовы ядра (системы), которые делает ваша программа, и сбрасывает вывод в файл, указанный-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