パソコン・インターネット

2013年12月30日 (月)

MOV を 90度 回転して MP4に

非破壊な自炊をしていたら時間かかってしょうがないので、動画でとることに。中華パッドでとると画像悪すぎなので、iPadでとったMOVをPCに取り込んで、MP4にしてファイルサイズを小さくして中華パッドにいれようかと思ったらどうも動画が横向きになっている。

Video Rotator http://www.videorotator.com/ だと 15秒やると登録を促されたのでやめ。(登録だけで無料だったかも?)
Avidemux http://avidemux.sourceforge.net/ は変換までできたけど、サイズ大きいし、表示できない。多分やり方悪い。
で、これまでMP4へ変換するのに使っていた
をみてみると、回転できる。
MP4のサイズも小さく、Avidemuxではできない、複数一気に変換できたし、フォーマット選択も不要で適当にボタン押すとできるし、あとは動画で本が読めればいいんだけど。

| | コメント (0) | トラックバック (0)

2013年12月14日 (土)

WTL のダイアログの CEDIT にフォーカス

WTL のdialog の エディットボックスを SetFocus() しても IDOKでかつrcファイルでDEFPUSHBUTTONなOKボタンにフォーカスあたりCEditにフォーカスあたらず。

ShowCaret()
SetSel()
してもだめ。

BEGIN_MSG_MAP(LoginAuthenticationDlg)
    MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
    xxx
END_MSG_MAP()
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
    m_edit.SetFocus(); // これ必要
    m_edit.SetWindowTextW(str); // デフォルトで表示する文字設定
    long nEnd = m_edit.GetWindowTextLengthW();
    m_editUser.SetSel(nEnd, nEnd); // カーソルを文字列の最後に
    xxx
    // return TRUE; // ダイアログのデフォルトにフォーカス。
    return FALSE; // 明示的にSetFocusしているコントロールがあるときはFALSEを指定可能
}

WM_INITDIALOG な OnInitDialog の返り値でTRUEはだめで、FALSEを返せばいけた。

thanks

http://tech.dir.groups.yahoo.com/neo/groups/wtl/conversations/topics/3609
http://motos33.cocolog-nifty.com/blog/2008/02/setsel_337d.html

| | コメント (0) | トラックバック (0)

WinHTTP

WinHttpOpen と WinHttpConnect と WinHttpOpenRequest を一回呼んでWinHttpSendRequest (and WinHttpWriteData) と WinHttpReceiveResponse を繰り返し呼び出すようにしたら、2回目のWinHttpSendRequest または WinHttpWriteData で ERROR_INVALID_PARAMETER (87) が返る。

SendやWriteするデータが増えると ERROR_INVALID_PARAMETER で、減ると WinHttpReceiveResponse で ERROR_WINHTTP_TIMEOUT (12002) が返る。

同じ文字数ならOK。

ということで、WinHttpOpenRequest も WinHttpSendRequest と同様に繰り返し呼ぶようにしたらいけた。

以下PHP向けのPOSTの擬似コード。ベーシック認証付き。

hSession = WinHttpOpen(
        L"WinHTTP", 
        WINHTTP_ACCESS_TYPE_NO_PROXY,
        WINHTTP_NO_PROXY_NAME,
        WINHTTP_NO_PROXY_BYPASS,
        0
        );
WinHttpConnect(
        hSession,
        server,
        INTERNET_DEFAULT_HTTP_PORT,
        0
        );

をひとつのクラスで実施するようにして

m_hRequest= WinHttpOpenRequest(
        m_hConnect,
        L"POST",
        path.c_str(),
        NULL,
        WINHTTP_NO_REFERER,
        WINHTTP_DEFAULT_ACCEPT_TYPES,
        0
        );
// Basic Authentication
WinHttpSetCredentials(
        m_hRequest,
        WINHTTP_AUTH_TARGET_SERVER,
        WINHTTP_AUTH_SCHEME_BASIC,
        username.c_str(),
        password.c_str(),
        NULL
        );
const WCHAR szHeader[] = L"Content-Type: application/x-www-form-urlencoded\r\n";
std::string postData = "query=hello";
WinHttpSendRequest(
        m_hRequest,
        szHeader,
        -1L,
        WINHTTP_NO_REQUEST_DATA,
        0,
        postData.length(),
        0
        );
WinHttpWriteData(
        m_hRequest,
        buf,
        postData.length(),
        NULL
        );
// 上のWinHttpWriteDataの処理はWinHttpSendRequestにまとめると以下の一つでOK
/* WinHttpSendRequest(
        m_hRequest,
        szHeader,
        -1L,
        const_cast<char*>(postData.c_str()),
        postData.length(),
        postData.length(),
        0
        );
*/
WinHttpReceiveResponse(m_hRequest, NULL);
WinHttpQueryHeaders(
        m_hRequest,
        WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER,
        NULL,
        &dwStatusCode,
        &dwSize,
        NULL
        );
switch(dwStatusCode){
    case 200:
        return DONE;
    case 401:
        return RequestError_401;
    default:
        return RequestError_INTERNAL_ERROR;
}

をもう一つのクラスで呼ぶようにする。

| | コメント (0) | トラックバック (0)

2013年11月10日 (日)

VisualStudio 2012 Express EditionにWTL

Visual Studio 2012 Express Edition にWTL
いきなり下記エラー
エラー 1 error C1083: include ファイルを開けません。'atlbase.h': No such file or directory xxxxxxxxxxxxxxx\stdafx.h 25 1 XXXXXXXXXX
VC++ディレクトリの「インクルード ディレクトリ」に下記を追加
C:\WinDDK\7600.16385.1\inc\atl71;
で、下記エラー
エラー 1 error C2065: '_stdcallthunk' : 定義されていない識別子です。 xxxxxxxxxxxxxxx\stdafx.h 33 1 XXXXXXXXXX
stdafx.hをみると
// This project was generated for VC++ 2005 Express and ATL 3.0 from Platform SDK.
// Comment out this line to build the project with different versions of VC++ and ATL.
#define _WTL_SUPPORT_SDK_ATL3
ってかいてある。ATL3.0ではないので、いわれるがままにコメントアウト
// #define _WTL_SUPPORT_SDK_ATL3
以下を追加するように書いてあるページがヒットするが追加しない。たぶんATLバージョンが古いかと
#include <atlstdthunk.h>
で、次は下記エラー
エラー 1 error C1083: include ファイルを開けません。'atlapp.h': No such file or directory xxxxxxxxxxxxxxx\stdafx.h 43 1 XXXXXXXXXX
WTLをincludeしてない。
VC++ディレクトリの「インクルード ディレクトリ」に下記を追加
D:\Lib\WTL81_12085\Include;
で、次は下記エラー
エラー 1 error LNK1104: ファイル 'atlsd.lib' を開くことができません。 xxxxxxxxxxxxxxx\LINK XXXXXXXXXX
WinDDKのライブラリパス追加が必要なので、VC++ディレクトリの「ライブラリ ディレクトリ」に下記を追加
C:\WinDDK\7600.16385.1\lib\ATL\i386
で、最後のエラー
エラー 2 error LNK2019: 未解決の外部シンボル "void * __stdcall ATL::__AllocStdCallThunk(void)" (?__AllocStdCallThunk@ATL@@YGPAXXZ) が関数 "public: static void * __cdecl ATL::_stdcallthunk::operator new(unsigned int)" (??2_stdcallthunk@ATL@@SAPAXI@Z) で参照されました。 xxxxxxxxxxxxxxx\xxxxxxxxxxxxxxx.obj XXXXXXXXXX
http://comments.gmane.org/gmane.comp.web.chromium.devel/27116
によれば
I've seen these errors with Express versions but not Professional. Linking against atlthunk.lib usually fixes it with Express.
とのことで、「リンカー」-「入力」-「追加の依存ファイル」 に atlthunk.lib を追加
あとは下記ワーニングのみ
1>atlsd.lib(atlcommodule.obj) : warning LNK4078: 複数の 'ATL' セクションが見つかりました。これらは異なる属性 (40301040) を持っています。
1>XXXXXXXXXX.obj : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>stdafx.obj : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atldebugapi.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atlfuncs.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(externs.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atltrace.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atlbase.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atlcommodule.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(stdafx.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atltracemodulemanager.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(allocate.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
http://stackoverflow.com/questions/10116800/atl-link-warnings
によれば無視しろということなので /ignore:4254 /ignore:4078 を「リンカー」-「コマンドライン」-「追加オプション」に追加
ダイアログ起動確認!

| | コメント (0) | トラックバック (0)

2013年9月 8日 (日)

error MSB8008: 指定したプラットフォーム ツールセット (v110) はインストールされていないか無効です

昨日までまともに動いていたVisualStudioのプロジェクトが下記エラー。

error MSB8008: 指定したプラットフォーム ツールセット (v110) はインストールされていないか無効です。サポートされている PlatformToolset 値が選択されていることを確認してください

ぐぐってもわからず、冷静に考えてみたら、VisualStudio2012で作成したプロジェクトを間違えてVisualStudio2010で開いたということでした。

| | コメント (0) | トラックバック (0)

2012年3月22日 (木)

Heroku - 複数アカウント(heroku-accounts) を1台のMacで管理し、複数Appをgit clone

Herokuアカウントが異なるAppを1台のMacで管理する際、Heroku上のデータをローカルにgit cloneしたときのメモ。

Herokuで複数のアカウントを管理するには、heroku-accounts

◇heroku-accounts
http://martyhaught.com/articles/2010/12/14/managing-multiple-heroku-accounts/
https://github.com/ddollar/heroku-accounts

以下、herokuの2つのアカウントを仮にjimmyとjackとする

$ heroku plugins:install git://github.com/ddollar/heroku-accounts.git
heroku-accounts installed
$ heroku accounts
No accounts found.
$ heroku accounts:add jimmy
Enter your Heroku credentials.
Email: jimmy@xxxxx.xxxxx
Password:

Add the following to your ~/.ssh/config

Host heroku.jimmy
HostName heroku.com
IdentityFile /PATH/TO/PRIVATE/KEY
IdentitiesOnly yes
$ heroku accounts:add jack
Enter your Heroku credentials.
Email: jack@*****.*****
Password:

Add the following to your ~/.ssh/config

Host heroku.jack
HostName heroku.com
IdentityFile /PATH/TO/PRIVATE/KEY
IdentitiesOnly yes
$

次に、sshのkeyを作成してIdentityFile の /PATH/TO/PRIVATE/KEY にPATHを記載する

◇sshのkey
keyを1つは紛失し、1つは複数アカウントの試行錯誤中に削除したため、最初から作成しなおし。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/jimmy/.ssh/id_rsa): /Users/jimmy/.ssh/id_rsa_jimmy
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/jimmy/.ssh/id_rsa_jimmy.
Your public key has been saved in /Users/jimmy/.ssh/id_rsa_jimmy.pub.
The key fingerprint is:
79:cd:45:ee:37:da:18:66:3f:c5:6e:53:c6:44:f5:a3 jimmy@xxxxxxxxxx
The key's randomart image is:
+--[ RSA 2048]----+
| ..+|
| . +.|
| . o.+.o|
| + + ..+=o.|
| + S o .= ..|
| + + E |
| . |
| |
| |
+-----------------+
$

jackに対しても同様に
$ ssh-keygen -t rsa
して
/Users/jimmy/.ssh/id_rsa_jack
を作成
上記のheroku accounts:add実行時のコメントに従い、~/.ssh/config を以下のように編集

Host heroku.jimmy
HostName heroku.com
IdentityFile /Users/jimmy/.ssh/id_rsa_jimmy
IdentitiesOnly yes

Host heroku.jack
HostName heroku.com
IdentityFile /users/jimmy/.ssh/id_rsa_jack
IdentitiesOnly yes

◇git clone

$ heroku accounts:default jimmy
$ git config heroku.account
jimmy
$ heroku accounts
* jimmy
jack
$

で、適当なディレクトリを作成してそこでgit cloneすると

$ git clone git@heroku.com:myapp_jimmy.git .
Cloning into ....

! Your key with fingerprint 79:cd:45:ee:37:da:18:66:3f:c5:6e:53:c6:44:f5:a3 is not authorized to access myapp_jimmy.

fatal: The remote end hung up unexpectedly
$

heroku keys:addが必要

$ heroku keys
No keys for jimmy@xxxxx.xxxxx
$ heroku keys:add
Found the following SSH public keys:
1) id_rsa_jimmy.pub
2) id_rsa_jack.pub
Which would you like to use with your Heroku account? 1
Uploading SSH public key /Users/jimmy/.ssh/id_rsa_jimmy.pub
$

再度git clone

$ git clone git@heroku.com:myapp_jimmy.git . Cloning into .... Permission denied (publickey). fatal: The remote end hung up unexpectedly $

googleさんで調べるとssh-addが必要とのことで

$ ssh-add -l
The agent has no identities.
$ ssh-add ~/.ssh/id_rsa_jimmy
Enter passphrase for /Users/jimmy/.ssh/id_rsa_jimmy:
Bad passphrase, try again for /Users/jimmy/.ssh/id_rsa_jimmy:
$

ssh-agenetが必要らしい

$ ps ax | grep ssh-agent
536 ?? S 0:00.07 /usr/bin/ssh-agent -l
739 s000 R+ 0:00.00 grep ssh-agent
$ eval 'ssh-agent'
SSH_AUTH_SOCK=/tmp/ssh-CpJmPKiFmG/agent.740; export SSH_AUTH_SOCK;
SSH_AGENT_PID=741; export SSH_AGENT_PID;
echo Agent pid 741;
$ ps ax | grep ssh-agent
536 ?? S 0:00.07 /usr/bin/ssh-agent -l
741 ?? Ss 0:00.03 ssh-agent
743 s000 R+ 0:00.00 grep ssh-agent
$ ssh-add ~/.ssh/id_rsa_jimmy
Enter passphrase for /Users/jimmy/.ssh/id_rsa_jimmy:
Identity added: /Users/jimmy/.ssh/id_rsa_jimmy (/Users/jimmy/.ssh/id_rsa_jimmy)
$

再度 git cloneで成功↓ heroku accounts:set もしておく

$ git clone git@heroku.com:myapp_jimmy.git .
Cloning into ....
remote: Counting objects: 35819, done.
remote: Compressing objects: 100% (7548/7548), done.
remote: Total 35819 (delta 27484), reused 35813 (delta 27481)
Receiving objects: 100% (35819/35819), 7.82 MiB | 147 KiB/s, done.
Resolving deltas: 100% (27484/27484), done.
$ heroku accounts:set jimmy
$

もう一つのアカウントもgit clone

$ ssh-add ~/.ssh/id_rsa_jack Enter passphrase for /Users/jimmy/.ssh/id_rsa_jack: Identity added: /Users/jimmy/.ssh/id_rsa_jack (/Users/jimmy/.ssh/id_rsa_jack) $ git clone git@heroku.com:myapp_jack.git . Cloning into ....

! Your key with fingerprint 79:cd:45:ee:37:da:18:66:3f:c5:6e:53:c6:44:f5:a3 is not authorized to access myapp_jack.

fatal: The remote end hung up unexpectedly
$

heroku keys:add してssh-add -Dで削除後にssh-addやりなおしで解決


$ heroku accounts:default jack
$ heroku keys:add ~/.ssh/id_rsa_jack.pub
Uploading SSH public key /Users/jimmy/.ssh/id_rsa_jack.pub
$ ssh-add -D
All identities removed.
$ ssh-add ~/.ssh/id_rsa_jack
Enter passphrase for /Users/jimmy/.ssh/id_rsa_jack:
Identity added: /Users/jimmy/.ssh/id_rsa_jack (/Users/jimmy/.ssh/id_rsa_jack)
$ git clone git@heroku.com:myapp_jack.git .
Cloning into ....
remote: Counting objects: 111, done.
remote: Compressing objects: 100% (85/85), done.
remote: Total 111 (delta 9), reused 111 (delta 9)
Receiving objects: 100% (111/111), 34.77 KiB, done.
Resolving deltas: 100% (9/9), done.
$ heroku accounts:set jack
$

----------
2012/04/15 追記
ある日、修正してそれを
$ git commit -a -m "[commit message]"
$ remote add heroku git@heroku.com:myapp_jack.git
$ git push heroku master
で反映しようとしたら


$ git push heroku master
Permission denied (publickey).

で、
$ ssh-add ~/.ssh/id_rsa_jack
したらいけた。
$ heroku keys:add ~/.ssh/id_rsa_jack
はいらんかった。

ログイン時に自動で毎回ssh-addしとく必要あんのかな?
----------

下記参考にさせていただきました。
Managing Your SSH Keys
Git using wrong email address when talking to Heroku
deploying rails to heroku - unauthorized public key access
Permission denied (publickey) when deploying heroku code. fatal: The remote end hung up unexpectedly
git clone heroku ssh permission denied
SSH Key Disable Caching
herokuでdeployしたときに"Your key with fingerprint xxxxxxxxxxxx is not authorized to access appname."と言われたら
git memo
herokuにpushできなくて泣きそうになった。

| | コメント (0) | トラックバック (0)

2012年1月21日 (土)

MacBook ProにBootCampでWindows7いれて日本語入力できるようにかなキーと英数キーの割り当て変更

MacBook Proに半角全角キーがないのでBootCampで日本語入力が不便。
「かな」キーでIME有効にして「英数」キーでIME無効に。
MSIMEはやめて、Google日本語入力

「ツール」「プロパティ」で「Google日本語入力プロパティ」ダイアログ表示
Ws000002
キー設定の選択で「カスタム」を選択して「編集ボタン」押す
「Google 日本語入力 キー設定」ダイアログで「定義済みキーマップからインポート」から、ここでは「ATOK」を選択

Ws000003

続いて「入力キー」でソート

Ws000004

編集から「新しいエントリー」からいくつか追加し、コマンドもいくつか変更(赤枠)

Ws000006

「かな」キーでひらがなになり、「英数」キーで直接入力になる。
上の図の赤枠の入力キーの「Kana」のコマンドを「IMEを有効化」にしたがこの2行は削除でもよいかも。

| | コメント (0) | トラックバック (0)

2012年1月13日 (金)

Mac OS X 10.7 Lion をクリーンインストールして BootCamp で Windows 7 を入れる

◇方針
Mac OS X 10.7 Lion はクリーンインストール(Mac OS X 10.6 Snow Leopard からのアップデート)
Mac OS X 10.7 Lion と Windows 7 の両方が読み書きできるパーティションを作成

◇手順概要
1)Mac OS X 10.6 Snow Leopard をクリーンインストール
2)App Store で Mac OS X 10.7 Lion を購入してアップデート
3)Mac OS X 10.7 Lion の インストールUSB の作成
4)Mac OS X 10.7 Lion の Recovery HD を削除
5)BootCamp で Windows 7 をクリーンインストール
6)ディスクユーティリティーで Mac OS X 10.7 Lion をいれたパーティションを分割

◇メモ
1)Mac OS X 10.6 Snow Leopard をクリーンインストール
Mac 購入時の Mac OS X 10.6 Snow Leopard のインストールDVDでクリーンインストール

2)App Store で Mac OS X 10.7 Lion を購入してアップデート
ソフトウェア・アップデート を実行して App Store をインストール
App Store で Mac OS X 10.7 Lion を購入してアップデート

3)Mac OS X 10.7 Lion の インストールUSB の作成
今回、実際に実施したのは
Lion DiskMaker (US)
を使う方法
そのためには、インストールが終わると自動で削除される「InstallESD.dmg」が必要のようで、下記を参考に、購入済み から option + クリック で App Store から Mac OS X 10.7 Lion を再ダウンロード
Lionのインストール用起動可能ディスクをDVDやUSBメモリで作る

上記ではなく、Apple 純正のツールでできる模様(未確認)
Lion 復元ディスクアシスタント
下記に実際に使った方の説明あり
OS X Lion…「Lion Recovery Disk Assistant」でUSBメディアも作成。

多分
OS X Lion USBメモリ版
みたいのができるのではないかな??

作成した USB で起動してみた
OS起動時に option キー 押しっぱなしで 選択&起動確認

あとUSBで起動時に下記も確認
Mac OSX Lion 10.7.2のリカバリ

電源ONのときにoptionキーを長押しして「Recovery HD」から起動し、ディスクユーティリティを実行するとサイドバーにDisk1が表示されます。
その内容はMac OS X Base Systemとなっていますので、Disk1を選択して「ディスクを作成」してください。
容量はパーティションで確認すると1.4GBとなっていましたので、DVDに書き込むことをお勧めします。

を参考にDVDも作成して、起動時に c キー押しっぱなしで起動確認

ちなみに、ディスクユーティリティーで、普通に「InstallESD.dmg」をDVDに焼いても起動せず
DVD数枚無駄に。。

4)Mac OS X 10.7 Lion の Recovery HD を削除
MacとWindowsの共有パーティションを作成するには Recovery HD があるとNGということで、install USBも作ったし 下記を参考にして Recovery HD は削除
OS X 10.7 Lion の Recovery HD を削除する方法
今回、実際に下記をターミナルで実行


diskutil list
diskutil eraseVolume HFS+ Blank /dev/disk0s3
diskutil mergePartitions HFS+ MacBookPro disk0s2 disk0s3

5)BootCamp で Windows 7 をクリーンインストール
普通にBootCamp で Windows 7 をクリーンインストール
インストール後の時点でパーティションは2つ

6)ディスクユーティリティーで Mac OS X 10.7 Lion をいれたパーティションを分割
ディスクユーティリティーで普通に分割して、Windows 7 も起動できた

前回のMac OS X (10.6.5 Snow Leopard)に BootCamp 3.2 で Windows7(64bit) を入れるでは共有パーティションをNTFSにしたが、Windowsの起動時にDiskCheckが頻繁に発生してOSの起動に時間がかかったので今回は素直にFAT32に

| | コメント (0) | トラックバック (0)

2011年2月13日 (日)

Gmail のSMTPサーバ使ってPEARのMailでメール送信

PEARのMailのメール送信でGmailのSMTPサーバつかってみました。

日本語のメールを送信する - メール送信(PEAR::Mail) - PEAR入門
を参考にさせていただきhtmlファイルとphpファイルを作成
htmlファイルはほぼそのままいただいて、phpファイルは下記

<?php

require_once "Mail.php";

$params = array(
"host" => "smtp.gmail.com",
"port" => 587,
"auth" => true,
"username" => "FROM_nanjarohoi12345678900987654321@gmail.com",
"password" => "xxxxxxxxxxxxx"
);

$mailObject = Mail::factory("smtp", $params);

$recipients = "TO_nanjarohoi12345678900987654321@gmail.com";

$headers = array(
"To" => "TO_nanjarohoi12345678900987654321@gmail.com",
"From" => "FROM_nanjarohoi12345678900987654321@gmail.com",
"Subject" => mb_encode_mimeheader("テストメール")
);

$body = "日本語メールのテストです。";
$body = mb_convert_encoding($body, "ISO-2022-JP", "auto");

$mail = $mailObject -> send($recipients, $headers, $body);

if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>

ページひらくとページのソースも真っ白ということでいろいろ設定↓

Mail.phpがみつからんとかでる
PHP Fatal error: require_once(): Failed opening required 'Mail.php' (include_path='.;D:\eclipse_pdt\workspace\mail_form') in D:\eclipse_pdt\workspace\mail_form\pearmailtest.php on line 3

上記のinclude_pathに、php.iniの最後に書かれたPEARのパスがない
include_path=".;C:\php-5.3.5-Win32-VC6-x86\PEAR"
ブラウザ経由だと多少進んでいるので、どうもeclipseからPEAR見えてないっぽい

Eclipse PDTでPEARの設定:とりあえずメモっておくか:So-netブログ
を参考に下記設定追加
PHP Libraries

PEAR_LIB
という名前で環境変数つくって「Add External folder」でPEARの場所を指定

Eclipse_preferences_php_libraries


PEARは見えるようになったみたいだが次のエラー
PHP Fatal error: Call to undefined function mb_encode_mimeheader() in D:\eclipse_pdt\workspace\mail_form\pearmailtest.php on line 23

mbstring有効にしてなかった

mbstringの設定意味不明なので
日本語利用の為の設定(mbstring) - php.iniの設定 - PHPインストールと初期設定
をそのままいただきやした。

extension_dir = "ext"
extension=php_mbstring.dll
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
mbstring.substitute_character = none;
;mbstring.func_overload = 0
mbstring.strict_detection = Off
;mbstring.http_output_conv_mimetype=
;mbstring.script_encoding=

そんで、ブラウザで下記表示のエラー

uthentication failure [SMTP: SMTP server does not support authentication (code: 250, response: mx.google.com at your service, [113.146.46.82] SIZE 35651584 8BITMIME STARTTLS ENHANCEDSTATUSCODES)]

gmailのsmtp設定っぽいのでぐぐって
http://stackoverflow.com/questions/712392/send-email-using-gmail-smtp-server-from-php-page

http://ap.atmarkit.co.jp/bbs/core/flinux/15247

http://d.hatena.ne.jp/killswitch5375/20090201/1233444748

どうやら

"host" => "tls://smtp.gmail.com",
とか
"host" => "ssl://smtp.gmail.com",
とかみたいにtls、sslをつければよいらしい


$params = array(
"host" => "ssl://smtp.gmail.com",
"port" => 465,
"auth" => true,
"username" => "FROM_nanjarohoi12345678900987654321@gmail.com",
"password" => "xxxxxxxxxxxxx"
);

に変えてみたが下記エラー

Failed to connect to ssl://smtp.gmail.com:465 [SMTP: Failed to connect socket: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (code: -1, response: )]
Failed to connect to tls://smtp.gmail.com:465 [SMTP: Failed to connect socket: Unable to find the socket transport "tls" - did you forget to enable it when you configured PHP? (code: -1, response: )]

sslが有効でないときにでるらしい
http://q.hatena.ne.jp/1213091871

再びphp.ini修正
;extension=php_openssl.dll
のコメント;はずして
extension=php_openssl.dll

apache再起動で

よーやくメール送信OK

Subjectが文字化けしてる
phpファイルがShift_JISでした
UTF-8に変換して文字化けもかいしょー

| | コメント (2) | トラックバック (0)

2011年2月12日 (土)

PEAR で Mailをインストール

PEAR で Mailをインストールやってみました

Windows 7 に PHP 5.3.5 + Apache 2.2.17 (Win32) + Xdebug 2.1.0 + Eclipse 3.6(Helios) PDT: ひとり2ちゃん
でPHPデバッグ環境までいけて、これはその続き


■PEARのインストール

c:\php-5.3.5-Win32-VC6-x86>go-pear.bat phar "C:\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar" does not have a signaturePHP Warning: require_once(phar://go-pear.phar/index.php): failed to open stream: p har error: invalid url or non-existent phar "phar://go-pear.phar/index.php" in C :\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar on line 1236 PHP Stack trace: PHP 1. {main}() C:\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar:0 続行するには何かキーを押してください . . .

いきなりエラー

解決策が
http://stackoverflow.com/questions/1652941/why-am-i-receiving-an-error-when-installing-pear
にあり

php.ini

;phar.require_hash = On
のコメントとって
phar.require_hash = Off
のようにOffに

http://ameblo.jp/phpwalker/entry-10422457243.html
http://news.php.net/php.internals/44569
のようにgo-pear.batに
-d phar.require_hash=0
を追加してもいけるっぽいです

で、再度go-pear.bat

c:\php-5.3.5-Win32-VC6-x86>go-pear.bat

Are you installing a system-wide PEAR or a local copy?
(system|local) [system] : local
Please confirm local copy by typing 'yes' : yes

Below is a suggested file layout for your new PEAR installation. To
change individual locations, type the number in front of the
directory. Type 'all' to change all of them or simply press Enter to
accept these locations.

1. Installation base ($prefix) : C:\php-5.3.5-Win32-VC6-x86
2. Temporary directory for processing : C:\php-5.3.5-Win32-VC6-x86\t
mp
3. Temporary directory for downloads : C:\php-5.3.5-Win32-VC6-x86\t
mp
4. Binaries directory : C:\php-5.3.5-Win32-VC6-x86
5. PHP code directory ($php_dir) : C:\php-5.3.5-Win32-VC6-x86\p
ear
6. Documentation directory : C:\php-5.3.5-Win32-VC6-x86\d
ocs
7. Data directory : C:\php-5.3.5-Win32-VC6-x86\d
ata
8. User-modifiable configuration files directory : C:\php-5.3.5-Win32-VC6-x86\c
fg
9. Public Web Files directory : C:\php-5.3.5-Win32-VC6-x86\w
ww
10. Tests directory : C:\php-5.3.5-Win32-VC6-x86\t
ests
11. Name of configuration file : C:\php-5.3.5-Win32-VC6-x86\p
ear.ini
12. Path to CLI php.exe : .

1-12, 'all' or Enter to continue:
'".\php.exe"' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

*WARNING*
We found php.exe under ., it uses an unknown SAPI. PEAR commandline
tool has not been tested with it, if you have a CLI (or CGI) php.exe available,
we strongly recommend using it.

Beginning install...
PHP Warning: date(): It is not safe to rely on the system's timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone
_set() function. In case you used any of those methods and you are still getting
this warning, you most likely misspelled the timezone identifier. We selected '
Asia/Tokyo' for '9.0/no DST' instead in phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/g
o-pear.phar/PEAR/Registry.php on line 987
PHP Stack trace:
PHP 1. {main}() C:\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar:0
PHP 2. require_once() C:\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar:1236
PHP 3. PEAR_Start_CLI->run() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.ph
ar/index.php:5
PHP 4. PEAR_Start->doInstall() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.
phar/PEAR/Start/CLI.php:57
PHP 5. PEAR_Config->store() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.pha
r/PEAR/Start.php:291
PHP 6. PEAR_Config->writeConfigFile() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/g
o-pear.phar/PEAR/Config.php:1885
PHP 7. PEAR_Config->_lazyChannelSetup() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Config.php:963
PHP 8. PEAR_Registry->listChannels() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go
-pear.phar/PEAR/Config.php:1616
PHP 9. PEAR_Registry->_lock() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.p
har/PEAR/Registry.php:1688
PHP 10. PEAR_Registry->_assertStateDir() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Registry.php:823
PHP 11. PEAR_Registry->_initializeDirs() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Registry.php:410
PHP 12. PEAR_Registry->_initializeChannelDirs() phar://C:/php-5.3.5-Win32-VC6-x
86/PEAR/go-pear.phar/PEAR/Registry.php:307
PHP 13. PEAR_Registry->_addChannel() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-
pear.phar/PEAR/Registry.php:220
PHP 14. date() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.phar/PEAR/Registr
y.php:987
PHP Warning: date(): It is not safe to rely on the system's timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone
_set() function. In case you used any of those methods and you are still getting
this warning, you most likely misspelled the timezone identifier. We selected '
Asia/Tokyo' for '9.0/no DST' instead in phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/g
o-pear.phar/PEAR/Registry.php on line 987
PHP Stack trace:
PHP 1. {main}() C:\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar:0
PHP 2. require_once() C:\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar:1236
PHP 3. PEAR_Start_CLI->run() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.ph
ar/index.php:5
PHP 4. PEAR_Start->doInstall() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.
phar/PEAR/Start/CLI.php:57
PHP 5. PEAR_Config->store() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.pha
r/PEAR/Start.php:291
PHP 6. PEAR_Config->writeConfigFile() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/g
o-pear.phar/PEAR/Config.php:1885
PHP 7. PEAR_Config->_lazyChannelSetup() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Config.php:963
PHP 8. PEAR_Registry->listChannels() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go
-pear.phar/PEAR/Config.php:1616
PHP 9. PEAR_Registry->_lock() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.p
har/PEAR/Registry.php:1688
PHP 10. PEAR_Registry->_assertStateDir() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Registry.php:823
PHP 11. PEAR_Registry->_initializeDirs() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Registry.php:410
PHP 12. PEAR_Registry->_initializeChannelDirs() phar://C:/php-5.3.5-Win32-VC6-x
86/PEAR/go-pear.phar/PEAR/Registry.php:307
PHP 13. PEAR_Registry->_addChannel() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-
pear.phar/PEAR/Registry.php:245
PHP 14. date() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.phar/PEAR/Registr
y.php:987
PHP Warning: date(): It is not safe to rely on the system's timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone
_set() function. In case you used any of those methods and you are still getting
this warning, you most likely misspelled the timezone identifier. We selected '
Asia/Tokyo' for '9.0/no DST' instead in phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/g
o-pear.phar/PEAR/Registry.php on line 987
PHP Stack trace:
PHP 1. {main}() C:\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar:0
PHP 2. require_once() C:\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar:1236
PHP 3. PEAR_Start_CLI->run() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.ph
ar/index.php:5
PHP 4. PEAR_Start->doInstall() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.
phar/PEAR/Start/CLI.php:57
PHP 5. PEAR_Config->store() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.pha
r/PEAR/Start.php:291
PHP 6. PEAR_Config->writeConfigFile() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/g
o-pear.phar/PEAR/Config.php:1885
PHP 7. PEAR_Config->_lazyChannelSetup() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Config.php:963
PHP 8. PEAR_Registry->listChannels() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go
-pear.phar/PEAR/Config.php:1616
PHP 9. PEAR_Registry->_lock() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.p
har/PEAR/Registry.php:1688
PHP 10. PEAR_Registry->_assertStateDir() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Registry.php:823
PHP 11. PEAR_Registry->_initializeDirs() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Registry.php:410
PHP 12. PEAR_Registry->_initializeChannelDirs() phar://C:/php-5.3.5-Win32-VC6-x
86/PEAR/go-pear.phar/PEAR/Registry.php:307
PHP 13. PEAR_Registry->_addChannel() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-
pear.phar/PEAR/Registry.php:269
PHP 14. date() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.phar/PEAR/Registr
y.php:987
PHP Warning: date(): It is not safe to rely on the system's timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone
_set() function. In case you used any of those methods and you are still getting
this warning, you most likely misspelled the timezone identifier. We selected '
Asia/Tokyo' for '9.0/no DST' instead in phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/g
o-pear.phar/PEAR/Registry.php on line 987
PHP Stack trace:
PHP 1. {main}() C:\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar:0
PHP 2. require_once() C:\php-5.3.5-Win32-VC6-x86\PEAR\go-pear.phar:1236
PHP 3. PEAR_Start_CLI->run() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.ph
ar/index.php:5
PHP 4. PEAR_Start->doInstall() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.
phar/PEAR/Start/CLI.php:57
PHP 5. PEAR_Config->store() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.pha
r/PEAR/Start.php:291
PHP 6. PEAR_Config->writeConfigFile() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/g
o-pear.phar/PEAR/Config.php:1885
PHP 7. PEAR_Config->_lazyChannelSetup() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Config.php:963
PHP 8. PEAR_Registry->listChannels() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go
-pear.phar/PEAR/Config.php:1616
PHP 9. PEAR_Registry->_lock() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.p
har/PEAR/Registry.php:1688
PHP 10. PEAR_Registry->_assertStateDir() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Registry.php:823
PHP 11. PEAR_Registry->_initializeDirs() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR
/go-pear.phar/PEAR/Registry.php:410
PHP 12. PEAR_Registry->_initializeChannelDirs() phar://C:/php-5.3.5-Win32-VC6-x
86/PEAR/go-pear.phar/PEAR/Registry.php:307
PHP 13. PEAR_Registry->_addChannel() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-
pear.phar/PEAR/Registry.php:282
PHP 14. date() phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.phar/PEAR/Registr
y.php:987
Configuration written to C:\php-5.3.5-Win32-VC6-x86\pear.ini...
Initialized registry...
Preparing to install...
installing phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.phar/PEAR/go-pear-tarb
alls/Archive_Tar-1.3.3.tar...
installing phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.phar/PEAR/go-pear-tarb
alls/Console_Getopt-1.2.3.tar...
installing phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.phar/PEAR/go-pear-tarb
alls/PEAR-1.8.0.tar...
installing phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.phar/PEAR/go-pear-tarb
alls/Structures_Graph-1.0.2.tar...
installing phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.phar/PEAR/go-pear-tarb
alls/XML_Util-1.2.1.tar...
install ok: channel://pear.php.net/Archive_Tar-1.3.3
install ok: channel://pear.php.net/Console_Getopt-1.2.3
ERROR: unable to unpack phar://C:/php-5.3.5-Win32-VC6-x86/PEAR/go-pear.phar/PEAR
/go-pear-tarballs/Structures_Graph-1.0.2.tar
install ok: channel://pear.php.net/XML_Util-1.2.1
install ok: channel://pear.php.net/PEAR-1.8.0
PEAR: Optional feature webinstaller available (PEAR's web-based installer)
PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)

PEAR: To install optional features use "pear install pear/PEAR#featurename"

******************************************************************************
WARNING! The include_path defined in the currently used php.ini does not
contain the PEAR PHP directory you just specified:
<C:\php-5.3.5-Win32-VC6-x86\pear>
If the specified directory is also not in the include_path used by
your scripts, you will have problems getting any PEAR packages working.


Would you like to alter php.ini <C:\php-5.3.5-Win32-VC6-x86\php.ini>? [Y/n] : Y

php.ini <C:\php-5.3.5-Win32-VC6-x86\php.ini> include_path updated.

Current include path : .;C:\php\pear
Configured directory : C:\php-5.3.5-Win32-VC6-x86\pear
Currently used php.ini (guess) : C:\php-5.3.5-Win32-VC6-x86\php.ini
Press Enter to continue:

** WARNING! Old version found at C:\php-5.3.5-Win32-VC6-x86, please remove it or
be sure to use the new c:\php-5.3.5-win32-vc6-x86\pear.bat command

The 'pear' command is now at your service at c:\php-5.3.5-win32-vc6-x86\pear.bat

続行するには何かキーを押してください . . .

できやした


■Mailをインストール

c:\php-5.3.5-Win32-VC6-x86>pear install -a Mail WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-upd ate pear.php.net" to update downloading Mail-1.2.0.tgz ... Starting to download Mail-1.2.0.tgz (23,214 bytes) ........done: 23,214 bytes downloading Net_SMTP-1.5.0.tgz ... Starting to download Net_SMTP-1.5.0.tgz (12,567 bytes) ...done: 12,567 bytes downloading Net_Socket-1.0.10.tgz ... Starting to download Net_Socket-1.0.10.tgz (5,429 bytes) ...done: 5,429 bytes downloading Auth_SASL-1.0.4.tgz ... Starting to download Auth_SASL-1.0.4.tgz (5,795 bytes) ...done: 5,795 bytes

Warning: require_once(Structures/Graph.php): failed to open stream: No such file
or directory in PEAR\Downloader.php on line 1217
PHP Warning: require_once(Structures/Graph.php): failed to open stream: No such
file or directory in C:\php-5.3.5-Win32-VC6-x86\PEAR\PEAR\Downloader.php on lin
e 1217
PHP Stack trace:
PHP 1. {main}() C:\php-5.3.5-Win32-VC6-x86\PEAR\pearcmd.php:0
PHP 2. PEAR_Command_Common->run() C:\php-5.3.5-Win32-VC6-x86\PEAR\pearcmd.php:
308
PHP 3. PEAR_Command_Install->doInstall() C:\php-5.3.5-Win32-VC6-x86\PEAR\PEAR\
Command\Common.php:271
PHP 4. PEAR_Downloader->sortPackagesForInstall() C:\php-5.3.5-Win32-VC6-x86\PE
AR\PEAR\Command\Install.php:700
PHP Fatal error: require_once(): Failed opening required 'Structures/Graph.php'
(include_path='C:\php-5.3.5-Win32-VC6-x86\pear') in C:\php-5.3.5-Win32-VC6-x86\
PEAR\PEAR\Downloader.php on line 1217
PHP Stack trace:
PHP 1. {main}() C:\php-5.3.5-Win32-VC6-x86\PEAR\pearcmd.php:0
PHP 2. PEAR_Command_Common->run() C:\php-5.3.5-Win32-VC6-x86\PEAR\pearcmd.php:
308
PHP 3. PEAR_Command_Install->doInstall() C:\php-5.3.5-Win32-VC6-x86\PEAR\PEAR\
Command\Common.php:271
PHP 4. PEAR_Downloader->sortPackagesForInstall() C:\php-5.3.5-Win32-VC6-x86\PE
AR\PEAR\Command\Install.php:700

Mailもエラー、ぐぐると
http://www.sencha.com/forum/showthread.php?120958-Php-Pear-Hell-can-t-install-Logger-(Solved)&p=569977

[solution] 1. Download and uncompress Structures_Graph from the pear.php.net website. Note: ? may want to get a version older than your current install of PEAR, though I had no trouble with the latest version (1.0.4) while running PEAR 1.8.0

2. Move folders/files into place
To find where to move this folder, if you don't know:
cmdline> pear config-show
Find the path for "PEAR directory php_dir", which is your PEAR\lib folder

"Structures" folder -> move into the "PEAR\lib" folder

The rest can be deleted as they'll be created when you actually install Structures_Graph, but for reference:
"LICENSE" -> delete or move it to "PEAR" root, or docs or wherever
"docs" folder -> delete or move into the "PEAR\docs" folder
"tests" folder -> delete of move into the "PEAR\tests" folder
"package.xml" -> delete, and any other package files

3. Install "Structures_Graph", Even though the files are present, Structures_Graph is not really installed yet.
command line> pear -a install Structures_Graph
This will install the latest version from your configured channel (ex. pear.php.net)
The -a argument will install any dependent packages as well

4. Upgrade your PEAR install to current version
cmdline> pear upgrade PEAR

5. Upgrade the package Console_GetOpt. It likely was not installed properly yet
cmdline> pear upgrade Console_Getopt


◇Structures_Graphを手動でインストール
上記を順にやってくと、
Structures_Graph
をげっと
http://pear.php.net/package/Structures_Graph/download
の右の方の「For manual installation only」のリンク
http://download.pear.php.net/package/Structures_Graph-1.0.4.tgz

解凍して
Structures
フォルダのみを
C:\php-5.3.5-Win32-VC6-x86\PEAR\Structures
にコピーして
再び
pear install -a Structures_Graph

c:\php-5.3.5-Win32-VC6-x86>pear install -a Structures_Graph WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-upd ate pear.php.net" to update downloading Structures_Graph-1.0.4.tgz ... Starting to download Structures_Graph-1.0.4.tgz (30,318 bytes) .........done: 30,318 bytes ERROR: failed to mkdir C:\php\pear\docs\Structures_Graph\docs\html\media

こんどは別のエラー

pear config-show
すると
C:\php-5.3.5-Win32-VC6-x86
でなくて
C:\php
になっている箇所多数

c:\php-5.3.5-Win32-VC6-x86>pear config-show CONFIGURATION (CHANNEL PEAR.PHP.NET): ===================================== Auto-discover new Channels auto_discover <not set> Default Channel default_channel pear.php.net HTTP Proxy Server Address http_proxy <not set> PEAR server [DEPRECATED] master_server pear.php.net Default Channel Mirror preferred_mirror pear.php.net Remote Configuration File remote_config <not set> PEAR executables directory bin_dir C:\php-5.3.5-Win32-VC6-x86 PEAR documentation directory doc_dir C:\php\pear\docs PHP extension directory ext_dir C:\php PEAR directory php_dir C:\php-5.3.5-Win32-VC6-x86\pear PEAR Installer cache directory cache_dir C:\Users\y\AppData\Local\Temp\pe ar\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 C:\Users\y\AppData\Local\Temp\pe ar\download directory PHP CLI/CGI binary php_bin .\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:\Users\y\AppData\Local\Temp\pe ar\temp PEAR test directory test_dir C:\php\pear\tests PEAR www files directory www_dir C:\php\pear\www Cache TimeToLive cache_ttl 3600 Preferred Package State preferred_state stable Unix file mask umask 0 Debug Log Level verbose 1 PEAR password (for password <not set> maintainers) Signature Handling Program sig_bin C:\Program Files (x86)\GNU\GnuPG\gpg.EXE Signature Key Directory sig_keydir C:\Windows\pearkeys Signature Key Id sig_keyid <not set> Package Signature Type sig_type gpg PEAR username (for username <not set> maintainers) User Configuration File Filename C:\Windows\pear.ini System Configuration File Filename C:\Windows\pearsys.ini

pear config-set
しまくってなおす

c:\php-5.3.5-Win32-VC6-x86>pear config-set doc_dir C:\php-5.3.5-Win32-VC6-x86\pe ar\docs config-set succeeded

c:\php-5.3.5-Win32-VC6-x86>pear config-set ext_dir C:\php-5.3.5-Win32-VC6-x86
config-set succeeded

c:\php-5.3.5-Win32-VC6-x86>pear config-set cfg_dir C:\php-5.3.5-Win32-VC6-x86\pe
ar\cfg
config-set succeeded

c:\php-5.3.5-Win32-VC6-x86>pear config-set data_dir C:\php-5.3.5-Win32-VC6-x86\p
ear\data
config-set succeeded

c:\php-5.3.5-Win32-VC6-x86>pear config-set test_dir C:\php-5.3.5-Win32-VC6-x86\p
ear\tests
config-set succeeded

c:\php-5.3.5-Win32-VC6-x86>pear config-set www_dir C:\php-5.3.5-Win32-VC6-x86\pe
ar\www
config-set succeeded

でC:\phpがなくなってる↓


c:\php-5.3.5-Win32-VC6-x86>pear config-show
CONFIGURATION (CHANNEL PEAR.PHP.NET):
=====================================
Auto-discover new Channels auto_discover <not set>
Default Channel default_channel pear.php.net
HTTP Proxy Server Address http_proxy <not set>
PEAR server [DEPRECATED] master_server pear.php.net
Default Channel Mirror preferred_mirror pear.php.net
Remote Configuration File remote_config <not set>
PEAR executables directory bin_dir C:\php-5.3.5-Win32-VC6-x86
PEAR documentation directory doc_dir C:\php-5.3.5-Win32-VC6-x86\pear\
docs
PHP extension directory ext_dir C:\php-5.3.5-Win32-VC6-x86
PEAR directory php_dir C:\php-5.3.5-Win32-VC6-x86\pear
PEAR Installer cache directory cache_dir C:\Users\y\AppData\Local\Temp\pe
ar\cache
PEAR configuration file cfg_dir C:\php-5.3.5-Win32-VC6-x86\pear\
cfg
directory
PEAR data directory data_dir C:\php-5.3.5-Win32-VC6-x86\pear\
data
PEAR Installer download download_dir C:\Users\y\AppData\Local\Temp\pe
ar\download
directory
PHP CLI/CGI binary php_bin .\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:\Users\y\AppData\Local\Temp\pe
ar\temp
PEAR test directory test_dir C:\php-5.3.5-Win32-VC6-x86\pear\
tests
PEAR www files directory www_dir C:\php-5.3.5-Win32-VC6-x86\pear\
www
Cache TimeToLive cache_ttl 3600
Preferred Package State preferred_state stable
Unix file mask umask 0
Debug Log Level verbose 1
PEAR password (for password <not set>
maintainers)
Signature Handling Program sig_bin C:\Program Files
(x86)\GNU\GnuPG\gpg.EXE
Signature Key Directory sig_keydir C:\Windows\pearkeys
Signature Key Id sig_keyid <not set>
Package Signature Type sig_type gpg
PEAR username (for username <not set>
maintainers)
User Configuration File Filename C:\Windows\pear.ini
System Configuration File Filename C:\Windows\pearsys.ini

再度、
pear install -a Structures_Graph

pear install -a Mail
でいけた。。

PHPのインストール場所は
C:\phpにしとけっちゅうことですね。。。

c:\php-5.3.5-Win32-VC6-x86>pear install -a Structures_Graph WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-upd ate pear.php.net" to update downloading Structures_Graph-1.0.4.tgz ... Starting to download Structures_Graph-1.0.4.tgz (30,318 bytes) .........done: 30,318 bytes install ok: channel://pear.php.net/Structures_Graph-1.0.4

c:\php-5.3.5-Win32-VC6-x86>pear install -a Mail
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-upd
ate pear.php.net" to update
downloading Mail-1.2.0.tgz ...
Starting to download Mail-1.2.0.tgz (23,214 bytes)
........done: 23,214 bytes
downloading Net_SMTP-1.5.0.tgz ...
Starting to download Net_SMTP-1.5.0.tgz (12,567 bytes)
...done: 12,567 bytes
downloading Net_Socket-1.0.10.tgz ...
Starting to download Net_Socket-1.0.10.tgz (5,429 bytes)
...done: 5,429 bytes
downloading Auth_SASL-1.0.4.tgz ...
Starting to download Auth_SASL-1.0.4.tgz (5,795 bytes)
...done: 5,795 bytes
install ok: channel://pear.php.net/Mail-1.2.0
install ok: channel://pear.php.net/Net_Socket-1.0.10
install ok: channel://pear.php.net/Auth_SASL-1.0.4
install ok: channel://pear.php.net/Net_SMTP-1.5.0

c:\php-5.3.5-Win32-VC6-x86>


c:\php-5.3.5-Win32-VC6-x86>pear list
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET:
=========================================
PACKAGE VERSION STATE
Archive_Tar 1.3.3 stable
Auth_SASL 1.0.4 stable
Console_Getopt 1.2.3 stable
Mail 1.2.0 stable
Net_SMTP 1.5.0 stable
Net_Socket 1.0.10 stable
PEAR 1.8.0 stable
Structures_Graph 1.0.4 stable
XML_Util 1.2.1 stable

c:\php-5.3.5-Win32-VC6-x86>


| | コメント (2) | トラックバック (0)

より以前の記事一覧