2010-07-15 3 views
8

PHP의 ZIP 파일을 다운로드하여 내 프로필에서 압축을 풉니 다. 그런 다음 PEAR 패키지가 필요했습니다. go-pear.bat 분명히 PEAR을 설치 한 것 같습니다. 나중에 pear.bat 파일에 들어가서 경로를 php.exe으로 변경해야합니다.Windows에서 PEAR 디렉토리 문제가 발생했습니다.

그러나, 내가 뭔가를 설치하려고 할 때 다음과 같은 오류 얻을 :

ERROR: failed to mkdir C:\php5\pear\data\Console_CommandLine\data

물론, 더 쓰기 권한이 루트 디렉토리에 허용되지 않습니다를하지만 난 PEAR 생각하는 방법을 정확하게 알고 당황 조금 있어요 존재하지도 않고 어디에서나 구성되는 위치에 아무 것도 설치해야합니다. PHP는 현재 H:\ (내 프로필의 subst'ed) 아래에 있습니다. PEAR 설치 중에 입력 한 모든 경로는 정상이었고 C:\php5이라는 유일한 위치는 PEAR/go-pear.phar과 설명서에 있습니다. 그 중 하나는 내가 어쨌든 변경해서는 안되는 것이고, 다른 것은 프로그램 그 자체와 거의 관련이 없다고 생각합니다.

이제는 아마도 C:\php5이 PHP가 현재 놓고 있거나 실제로 그 위치에 설치되어있는 디렉토리에 대한 연결점/심볼릭 링크를 만들 수 있습니다. 원래는 약간의 테스트를위한 것이기 때문에 두 가지를 피하십시오. 뭔가의.

이후로는 pear help install으로 보았고, 분명히 -P 또는 -R을 사용할 수 있으므로 일부 경로를 설정하십시오. 그것들의 정확한 차이는 나에게 아직도 불분명하다. 그러나 그것들을 시험해 보는 것은 상처가되지 않을 것이다. 어떻게 든 결과는 ... 예기치 않은 :

-P H:\Downloads\php\PEAR

가 재미 오류가 발생 (다른 사람의 사이에서) 다운로드 저장 위치

ERROR: failed to mkdir C:\Downloads\php\PEAR\php5\pear\data\Console_CommandLine\data

같은 경로를 사용 -R 동안은 (분명히 -R는 지시, 그게 내가 전에 일 때문에 나는 두 C:\을 생각하고 php5 어딘가 하드 코딩되어 지금까지

download directory "C:\Downloads\php\PEAR\Users\JOHANN~1\AppData\Local\Temp\pear\download" is not writeable. Change download_dir config variable to a writeable dir

: 나는 더욱 재미 결과)이 접촉하지 않아야 추측 뚜렷한 이유가 없기 때문에 (내 환경 변수도 그 종류의 것을 포함하고 있지 않다.) 그래서 나는 다시 파헤쳐 보겠다. 이번에는 더 짧은 문자열과 더 긴 결과 목록을 찾는다.

하지만 그동안 누군가에게이 아이디어가 있다면 도움이 될 것입니다. 배 명령의 config-... 매개 변수에

답변

2

봐 :

config-create   Create a Default configuration file 
config-get    Show One Setting 
config-help   Show Information About Setting 
config-set    Change Setting 
config-show   Show All Settings 

내가 C:\php5를 가정하면 다른 하나를 설정하지 않는 내장 기본 디렉토리입니다.

+0

은'설정 - show' 수익률'C를 가리 꽤 많은 설정을 유망 보이는 성공했다. 이제 PEAR이 설정 파일에 정상적인 위치를 사용하도록 지시 할 수있는 방법을 알아야합니다. 'C : \ Windows'에있는 * user * 설정 파일을 기대하는 것은 아마 잠시 동안 본 이상한 일일 것입니다. – Joey

+0

자, 이제 해결했습니다. 'C : \'의 하위 디렉토리에서'pear'를 실행하고'C :'드라이브의 경로를'-P' 옵션으로 지정하면 분명히 작동합니다. – Joey

2

당신은 내가 같은 문제를 했어

pear -c /path/to/config/file $command 
2

를 통해 설정 파일을 지정할 수 있습니다. 내 설정 파일이 C:\Windows 디렉토리에서 누락되었습니다. - 분명히 설치 관리자 설치에 문제가 있습니다. 다른 INI 파일 위치를 지정했지만, 내 소원은 실현되지 않았습니다.

pear.iniC:\windows으로 복사했으며 모든 것이 작동하기 시작했습니다.

19

문제는 PEAR이 Windows 디렉토리에서 해당 ini 파일을 찾지 만 거기에서 찾을 수 없기 때문에 위치를 추측하는 것입니다. 더 나쁜 것은, PEAR에 쓸 pear.ini가 없기 때문에 pear config-set으로 모든 구성 설정을 변경할 수 없다는 것입니다. 동시에, PEAR는 자신의 디렉토리에있는 기존 pear.ini 파일을 무시합니다. 그것은 엉망입니다. 이 내용은 bug report을 참조하십시오.

전역 PEAR 설치가 하나만있는 경우 올바른 디렉토리를 가리키는 환경 변수 PHP_PEAR_SYSCONF_DIR을 만들어 PEAR에 ini 파일을 찾을 위치를 알릴 수 있습니다.

하지만 여러 개인 경우, 지역 PEAR가 설치, 당신은이 라인을 추가하여 pear.bat 패치를해야합니다 :

IF "%PHP_PEAR_SYSCONF_DIR%"=="" SET "PHP_PEAR_SYSCONF_DIR=C:\path\to\pear.ini\directory"

+0

pear.bat의 패치는 로컬 PEAR 설치에 잘 작동합니다. – Subrata

+0

@hashchange 박쥐 파일에 어떤 줄을 추가해야합니까? – rrrfusco

+2

@rrrfusco 28 번 설치. 보다 일반적으로, "PEAR global ENV 확인, 존재하지 않을 경우 설정"섹션. – hashchange

4

michael h's answer보다 약간 더 나은 옵션이있을 수 있습니다

  1. 열기 $prefix\pear\PEAR\Config.php 여기서 $prefix은 PEAR 설치 프로그램에서 사용되는 값입니다.

    if (getenv('PHP_PEAR_SYSCONF_DIR')) { 
        define('PEAR_CONFIG_SYSCONFDIR', getenv('PHP_PEAR_SYSCONF_DIR')); 
    } elseif (getenv('SystemRoot')) { 
        define('PEAR_CONFIG_SYSCONFDIR', getenv('SystemRoot')); 
    } else { 
        define('PEAR_CONFIG_SYSCONFDIR', PHP_SYSCONFDIR); 
    } 
    
  2. 그리고 다음과 같이 변경합니다 :

    if (getenv('PHP_PEAR_SYSCONF_DIR')) { 
        define('PEAR_CONFIG_SYSCONFDIR', getenv('PHP_PEAR_SYSCONF_DIR')); 
    //} elseif (getenv('SystemRoot')) { 
        //define('PEAR_CONFIG_SYSCONFDIR', getenv('SystemRoot')); 
    } else { 
        //define('PEAR_CONFIG_SYSCONFDIR', PHP_SYSCONFDIR); 
    
        // This next line is new 
        define('PEAR_CONFIG_SYSCONFDIR', $PEAR_INSTALL_DIR); 
    } 
    

이 솔루션은 적은 hazard-입니다

  • 아래 섹션을 찾아 (내 Windows 시스템에서 $prefixC:\php\5.4.0했다) 여러 PHP/PEAR 버전/설치를 다룰 때, 특히 환경을 피하면서 동시에 둘 이상을 실행할 때 clobbering.

    분명히 PEAR 개발자는 Windows Vista 이후로 WINDOWS, Program Files 및 친구들이 응용 프로그램 데이터 디렉토리로 사용되지 않으며 일반적으로 비 상승 응용 프로그램에서 더 이상 쓸 수 없다는 사실을 간과했습니다. (보안상의 이유로)

  • +0

    좋은 정보 집합입니다. – Subrata

    1

    PHP 설치가 C : \ 드라이브가 아닌 다른 곳에서 수행 된 경우 "pear install"명령으로 오류가 발생할 수 있습니다.

    예 : 제 경우에는 xampp이 E : \ 드라이브에 설치되었고 "pear install"오류가 발생합니다.

    Error got when I run the command. This also happen for PHPDocumentor 해결책 : "pear"디렉토리에 들어 와서 다른 배 관련 디렉토리에 대한 설정 값을 확인했습니다. 모두 기본적으로 C : \ 드라이브로 설정되었습니다. 따라서 올바른 경로로 설정을 변경해야합니다. "관리자 권한으로 실행"모드에서 명령 프롬프트를 엽니 다. C에 \를 : 당신은 그냥 드라이브 이름 E를 교체 한 후 또한 위의 진술이 동일하게 유지됩니다 C 드라이브를 사용하고 동일한 오류가 발생하는 경우

    Pear default setting 지금이

    E:\xampp\php> 
    E:\xampp\php>pear config-set doc_dir E:\xampp\php\pear 
    

    같이 XAMPP에 다섯 개 경로를 변경 : \ 그 반대입니다.C에 대한 예 :

    C:\xampp\php>pear config-set doc_dir C:\xampp\php\pear 
    

    그런 다음이 설정 - 세트의 MSG를 표시합니다 Enter 키를 누릅니다 드라이브는 5 개 명령을 입력 할 필요가 이와 같이

    을 성공했다.

    E:\xampp\php>pear config-set doc_dir E:\xampp\php\pear 
    

    구성 세트는 설정 집합을 구성 세트 성공

    E:\xampp\php>pear config-set data_dir E:\xampp\php\pear 
    

    성공

    E:\xampp\php>pear config-set cfg_dir E:\xampp\php\pear 
    

    성공

    E:\xampp\php>pear config-set test_dir E:\xampp\php\pear 
    

    구성 세트는

    성공 \ PHP5 \ something` :
    E:\xampp\php>pear config-set www_dir E:\xampp\php\pear 
    

    설정-세트는

    Finally installed pear

    관련 문제