アーカイブ

‘tips’ タグのついている投稿

MacPorts (Snow Leopard) でPHP 5.2.13をインストールしようとしたらエラー → 一応解決

The Robot compilando unas patatas y friendo un compilador de Haskell, o no sé qué
Creative Commons License photo credit: sporras

※ 2010.6.3 追記
現在は問題なくインストールできるようです。

MacPorts (Snow Leopard)を使ってPHP5.2.13をインストールしようとしたら次のようなエラーが発生してしまいました。

$ sudo port -d install php52 +apache2 +mysql5 +pear
(中略)
Undefined Undefinedsymbols:
   "_zif_setlocale", symbolsreferenced:
from :
"   _zif_setlocale " ,  _basic_functionsreferenced  infrom :basic_functions.o
ld:
symbol  ( s) not found
_basic_functions in basic_functions.o
ld: symbol(s) not found
collect2: collect2: ld returned 1 exit status
ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
make: *** Waiting for unfinished jobs....
make: *** [libs/libphp5.bundle] Error 1

色々調べてみたところ、gettextというパッケージが悪さをしていることが判明しました。

どうやら、gettextのバージョンを0.18から0.17に下げる必要があるみたい。

以下のコマンドを実行し、gettextをダウングレードします。
(参考:【port / MacPorts】古いバージョンのパッケージをインストールする方法 sakatam blog

$ sudo port deactivate gettext
$ cd ~/Downloads
$ svn co -r 30842 http://svn.macports.org/repository/macports/trunk/dports/devel/gettext
$ cd gettext
$ sudo port install

gettextをダウングレードしたので、gettextパッケージに依存しているすべてのパッケージをリビルドする必要があります。

autoconfが依存するgawkというパッケージに関しては、MacPortsでインストールされるのが少し古いバージョンなので、アンインストールしてシステムにデフォルトでインストールされているものが使われるようにします。

$ sudo port deactivate gawk
$ sudo port clean gawk
$ sudo port -n upgrade --force autoconf

他のパッケージもリビルドしていきます。

$ sudo port -n upgrade --force libidn
$ sudo port -n upgrade --force curl

これでインストールの準備は完了、と言いたいところですが、まだしなければいけないことがあります。

このままMacPortsでインストールを実行するとautoconfの部分でエラーが発生してしまうので、手動でautoconfを実行しなければなりません。
MacPortsでインストールしたautoconfを使っていることがエラーの原因なので、システムにデフォルトでインストールされているautoconfを使ってコンフィグレーションファイルを作成します。

$ sudo port clean php52
$ sudo port -d configure php52 +apache2 +mysql5 +pear
$ cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_php52/work/php-5.2.13/
$ sudo autoconf

さらに、手動で./configureも実行してしまいます。

# めちゃくちゃ長いコマンドです。MacPortsによる自動インストールの時に実行されるコマンドと全く同じものです。
# このコマンドはphp52パッケージインストール時に指定するvariantsによって変わってきます。(下の例は僕の場合)
# 実際のコマンドは「port -d configure php52 <variants>  」を実行した時の出力で確認することができます。

$ sudo ./configure --prefix=/opt/local --mandir=/opt/local/share/man --infodir=/opt/local/share/info --with-config-file-path=/opt/local/etc/php5 --with-config-file-scan-dir=/opt/local/var/db/php5 --enable-calendar --with-iconv=/opt/local --enable-exif --enable-ftp --enable-wddx --with-zlib=/opt/local --with-bz2=/opt/local --without-sqlite --without-pdo-sqlite --with-libxml-dir=/opt/local --with-gettext=/opt/local --with-libexpat-dir=/opt/local --with-xmlrpc --enable-soap --enable-bcmath --enable-mbstring --enable-dba --enable-zip --with-openssl=/opt/local --with-mhash=/opt/local --with-mcrypt=/opt/local --with-mime-magic --with-xsl=/opt/local --with-curl=/opt/local --with-pcre-regex=/opt/local --with-gd --with-jpeg-dir=/opt/local --with-png-dir=/opt/local --enable-gd-native-ttf --with-freetype-dir=/opt/local --with-ldap=/usr --with-kerberos=/usr --with-iodbc=/usr --with-apxs2=/opt/local/apache2/bin/apxs --with-mysql=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_php52/work/mysql5 --with-pdo-mysql=/opt/local/bin/mysql_config5 --with-mysql-sock=/opt/local/var/run/mysql5/mysqld.sock --with-mysqli=/opt/local/bin/mysql_config5 --with-pear=/opt/local/lib/php

これでようやくPHPをインストールする準備が整いました。
以下のコマンドを実行して、PHP 5.2.13をインストールします。

$ sudo port -d install php52 +apache2 +mysql5 +pear
$ sudo cp /opt/local/etc/php5/php.ini-dist /opt/local/etc/php5/php.ini
$ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" /opt/local/apache2/modules/libphp5.so

エラーが表示されなければ、無事インストール完了です。

autoconfのあたりが少々スマートじゃないですが、一時的な対応策ということでよしということにしておきます。
早く、gettextの開発者が対応してくれるといいですね!

それでは!

カテゴリー: プログラミング タグ: , , , ,

[MySQL] 特定のデータベースをバックアップ & リストアする方法

2010 年 2 月 10 日 kadoppe コメントはありません

いつも忘れてしまうので、メモ。

以下のコマンドを実行することで、特定のデータベースをバックアップすることができます。バックアップファイル名は何でもいいですが、バックアップ日時がわかるような名前をつけると後々便利かと思います。

$ mysqldump データベース名 -u root -p --opt > バックアップファイル名

次はリストア。以下のコマンドを実行することで、先程作成したバックアップファイルからリストアすることができます。

$ mysql -u root -p データベース名 < バックアップファイル名

頻繁に使わないコマンドはすぐに忘れてしまうなぁ。みなさんはどうやって覚えているんでしょうか?

カテゴリー: サーバ タグ: , , ,

[PHP] 現在のUnixタイムスタンプをマイクロ秒単位で取得する方法

2010 年 2 月 10 日 kadoppe コメントはありません

PHPで現在のUnixタイムスタンプをマイクロ秒単位で取得したい時は、microtime()関数を使うとよいそうです。最初、どうすればよいかわからなかったので一応メモしておきます。

使い方は以下の通り。

$time = microtime(true);
echo $time;    // output: "1265774277.5366"

引数に「true」を渡すことで戻り値がfloat型になります。

引数に何も渡さない場合 、または「false」を渡した場合は、以下のようにマイクロ秒とUnixタイムスタンプをスペースで区切った文字列が出力されるので注意が必要です。

$time = microtime();
echo $time; // output: "0.53658800 1265774277"
カテゴリー: プログラミング タグ: ,

MySQLのrootパスワードを忘れてしまった時の対処法

2010 年 1 月 12 日 kadoppe コメント 1 件

Airport Coding

MacPortsを使ってインストールしたMySQLのrootパスワードを忘れてしまったので(というか設定した覚えがない)、rootパスワードを再設定しました。また忘れてしまった時のために手順をメモしておこうと思います。(当方の環境はSnow Leopard + MySQL 5.1.42。)

なお、今回作業するにあたって以下のページを参考にさせていただきました。ありがとうございます!

まず以下のコマンドを実行し、起動中のMySQLを停止させます。

$ sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop

次に以下のコマンドを実行してMySQLを直接起動させます。「skip-grant-tables」オプションを指定することで、MySQLにパスワードなしでログインしたり、権限の問題で本来ならばアクセスできないデータベースにアクセスすることができるようになるみたいです。なんだか怖いオプションですね。。

$ sudo mysqld_safe5 --user=root --skip-grant-tables

MySQLが起動したら、rootユーザでログインします。パスワードなんていらないぜ!

$ mysql5 -u root

ログインできたら新しいrootパスワードを設定します。念のため「flush privileges;」で権限データのキャッシュをクリアしておきます。

mysql> use mysql
mysql> update user set password=password('新しいパスワード') where user='root';
mysql> flush privileges;
mysql> exit

ログアウトしたらMySQLを再起動します。

$ sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper restart

最後に以下のコマンドを実行し、新しいパスワードでMySQLにログインすることができたら成功です。

$ mysql5 -u root -p

パスワードがわからなかったときはかなり焦ってしまいましたが、なんとか復帰できました。よかったよかった。

カテゴリー: サーバ タグ: , ,

[Mac OS X Snow Lepard]デフォルトのログインシェルをzshに変更する

weary traveler

Mac OS X(Snow Leopard)で、Terminal.appを起動した直後に起動されるログインシェルをzshに変更します。

Terminal.appで以下のコマンドを実行すればOKです!

sudo dscl . -create /Users/<ユーザ名> UserShell /bin/zsh

「<ユーザ名>」の部分は、皆さんのログインユーザ名に置き換えてください。

なお、「/bin/zsh」の部分をタイプミスしてしまうと、新しいターミナルを開いた際にシェルのファイルが見つからないので、シェルが立ち上がらなくなってしまいます。Finderを使ってシェルのファイルをコピー or リネームすることで復活可能ですが、面倒なので注意です!

カテゴリー: PC タグ: , , ,

[MacPorts]Mac OS X Snow LeopardにGitをインストール

more-magit-log

MacPortsを使ってMac OS X Snow LeopardにGitをインストールする方法をメモします。

といっても、ターミナルで以下のコマンドを実行するだけ。簡単すぎました。

$ sudo port install git-core

パッケージが「git」ではなくて「git-core」となっているのがつまづきポイントですね!(誰もつまづかないか・・)

カテゴリー: プログラミング タグ: , , , ,

購読中のRSSフィードを「3層式RSS整理法」に基づいて整理したので公開してみる

rss

最近購読中のRSSフィードの数が増えてきて、Googleリーダーと共に過ごす時間が増えすぎている感じがあるので、大規模な購読解除を伴なうフィードの整理を行いました。いい機会なので、整理した結果を記事にまとめてみようと思います。

整理するにあたって、「iPhone情報整理術」という本に書かれていた「どんなにたくさんのブログを購読していても破綻しない3層式RSS整理法」を元に、Googleリーダーに以下のフォルダを作成しました。

  • must-read:必ず目を通す
  • scan:目を通す
  • skip:飛ばしてもよい
  • real:リアルの知り合いのブログなど(3層式RSS整理法に僕が勝手に追加)
iPhone情報整理術 ~あなたを情報’’強者’’に変える57の活用法!(デジタル仕事術シリーズ) iPhone情報整理術 ~あなたを情報’’強者’’に変える57の活用法!(デジタル仕事術シリーズ)

技術評論社 2009-10-21
売り上げランキング : 107
おすすめ平均

Amazonで詳しく見る by G-Tools

それでは、それぞれのフォルダに対して僕が与えている役割と、そこに登録しているRSSフィードについて説明したいと思います。

must-read

このフォルダには必ず読みたいブログのRSSフィードを登録します。基本的に全ての記事に目を通します。ただしタイトルを見て、明らかに広告記事であったり、興味が無い内容が書かれていることが予想される場合は読みません。

登録しているRSSフィード(50音順)

  • 404 Blog Not Found
    小飼弾さんのブログ。書評とプログラミング、その他のIT分野について幅広く記事を書かれています。個人的に小飼弾さんのファンだったりします。
  • TechCrunch Japan
    新しいインターネットサービスやそれに関わる企業、それらに関連するニュースを紹介されています。更新が頻繁にあり、また記事の質も高いような気がします。
  • わーどぷれすっ!
    個人的にWordPressのオープンソースコミュニティに興味があるので購読しています。
  • シゴタノ!
    ライフハック系の記事、書評などの記事が公開されています。ライフハックが僕の趣味の一つであること、また実際に日々の活動で役に立つ記事も多いので購読しています。

scan

ブログオリジナルのRSSフィードではなく、ソーシャルブックマークサービス、Twitterによってフィルタリングされた結果のRSSフィードを登録します。まずざーっとタイトルにだけ目を通しながら気になった記事にスターを付け、後ほどスターがついた記事を全て読みます。

登録しているRSSフィード(50音順)

  • はてなブックマーク – 人気エントリー
    はてなブックマークの人気エントリーリストです。今インターネットの世界で注目を集めている記事・ページの情報をここで収集することができます。
  • はてなブックマーク – kadoppeのブックマーク – お気に入り(URL・フィードのタイトルは僕の場合です)
    はてなブックマークで、自分が「お気に入り」登録したユーザがブックマークした記事のリストです。自分と趣味趣向が似ているユーザを「お気に入り」に登録することで、自分の趣味趣向とマッチした記事・ページの情報を集めやすいです。
  • Delicious hotlist
    目的としては「はてなブックマーク – 人気エントリー」と同じです。はてなブックマークでは日本語記事が中心的にブックマークされているのに対し、「Delicious hotlist」ではほぼ全てを英語記事が占めているという点が違います。
  • Delicious/Network/kadoppe(URL・フィードのタイトルは僕の場合です)
    目的としては「はてなブックマーク – kadoppeのブックマーク – お気に入り」と同じです。Deliciousで自分のNetworkに登録したユーザがブックマークした記事のリストを得ることができます。
  • Readtwit
    Twitterで自分がフォローしているユーザのつぶやきに含まれているURLを解析し、RSSフィードとして出力してくれるサービスです。Twitterでは自分の趣味趣向に近いユーザをフォローしていると思うので、自分の趣味趣向とマッチした記事・ページの情報を集めやすいです。
    (解説記事:Twitterタイムラインで流れたURLをまとめてくれるサイト「Readtwit」 * 二十歳街道まっしぐら

skip

更新頻度・記事数が多いニュースサイト等を登録します。基本的にはscanフォルダに含まれているRSSフィードと同じ読み方をしますが、読む時間がない場合は一気に全記事を既読にしてしまいます。

登録しているRSSフィード(50音順)

real

リアルの知り合いが運営するブログのRSSフィードを登録します。読み方としては「must-read」と「scan」の中間ぐらい。どちらにも分類できなさそうなので新しくフォルダを作成しました。ストーカーではありませんけど、リアルの知り合いが何をして何を考えているのか、僕としてはかなり知りたいですね。(登録しているRSSフィードは非公開)

まとめ

整理した、結果購読しているフィードの数が18個になりました。以前は確か200個以上のフィードを購読していたので、90%以上の削減に成功したことになります。やったー!あと、個人的にはReadtwitが衝撃的に便利でした。

情報収集を行うことが手段ではなく目的になってしまわないように、定期的に購読しているフィードを整理することをおすすめします。やっぱり購読しているフィードの数が多すぎると時間くっちゃいますしね!

もし、「こんなオススメフィードがあるよ」などの情報をお持ちでしたら、教えていただけると嬉しいです!

カテゴリー: Web タグ: , ,