どんな事でもお気軽にお問い合わせください
0120-803-656
24時間受付いたします

XAMPP環境でPEARインストールできないときのTips


システム部の山田です。
今回はWindowsのXampp環境で困ったときのお話。

ある案件で大容量のXMLログファイルを扱う必要があったので、
PEARライブラリのXML_Query2XMLを使ってみようと思ったのですが...

C:\xampp\php>pear install XML_Query2XML
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
Did not download optional dependencies: pear/Net_LDAP2, pear/I18N_UnicodeString, use --alldeps to download automatically
pear/XML_Query2XML can optionally use package "pear/Net_LDAP2"
pear/XML_Query2XML can optionally use package "pear/I18N_UnicodeString"
downloading XML_Query2XML-1.7.2.tgz ...
Starting to download XML_Query2XML-1.7.2.tgz (388,604 bytes)
.................done: 388,604 bytes
ERROR: failed to mkdir C:\php\pear\docs\XML_Query2XML\cases\case01

インストールでエラーが!!!
「failed to mkdir C:\php\pear\docs\XML_Query2XML\cases\case01」???
僕の環境では「C:\xampp\php」以下に創ってほしいんだけどな。。。
こりゃ設定ミスってるな、と思いとりあえずPEARの設定を確認することに。

C:\xampp\php>pear config-show
CONFIGURATION (CHANNEL PEAR.PHP.NET):
(略)
PEAR executables directory     bin_dir          C:\xampp\php
PEAR documentation directory   doc_dir          C:\php\pear\docs
PHP extension directory        ext_dir          C:\xampp\php\ext
PEAR directory                 php_dir          C:\xampp\php\pear
PEAR Installer cache directory cache_dir        R:\Temp\pear\cache
PEAR configuration file        cfg_dir          C:\php\pear\cfg
directory
PEAR data directory            data_dir         C:\php\pear\data
PEAR Installer download        download_dir     R:\Temp\pear\download
directory
PHP CLI/CGI binary             php_bin          C:\xampp\php\.\php.exe
php.ini location               php_ini          <not set>
--program-prefix passed to     php_prefix       <not set>
PHP's ./configure
--program-suffix passed to     php_suffix       <not set>
PHP's ./configure
PEAR Installer temp directory  temp_dir         R:\Temp\pear\temp
PEAR test directory            test_dir         C:\php\pear\tests
PEAR www files directory       www_dir          C:\php\pear\www
(略)

doc_dirがちゃっかり「C:\php\pear\docs」になってました。
僕の場合「C:\php」なんてディレクトリはないので、このパス指定になってるとこは全部直さないとダメです。

Google先生に直し方を聞いてみると
「C:\xampp\php\go-pear.pharを実行しなさい」ってことだったのでトライ。

C:\xampp\php>php go-pear.phar
Could not open input file: go-pear.phar

そんなファイルねえ。
Windowsからファイル検索してもありませんでした。

仕方ないのでconfig-set で全部直します。

C:\xampp\php>pear config-set doc_dir c:\xampp\php\pear\docs
config-set succeeded
C:\xampp\php>pear config-set cfg_dir c:\xampp\php\pear\cfg
config-set succeeded
C:\xampp\php>pear config-set data_dir c:\xampp\php\pear\data
config-set succeeded
C:\xampp\php>pear config-set temp_dir c:\xampp\php\pear\temp
config-set succeeded
C:\xampp\php>pear config-set test_dir c:\xampp\php\pear\tests
config-set succeeded
C:\xampp\php>pear config-set www_dir c:\xampp\php\pear\www
config-set succeeded

ちゃんと反映されてるか確認

C:\xampp\php>pear config-show
CONFIGURATION (CHANNEL PEAR.PHP.NET):
(略)
PEAR executables directory     bin_dir          C:\xampp\php
PEAR documentation directory   doc_dir          c:\xampp\php\pear\docs
PHP extension directory        ext_dir          C:\xampp\php\ext
PEAR directory                 php_dir          C:\xampp\php\pear
PEAR Installer cache directory cache_dir        R:\Temp\pear\cache
PEAR configuration file        cfg_dir          c:\xampp\php\pear\cfg
directory
PEAR data directory            data_dir         c:\xampp\php\pear\data
PEAR Installer download        download_dir     R:\Temp\pear\download
directory
PHP CLI/CGI binary             php_bin          C:\xampp\php\.\php.exe
php.ini location               php_ini          <not set>
--program-prefix passed to     php_prefix       <not set>
PHP's ./configure
--program-suffix passed to     php_suffix       <not set>
PHP's ./configure
PEAR Installer temp directory  temp_dir         c:\xampp\php\pear\temp
PEAR test directory            test_dir         c:\xampp\php\pear\tests
PEAR www files directory       www_dir          c:\xampp\php\pear\www
(略)

直ったので改めてインストール

C:\xampp\php>pear install XML_Query2XML
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
Did not download optional dependencies: pear/Net_LDAP2, pear/I18N_UnicodeString, use --alldeps to download automatically
pear/XML_Query2XML can optionally use package "pear/Net_LDAP2"
pear/XML_Query2XML can optionally use package "pear/I18N_UnicodeString"
downloading XML_Query2XML-1.7.2.tgz ...
Starting to download XML_Query2XML-1.7.2.tgz (388,604 bytes)
.....done: 388,604 bytes
install ok: channel://pear.php.net/XML_Query2XML-1.7.2

できた!!!!!!!!!!

今回は以上です。


お問い合わせ 採用情報 エンジニアブログ
ISO27001認証
Contact PageTop
株式会社ビヨンド

© beyond Co., Ltd. All rights reserved.