php.ini는 어디서 찾을 수 있습니까?


881

몇 년 전에 필자는 유지 관리하는 Linux 서버에 Apache 2.2x 및 PHP 5.3.1을 설치했습니다. 나는 .tar.gz를 사용하고 지시 된대로 (rpm과 무엇 대신) 빌드했습니다. 그리고 모두 괜찮 았습니다.

오늘 은 PHP 라이브러리처럼 보이는 이것을 설치해야합니다 . 설치를하기 위해 모든 단계를 거쳤으며 ibm_db2.so를 찾을 수 있습니다.$PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so

가장 중요한 것은 php.ini를 구성하는 마지막 단계이지만 내 시스템에는 php.ini가 없습니다. 공포의 공포. PHP는 내가 사용하고자하는이 새로운 ibm_db2 일을 제외하고는 잘 작동합니다. 그래서 누군가 GUI를 사용하여 땜질 할 수 있습니다 DB2. (작은 PHP 스크립트를 시도했지만 실패했으며 ibm_db2 기능을 사용할 수 없음을 나타냅니다).

몇 년에 한 번씩 PHP를 다루어야하므로 웹 기반 GUI 액세스를 위해 할 수있는 작업에 대해 매우 기본적인 수준으로 알려주십시오 DB2.


120
90 %의 시간 /etc/php5/apache2/php.ini
Adam


6
질문의 전제가 잘못 되었기 때문에 하향 투표. "내 시스템에는 php.ini가 없습니다" 아니오, 단순히 찾지 못했습니다. 말하자면 locate php.ini, 파일이 시스템에있는 순간에 당신에게 말할 것입니다.
궤도에서 가벼움 경주

1
@Adam : PHP5가 아니라면;)
Line

2
@line yeah 내 의견은 더 이상 관련성이 없지만 공감 금액을 알지 못했지만!
Adam

답변:


466

이것을 찾는 가장 좋은 방법은 PHP 파일을 만들고 다음 코드를 추가하는 것입니다.

<?php phpinfo(); ?>

브라우저에서 열면 실제로 읽은 파일이 표시됩니다!

OP 별 업데이트 :

  1. 이전에 승인 된 답변 은 더 빠르고 편리 할 수 ​​있지만 항상 정확한 것은 아닙니다. 그 답변에 대한 의견을 참조하십시오.
  2. 이 답변에<?php echo php_ini_loaded_file(); ?> 언급 된 보다 편리한 대안에 유의하십시오 .

11
이것이 정답입니다. CLI가 설치되어 있고 아파치가 실행 중이면 내 시스템과 같이 자체 ini 파일이있을 수 있습니다. 허용 된 답변을 사용하면 CLI가 아파치가 아니라 CLI가 사용중인 것을 반환합니다.
Dan

2
@ Dan 예, 그렇습니다. 언급 한 문제가 실제로 누군가 (이전에 허용 된 답변에 대해 언급 한 사람)가 발생했기 때문에 수락 된 답변을이 답변으로 변경하고 있습니다. (그런 식으로, 당신이 질문에 대해 언급했다면 나는이 문제를 더 빨리 고쳤을 것이다.)
necromancer

2
설치시 작동하지 않습니다. 오식? 이어야합니다<?php phpinfo(); ?>
svenyonson

9
php -r \@phpinfo\(\)\;php -r \@phpinfo\(\)\; | grep 'PHP Version' -m 1특정 정보를 가져 오기 위해 작동
jgraup

시도 @zylstra :<?php echo php_ini_loaded_file(); ?>
아 테스 산양

834

명령 행에서 다음을 실행하십시오.

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-machine에서 온 것입니다. 그러나 두 번째 줄은 흥미로운 것입니다. 언급이 없으면 첫 번째 것을 살펴보십시오. 이것이 PHP에서 경로를 찾는 경로 php.ini입니다.

phpinfo()스크립트를 사용하여 동일한 정보를 가져 와서 브라우저로 호출 할 수 있습니다 . 출력의 첫 번째 블록에 언급되어 있습니다. php -i커맨드 라인에 대해서도 동일하지만 매우 불편합니다.


5
가장 오래되고 가장 간단한 대답을 받아들입니다 (SO는 수락하기 전에 잠시 기다려야합니다). 정보를 찾는 다음 사람에게 도움이 될 확장 프로그램에 감사드립니다. 나를 위해 두 번째 줄은 말하지 않았으며, 첫 번째 줄의 경로에 php.ini 파일을 넣은 후 모든 것이 잘 작동했습니다. 감사!
necromancer

12
이 명령을 사용하고 php.ini 파일을 편집하여 나에게 지시했으며 PHP 설정이 변경되지 않았으며 올바른 php.ini 파일을 제공하지 않는다는 것을 깨달았습니다. phpinfo () PHP 함수를 사용해 보았는데 편집에 필요한 php.ini의 정확한 위치를 알려줍니다. 나는 이것이 매우 중요하다고 생각하며 이것이 누군가를 돕기를 바랍니다.
commonthread

3
/etc/php5/apache2/php.ini
Adam

@thecommonthread 실제로 발생한 문제를 지적 해 주셔서 감사합니다. 수락 된 답변을 .php파일 만들기를 강조하는 답변으로 변경했습니다 . 그건 그렇고, 당신이 질문에 대해 의견을 말하면 알림을 받고 문제를 더 빨리 해결할 수 있습니다.
necromancer

5
@Pacerier 이것은 다른 PHP 설치와 아무 관련이 없지만, 다른 SAPI는 다른 ini 파일을 사용할 수 있습니다. 나는 아파치 모듈을 사용하지 않지만, 내가 기억하는 한 phpinfo.php비슷한 파일 주위에는 방법이 없다고 생각 합니다. FPM을 사용하면 최소한을 사용할 수 있습니다 php5-fpm -i | grep '\.ini'. 일반적으로이 두 개 또는 세 번을 사용하고 하루의 끝에 당신이 알고있는 ) 파일이있는 곳
KingCrunch

133

이것은 나를 위해 작동합니다 :

php -i | grep 'php.ini'

다음과 같이 보일 것입니다 :

Loaded Configuration File => /usr/local/lib/php.ini

ps php.inin 경로 만 얻으려면

php -i | grep /.+/php.ini -oE

5
이 경우에만 작품 이다php.ini 문제가 정확히 어떤 : 존재하지 않는 경우, 당신은 여전히 곳에 새로 배치하는 방법을보고 어디에 있는지, 또는하지 않습니다.
KingCrunch

php.ini 파일이없는 상황을 본 적이 없습니다.
coderama

이 명령을 Configuration File (php.ini) Path => /usr/lib실행 <?php phpinfo(); ?>하면 나에게 제공 되지만 실행 하면 나에게 제공 Loaded Configuration File: /etc/php.ini됩니다. 그래서 phpinfo()제 경우에는 더 안정적이었습니다.
Leo Galleguillos

2
이것은 완전히 정확하지 않습니다. PHP 언어를 사용하는 모든 프레임 워크에는 자체 php.ini 파일이 있습니다. 커맨드 라인에서 해당 라인을 호출하면 웹 환경에서 PHP를 실행할 때 사용되는 파일이 아닌 /var/php5/cli/php.ini와 같은 것을 받게 될 것입니다. 해당 파일의 경우 apache2 폴더를 살펴 봐야합니다.
Andrea Moro

63

명령 창에서

php --ini

그것은 당신에게 같은 경로를 보여줄 것입니다

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini

위의 명령이 작동하지 않으면 이것을 사용하십시오

echo phpinfo();

33

이 명령은 찾는 데 도움이됩니다

php -r "phpinfo();" | grep php.ini

1
나는 다른 답변보다 훨씬 더 좋아합니다. 필자는 그 내용을 포함하는 PHP 파일을 찾고 브라우저에 페이지를로드 할 필요가 없습니다.
Andrew Allbright

29

다음 명령을 사용하여 php.iniLinux 에서 파일 경로 를 찾으십시오 .

[root@AnyDirectory ~]# 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


아니면 다른 방법으로 시도해보십시오

[root@AnyDirectory ~]# php --ini
경로 결과를 보여줍니다


11
이 같은 방법 열등하다 php -i | grep 'php.ini'발견 한 때문에, 어떤 php.ini 파일을 당신에게 어느 쪽이 개 당신의 PHP 설치 사용을 말하지 않습니다. 또한 locateDB가 최신 상태가 아닌 경우 잘못된 결과를 제공 할 수 있습니다.
lxg


22

PHP는 어떤 설정 파일이로드되는지 보여주는 두 가지 기본 기능을 제공합니다 :

설정에 따라 ApacheCLI 는 다른 ini 파일을 사용할 수 있습니다. 두 가지 해결책은 다음과 같습니다.

아파치 :

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());'

절실하고 철저하며 (거의) 정답. 나는 이것을 정답으로 거의 바꾸었지만 php_ini_loaded_file항상 사용할 수있는 것은 아닙니다.
necromancer 2016 년

@ zylstra PHP 버전은 무엇입니까? php_ini_loaded_filePHP 버전> = 5.2.4에 대한 문서
네크로맨서

@necromancer 지금 확실하지 않습니다. 내가 확인한 시스템을 잊어 버렸습니다. : /
zylstra

8
find / -name php.ini

이봐. 그것은 나를 위해 일했다!


3
하나, 그것은 시간이 걸립니다; 둘 이상을 가지고 있다면, 실제로 사용하고있는 것을 어떻게 알 수 있습니까?
necromancer

1
사실, php --ini작동하지만 이것은 또 다른 옵션입니다 :) 일반적으로 /etc/php5/cli/php.ini /etc/php5/apache2/php.ini /etc/php5/cgi/php.ini원하는 것이 있고 일반적으로 원하는 것이 분명합니다. (cli, apache, cgi)
Banned_User

디스크에서 모든 php.ini 파일을 찾을 수는 없기 때문에 이것은 좋은 해결책이 아닙니다.

4

다음과 같은 것을 사용하여 구성 파일에 대한 자세한 정보를 얻을 수 있습니다.

$ -> php -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini


2

이 솔루션 중 하나를 사용해보십시오

  1. 터미널 유형에서 find / -name "php.ini"

  2. 터미널에서 php -i | grep php.ini. 파일 경로를 다음과 같이 표시해야합니다.Configuration File (php.ini) Path => /etc

  3. PHP 파일 중 하나에 액세스 할 수 있으면 편집기 (메모장)에서 열고 <?php 새 줄에 코드를 입력하십시오.phpinfo(); 하십시오 php.ini 위치를 알려줍니다
  4. 대화식 모드에서 PHP와 대화 할 수도 있습니다. 단지 입력 php -a) (단말 및 유형은 phpinfo 단계; PHP가 시작된 후.

포인트 1, 2 및 4는 여러 설치 문제에 취약합니다. 이미 큰 답변이 있습니다. 여기에 아무것도 추가하지 않는 답변을 추가 할 필요가 없습니다.
necromancer

@necromancer는 문제를 자세하게 설명하므로 누군가에게 유용 할 것입니다. 우리는 잘못되고 쓸모없는 답변에 대한 공감대와 공감대를 가지고 있으며 커뮤니티가 결정할 것입니다.
cherankrish

-1

php.ini 파일을 찾는 데 이미 언급 된 몇 가지 유효한 방법이 있지만 bash 스크립트에서이 작업을 수행하여이 페이지를 방문한 경우 :

path_php_ini="$(php -i | grep 'Configuration File (php.ini) Path' | grep -oP '(?<=\=\>\s).*')" echo ${path_php_ini}


1
대신를 참조하십시오 stackoverflow.com/a/24342463/621338를 대신을 grepping의 텍스트 변경, 당신은 PHP는 인쇄를 파일 이름 만이 있고 위의 같은 복잡한 물건없이 bash는 스크립트에서 사용할 수 있다면 취성이다.
necromancer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.