[php] 명령 행에서 사용하는 php.ini 파일을 찾는 방법?

EasyPhp 환경에서 pdo_mysql을 활성화해야하므로 php.ini 파일로 이동하여 다음 줄의 주석 처리를 제거했습니다.

extension=php_pdo_mysql.dll

불행히도 여전히 같은 문제가 있습니다. CLI를 사용하고 있으므로 CLI에서 사용하는 php.ini 파일을 찾아야한다고 가정합니다. 어떻게 찾을 수 있습니까?



답변

CLI 에서 사용 하는 위치 php --ini를 실행 하고 Loaded Configuration File출력을 찾으 php.ini십시오.


답변

다음을 phpinfo()사용하여 전체 를 얻을 수 있습니다 .

php -i 

그리고 거기에 php.ini사용 된 파일이 있습니다.

$ 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.ini를 전혀 찾지 못했는지 알 수 있습니다.

var_dump( get_cfg_var('cfg_file_path') );

php.ini의 위치를 간단히 설정할 수 있습니다 . 명령 행 버전을 사용하고 있으므로 -c매개 변수를 사용 하면 위치를 지정할 수 있습니다. 예 :

php -c /home/me/php.ini -f /home/me/test.php


답변

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

자세한 내용은 help 명령을 사용 php --help하십시오. 가능한 모든 옵션이 표시됩니다.


답변

Somtimes는 일반적으로 구성 파일과 관련하여 항상 보이는 것은 아닙니다. 그래서 여기에서는 프로세스가 여는 파일을 탐색하기 위해 일반적인 방법을 적용하고 있습니다.

나는 strace 라는 매우 강력하고 유용한 명령 줄 프로그램을 사용하여 실제로 내 뒤에서 일어나는 일을 보여줍니다!

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

Strace는 프로그램이 수행 한 커널 (시스템) 호출을 찾아서 출력을 -o로 지정된 파일로 덤프합니다.

grep 을 사용 하여이 로그에서 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


답변

모든 구성 파일을로드하려면 다음과 같이 알려줍니다.

php -i | grep "\.ini"

일부 시스템은 둘 이상의 ini 파일에서 항목을로드합니다. 내 우분투 시스템에서는 다음과 같습니다.

$  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


답변

OSX Mavericks에서 다음을 실행하십시오.

$ php -i | grep 'Configuration File'

반품 :

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

에서 /etc/디렉토리했다 :

php.ini.default

(만큼 잘 php-fpm.conf.default )

나는 복사 할 수있었습니다 php.ini.defaultphp.ini추가, date.timezone = "US/Central"바로 아래 (정상에[php] ), 그리고 문제는 해결된다.

(적어도 오류 메시지는 사라졌습니다.)