EasyPhp 환경에서 pdo_mysql을 활성화해야하므로 php.ini 파일로 이동하여 다음 줄의 주석 처리를 제거했습니다.
extension=php_pdo_mysql.dll
불행히도 여전히 같은 문제가 있습니다. CLI를 사용하고 있으므로 CLI에서 사용하는 php.ini 파일을 찾아야한다고 가정합니다. 어떻게 찾을 수 있습니까?
EasyPhp 환경에서 pdo_mysql을 활성화해야하므로 php.ini 파일로 이동하여 다음 줄의 주석 처리를 제거했습니다.
extension=php_pdo_mysql.dll
불행히도 여전히 같은 문제가 있습니다. CLI를 사용하고 있으므로 CLI에서 사용하는 php.ini 파일을 찾아야한다고 가정합니다. 어떻게 찾을 수 있습니까?
답변:
CLI 에서 사용 하는 위치 php --ini
를 실행 하고 Loaded Configuration File
출력을 찾으 php.ini
십시오.
sudo find / -iname php.ini
그것은 세운 /etc/php/7.0/apache2/php.ini
이 발견되지 않았 음을 내 컴퓨터의 오른쪽 php.ini의 설정 파일의 올바른 위치를 php --ini
하거나 php -i | grep php.ini
(모두 FOUND /etc/php/7.0/cli/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"
Configuration File
은 phpinfo의 라인 () PHP는 INI 파일을보고 마지막 장소를 보여줍니다. 그것은 그러한 파일을 찾은 곳이거나 Windows에서 % SYSTEMROOT %가되는 마지막 옵션 일 수 있습니다.
php -i | find "Configuration file"
Windows에서 작동합니다. grep만큼 강력하지는 않지만 find
기본 문자열 검색을 수행합니다. 물론 php -i가 출력을 stderr에 덤프하면 아마도 SOL 일 것입니다.
find
기본적으로 대소 문자를 구분하므로 완벽하게 ( php -i | find "Configuration File"
) 또는 대소 문자를 구분하지 않아야 php -i | find /i "Configuration file"
합니다 ( /i
플래그를 참고하십시오 ).
php --ini
대안으로 추가 하는 것을 고려하십시오 . PHP 5.2.3부터 사용 가능 :)
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
나에게 잘못된 결과를 주었지만 이것은 완벽하게 좋습니다. 감사합니다!
모든 구성 파일을로드하려면 다음과 같이 알려줍니다.
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.default
을 php.ini
추가, date.timezone = "US/Central"
바로 아래 (정상에[php]
), 그리고 문제는 해결된다.
(적어도 오류 메시지는 사라졌습니다.)
내가 EasyPHP를 사용하는 데 사용 때 내가 기억하는 바로는, php.ini 파일이에 중 하나입니다 C:\Windows\
또는C:\Windows\System32
하다
find / -type f -name "php.ini"
그러면 이름이 지정된 모든 파일이 출력됩니다 php.ini
. 인 .
일반적으로 사용중인 것을 찾으십시오. apache2/php.ini
명령 행에서 사용되는 php.ini가 없습니다. 당신은에서 파일을 복사해야 ...EasyPHP-<<version>>\apache\php.ini
하는 ...EasyPHP-<<version>>\php\php.ini
것보다 편집에서 하나 의 PHP 디렉토리를
참고: