복붙노트

명령 줄에서 사용하는 php.ini 파일을 찾는 방법은 무엇입니까?

PHP

명령 줄에서 사용하는 php.ini 파일을 찾는 방법은 무엇입니까?

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

extension=php_pdo_mysql.dll

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

해결법

  1. ==============================

    1.PHP를 실행하십시오.

    PHP를 실행하십시오.

  2. ==============================

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

    다음을 사용하여 전체 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"
    
  3. ==============================

    3.

    php --ini
    

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

  4. ==============================

    4.다음과 같이 get_cfg_var ( 'cfg_file_path')를 사용할 수 있습니다. 시스템이 구성 파일을 사용하는지 여부를 확인하려면 cfg_file_path 구성 설정 값을 검색하십시오. 이것이 가능하다면, 설정 파일이 사용되고 있습니다. phpinfo ()와는 달리, php.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
    
  5. ==============================

    5.터미널에서 php --ini를 실행하면 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
    

    더 많은 도움을 받으려면 php --help 명령을 사용하십시오. 가능한 모든 옵션이 표시됩니다.

  6. ==============================

    6.모든 구성 파일을로드하려면 다음과 같이하십시오.

    모든 구성 파일을로드하려면 다음과 같이하십시오.

    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
    
  7. ==============================

    7.때로는 설정 파일이 일반적으로 나타날 때와 같은 것들이 항상있는 것은 아닙니다. 그래서 여기에 어떤 파일이 프로세스에 의해 열렸는지 탐색하기위한 일반적인 방법을 적용하고 있습니다.

    때로는 설정 파일이 일반적으로 나타날 때와 같은 것들이 항상있는 것은 아닙니다. 그래서 여기에 어떤 파일이 프로세스에 의해 열렸는지 탐색하기위한 일반적인 방법을 적용하고 있습니다.

    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
    
  8. ==============================

    8.OSX Mavericks에서 다음을 실행합니다.

    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 바로 아래) 상단에 추가하면 문제가 해결되었습니다.

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

  9. ==============================

    9.다른 앱에 전달해야하는 경우 다음과 같이 할 수 있습니다.

    다른 앱에 전달해야하는 경우 다음과 같이 할 수 있습니다.

    php --ini | grep Loaded | cut -d" " -f12
    

    경로 만 반환합니다. php -c $ (php -ini | grep Loaded | cut -d ""-f12)는 설정 파일에 전달됩니다 (fpm에 유용합니다)

  10. ==============================

    10.EasyPHP를 사용할 때 기억했던 php.ini 파일은 C : \ Windows \ 또는 C : \ Windows \ System32에 있습니다.

    EasyPHP를 사용할 때 기억했던 php.ini 파일은 C : \ Windows \ 또는 C : \ Windows \ System32에 있습니다.

  11. ==============================

    11.php.ini 파일에서 확장 디렉토리를 설정하십시오. 예 :

    php.ini 파일에서 확장 디렉토리를 설정하십시오. 예 :

    extension_dir = "C:/php/ext/"
    

    PHP 폴더에는 모든 dll과 확장자를 가진 ext 폴더가 있습니다.

  12. ==============================

    12.해야 할 것

    해야 할 것

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

    그러면 php.ini라는 이름의 모든 파일이 출력됩니다.

    어느 것을 사용하고 있는지 알아보십시오, 보통 apache2 / php.ini

  13. ==============================

    13.명령 줄에 php.ini가 사용되지 않습니다. EasyPHP - << version >> \ apache \ php.ini에서 파일을 복사해야합니다 ... EasyPHP - << version >> \ php \ php.ini 파일을 PHP 디렉토리에서 편집하는 것보다

    명령 줄에 php.ini가 사용되지 않습니다. EasyPHP - << version >> \ apache \ php.ini에서 파일을 복사해야합니다 ... EasyPHP - << version >> \ php \ php.ini 파일을 PHP 디렉토리에서 편집하는 것보다

    참고:

  14. from https://stackoverflow.com/questions/2750580/how-to-find-the-php-ini-file-used-by-the-command-line by cc-by-sa and MIT license