development

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

big-blog 2020. 2. 28. 19:21
반응형

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


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

extension=php_pdo_mysql.dll

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


CLI 에서 사용 하는 위치 php --ini실행 하고 결과를 찾으 십시오.Loaded Configuration Filephp.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"

php --ini

사용 경로 및 가능한 ini 파일에 대한 모든 세부 정보를 제공합니다.


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하십시오. 가능한 모든 옵션이 표시됩니다.


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

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

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

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]), 그리고 문제는 해결된다.

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


다른 앱으로 전달해야하는 경우 다음과 같은 작업을 수행 할 수 있습니다.

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 폴더에는 모든 dll 및 확장자가있는 ext 폴더가 있습니다.


하다

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

이름이 php.ini. 인 모든 파일이 출력됩니다 .

일반적으로 사용중인 것을 찾으십시오. apache2/php.ini


CLI phpinfo 출력을 로컬 파일에 저장하십시오.

php -i >> phpinfo-cli.txt

명령 행에서 사용되는 php.ini가 없습니다. 당신은에서 파일을 복사해야 ...EasyPHP-<<version>>\apache\php.ini하는 ...EasyPHP-<<version>>\php\php.ini편집보다에서 하나 의 PHP 디렉토리를

참고:

참고 URL : https://stackoverflow.com/questions/2750580/how-to-find-the-php-ini-file-used-by-the-command-line



반응형