Movable Typeをローカル環境にインストールしようとした時に躓いたのでメモ。
※私のはMac OS10.5.6にMAMPをインストールした環境です。
DBD::mysqlがインストールされてない
ローカルにMovable Typeを解凍&設置し、mt-check.cgiを走らせたところ、
サーバーにDBD::mysqlがインストールされていないか、DBD::mysqlに必要なモジュールがインストールされていません DBIとDBD::mysqlは、MySQLを使ってブログのデータを管理するために必要です。 DBD::mysqlをインストールする場合は、インストール手順を参照してください。
なエラーが。MAMPはデフォでMySQLをインストールしてくれるので、DBD::mysqlとはperlとMySQLをつないでくれる便利なモノと予想。まあ、それはどうでもよくて、DBD::mysqlをインストールすることに。
DBD::mysqlをインストール
MySQLとDBD::mysqlが必要となるのでダウンロードし解凍しとく。
以下を実行
1. mysql_configを探す。(私の場合は /Applications/MAMP/Library/bin/ にある)※Macが主流になってきました様より引用
2. MAMPと同じバージョンのMySQLをダウンロードして、解凍する。
(訳注.mySQLのサイトからでもよし、MAMPのサイトでソース版をダウンロードしてもよし)
3. includeディレクトリを /Applications/MAMP/Library/ディレクトリの下に移動する。
4. libディレクトリの内容を /Applications/MAMP/Library/lib/mysql/ディレクトリにコピーする。
5. ターミナルを起動し、DBD::mysqlを解凍したディレクトリに移動
6. make file を作る:
sudo Perl Makefile.PL --mysql_config=/Applications/MAMP/Library/bin/mysql_config
(訳注.mysql_configを指定することによって、この環境用のコンパイル引数を調べて設定してくれる)
※自分の場合、このままでは無理でした。当エントリの下の方参照
7. sudo make
8. sudo make install
ここで make コマンドが使えない
-bash: make: command not foundとハマる。
makeコマンドを使用できるようDeveloper Toolをインスト
appleのADC member siteより、Xcode (最新ver) Developer ToolsをDL&インストール
※DLにメンバー登録が必要です。(無料)
Device Centralが起動するか心配
Xcodeがあると、Device Central CS3が起動しないという症状があり、以前Xcodeをアンインストールしました。→Device Central CS3起動するようになった。
で、今回、Xcode 3.1.2をインストールしたところ、Device Central CS3も無事起動!!
makeコマンドも無事使用可能に
ということで、makeコマンドが通り、無事にDBD::mysqlがインストールされ、かつMac0S 10.5.6 & Movable Type + MySQL環境が構築できました。おわり。
嘘です。MySQLを選ぶところでこんなエラーが。(apache_error_logより)
[Thu Apr 23 23:40:17 2009] [notice] Digest: generating secret for digest authentication ... [Thu Apr 23 23:40:17 2009] [notice] Digest: done [Thu Apr 23 23:40:17 2009] [notice] Apache/2.0.59 (Unix) PHP/5.2.6 DAV/2 configured -- resuming normal operations [Thu Apr 23 23:40:26 2009] [error] [client ::1] dyld: lazy symbol binding failed: Symbol not found: _mysql_init, referer: http://localhost/mt/mt-wizard.cgi [Thu Apr 23 23:40:26 2009] [error] [client ::1] Referenced from: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, referer: http://localhost/mt/mt-wizard.cgi [Thu Apr 23 23:40:26 2009] [error] [client ::1] Expected in: dynamic lookup, referer: http://localhost/mt/mt-wizard.cgi [Thu Apr 23 23:40:26 2009] [error] [client ::1] , referer: http://localhost/mt/mt-wizard.cgi [Thu Apr 23 23:40:26 2009] [error] [client ::1] dyld: Symbol not found: _mysql_init, referer: http://localhost/mt/mt-wizard.cgi [Thu Apr 23 23:40:26 2009] [error] [client ::1] Referenced from: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, referer: http://localhost/mt/mt-wizard.cgi [Thu Apr 23 23:40:26 2009] [error] [client ::1] Expected in: dynamic lookup, referer: http://localhost/mt/mt-wizard.cgi [Thu Apr 23 23:40:26 2009] [error] [client ::1] , referer: http://localhost/mt/mt-wizard.cgi [Thu Apr 23 23:40:26 2009] [error] [client ::1] Premature end of script headers: mt-wizard.cgi, referer: http://localhost/mt/mt-wizard.cgi
perlからMySQLへアクセスするスクリプトを試す
※mt425っていうデータベースとユーザはphpMyadminより作成してあります。
use DBI; $user = 'hoge'; $passwd = 'hoge'; #$db = DBI->connect('DBI:mysql:hoge:localhost', $user, $passwd); $db = DBI->connect('DBI:mysql:mt425:localhost:mysql_socket=/Applications/MAMP/tmp/mysql/mysql.sock', $user, $passwd); $sth = $db->prepare("SELECT cd, nm FROM test"); $sth->execute; $num_rows = $sth->rows; print "該当 $num_rows 件\n"; for ($i=0; $i<$num_rows; $i++) { @a = $sth->fetchrow_array; print "cd=$a[0], nm=$a[1] \n"; } $sth->finish; $db->disconnect;
結果
dyld: lazy symbol binding failed: Symbol not found: _mysql_init Referenced from: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle Expected in: dynamic lookup dyld: Symbol not found: _mysql_init Referenced from: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle Expected in: dynamic lookup Trace/BPT trap
同じようなエラーが出たんで、Movable Typeはひとまず置いといて、perl&MySQLを解決しなくては。
追加(次の日) 寝て頭すっきりさせたらエラーがなくなった。
弄くりまわしてごちゃごちゃしたらエラーがなくなった。その過程を覚えてる範囲で記載しておきます。
1、用意するMySQLのバージョン
MAMPにはすでにMySQLが入っているのだけど、どうも完全体ではないみたいなので、MySQLをDLしてきて、おいしいところだけチョイスする。その時に「Mac OS X 10.5 (x86)」と「Mac OS X 10.5 (x86_64)」があるわけだが、x86の方を選んだ。※最初はx86_64を選んでいてエラーでてた。ただし、結果的にエラーがなくなっただけで、これが原因かどうかは分かりません。
perl Makefile.PLの設定
perl Makefile.PL --libs="-L/Applications/MAMP/Library/lib/mysql/lib -lmysqlclient" --mysql_config=/Applications/MAMP/Library/bin/mysql_config --testdb=mt425 --testhost=localhost -testuser=mt425 -testpassword=admin
※一行で
※mt425っていうデータベースとユーザはphpMyadminより作成してあります。
自分の場合、
/Applications/MAMP/Library/lib/mysql/lib
にDLしてきたMySQL(Mac OS X 10.5 (x86))のlibファイルをコピペして、Makefile.PL時に設定しました。
後は、
sudo make
sudo make test
sudo make install
です。
make test時にエラーが
/tmp/mysql.sockが無いYO!みたいなエラーが出たけど、これは無視!
※perlでのアクセス時や、movable typeインストール時にmysql.sockの位置を指定できため。
export PATH=$PATH:/Applications/MAMP/Library/bin あと上記のようなコマンドを打ったけど、意味は全然わかっていなかったりする。
OS10.5.6 & Movable Type & MySQL完了
データベースソケットのところにmysql.sockの位置を指定。データベースポートは無視。
これで多分完了。ローカルにmt環境作るだけなんて簡単よ!とか思ってたけど全くそんなことなかった。サーバー弄くれる人尊敬します。
comments
webデザインを勉強についてご指導お願いいたします。
OSは mac、 winどちらがいいのですか?
またOSが決まり次第
1、フォトショップ
2、イラストレーター
3、ドリームウィーバー
の順で勉強しようと考えています、
この順序でのご指摘がありましたら、お願いいたします。
また、参考書などオススメのものがありましたら教えいただけませんか?
>>ASUKAさん
■win,macについて
mac、winともにどっちも良いと思いますが、
個人的にはmacの方が使いやすいように思います。
業界的にもmac率がハンパなく高いです。
■ソフトについて
「webデザイン」の括りでは、イラストレーターはほとんど使わないのですが、
「デザイン」の括りならば、イラストレーターは必須だと思います。
フォトショップは必須です。
ドリームウィーバーは僕は使ってないです(codaってソフト使ってます)
ゆえに、フォトショップとコーディング用エディタが基礎的なものになるかと!
■参考書について
参考書はオススメはないのですが、amazonなどで評価のいい本を2、3冊読めば
だいたいの知識は得られるかと思います。
コメントを入力してください
googleからこちらにたどり着きました。
こちらの有益な情報で無事DBD::mysqlが使えるようになり、感謝感激です。
Very good blog post.Really thank you! Fantastic.
I truly prize your function, Wonderful post.
I appreciate, cause I found just what I was looking for. You have ended my 4 day long hunt! God Bless you man. Have a great day. Bye