Mac OS X での httpd 設定メモ

1. 各ソフトウェア確認
$ perl -v
This is perl, v5.10.0 built for darwin-thread-multi-2level

$ php -v
PHP 5.3.0 (cli) (built: Jul 19 2009 00:34:29)

$ python -V
Python 2.6.1

2. confファイル修正
$ sudo vi /private/etc/apache2/httpd.conf

#コメントを外す(php用)
LoadModule php5_module libexec/apache2/libphp5.so

#コメントを外す(perl, python CGI用)
AddHandler cgi-script .cgi

$ sudo vi /private/etc/apache2/users/{username}.conf
# ExecCGI追加

<Directory "/Users/{username}/Sites/">
    #Options Indexes MultiViews
    Options Indexes MultiViews ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

 
3. 確認

perl.cgi

#!/usr/bin/perl
print "Content-type: text/html\n\n";
foreach(sort keys %ENV){
    print "$_: $ENV{$_}
\n"; }

python.cgi

#!/usr/bin/python
import os
print "Content-type: text/html\n\n";
for param in os.environ.keys():
  print "%20s %s<br/>" % (param,os.environ[param])

test.php

<?php
    phpinfo();
?>

Flickr API を使ってみよう

自分の個人サイトにFlickrの写真を取り込もうとしてFeedを探してみたが、少ない!情報量も少なくて、困ったな~と思った時FlickrのAPIを思い出した。FlickrのAPIは結構前から出たが、日本のユーザにとってはそんなに使われてないようだ。Flickr自身も中国語、韓国語はサポートしてるのに、なぜか日本語はサポートされてない。英語が苦手な僕にとって英語マニュアルを読むのが苦痛であった。幸い繁體中国語があったので、比較的に楽だった。しかしサンプルコードがなかったので、どのメソッドを使えばどのようなレスポンスが返ってくるとか、写真のURL生成はどうすればよいとか戸惑った部分があったので、FlickrAPIを使うにあたって基本的な部分を紹介したいと思います。

PHPのserialize, unserializeを使ったサンプルである。

1.API Key取得以下のところでAPI Keyを取得。(入力項目は適当に)
http://www.flickr.com/services/api/keys/

2. PHPからリクエスト発行
サンプルの ‘api_key’ の部分は1で取得したキーを使用。

<?php
  //API パラメータ
  $params = array('api_key' => '**************',
          'method' => 'flickr.photos.search',
          'user_id' => '9823188@N07',
          'format' => 'php_serial',);
  $encoded_params = array();

  foreach ($params as $k => $v){
    $encoded_params[] = urlencode($k).'='.urlencode($v);
  }

  //API リクエスト
  $url = "http://api.flickr.com/services/rest/?".
                      implode('&', $encoded_params);
  $rsp = file_get_contents($url);
  $rsp_obj = unserialize($rsp);

  //API レスポンス
  if ($rsp_obj['stat'] == 'ok'){
    foreach ($rsp_obj['photos']['photo'] as $photo){
      $farm_id = $photo['farm'];
      $server_id = $photo['server'];
      $id = $photo['id'];
      $secret = $photo['secret'];
      echo "<img src='http://farm".$farm_id.".
            static.flickr.com/";
      echo $server_id."/".$id."_".$secret."_s.jpg'/>";
    }
  }else{
    echo "呼び出し失敗!";
  }
?>

今回は、flickr.photos.searchというメソッドを使いましたが、そのほかにいろんなメソッドがあります。http://www.flickr.com/services/api/オプションとして、lightboxと組み合わせるともっと格好いいアルバムをつくれるはずです。

http://www.dongriab.com/test

半角ダッシュ

日本語キーボードから「半角ダッシュ」入力できる?

  • ー [全]長音
  • - [全]マイナス
  • – [半]ハイフン、マイナス
  • ー [半]長音
  • ― [全]ダッシュ
  • ‐ [全]ハイフン

いろいろ試してみたが、駄目でした。ユーザはどうやって入力できったんだろう?いたずら?

PostgreSQLのキャラクターセットをUTF8以外に設定した場合、半角ダッシュは登録されないらしいです。2ヶ月前にリリースしたシステムでバグリました。正確に言うと2年前にリリースしたシステムなんですけどね...うっん。 何社経由して来たが、今回 ”運がよかった” のでぴったりあたりました。ハハハ~

そろらくMysqlも同じでしょう。