徒然日々草(改×2)

生きものネタを時々あっぷ。ほぼ昆虫。ときどき植物。たまに背骨のある動物。

コスモス畑で。

2006-10-29 08:29:51 | 
061028

 コスモスの写真と撮りたい。出来れば、コスモスにとまるトンボの写真みたいなヤラセちっく(笑)な写真が撮りたいと思い立って行ってきました。有名な公園とかは込むので、いつもの某大学の植物園に行こうとバスに乗ってたら、コスモス摘みをやらせてくれるという場所の広告がぶら下がっていて、急遽目的地を変更。穂谷というところに行ってみました。バスに揺られてさらに40分。ついたところは大学もあって、大きな採石場の音が賑やかに響く谷間の田んぼでした。なんか想像と違ってた(^^;)。
 ぽつりぽつりと田んぼの合間にコスモスが植わっている畑があって、それぞれ「コスモス10本100円」と書いた看板とお金を入れる竹筒が立っている。勝手に摘んでお金を入れていくシステムらしい。まずは写真を、と思ったけど、どんどん天気が悪くなっていくし、なんかびみょー。花を撮るときは薄曇りぐらいがいいけど、これは暗すぎる。適当に何枚か・・・といいつつ100枚ぐらいは撮ったのですが、そのなかの1枚をアップしました。トンボはいたけど、枯れた花にばっかり止まるのでビジュアル的にイマイチ。それにひきかえこのツユムシ(?)はちゃんと綺麗な花の上に乗っていてばっちり。これでもっと明るかったらなぁとはおもいますが。(少し明るく補正してます。)写真撮るばっかりじゃ悪いので、帰り際にコスモス摘んで帰りました。ちっちゃい袋しか持ってなかった上に、帰りの道すがらどんどん萎れていくからすごい困った(^^;)。家に帰って水あげしたら綺麗にもとどおりになりましたけどね。

設定変更(postgresql.conf)

2006-10-27 10:55:16 | メモ
 運用しているサーバのPostgreSQLも8に上げてしまおうかと画策中。調べた感じでは8から導入された自動VACUUMとか便利そう。この辺の設定はpostgresql.confというファイルで設定するらしい。とりあえずは自分の個人用のサーバに導入したやつで弄ってみます。あと、ログ管理もエライ柔軟に設定できるようで、ファイル名からファイルの更新、どのレベルのログを残すか、といったことまで事細かに決められる。なので、その辺も設定っと。

■Postgresql.conf 変更点メモ■
■ログ管理に関して
redirect_stderr = on(←設定された項目に関してのログを残すかどうか)
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'(←ファイル名)
log_rotation_age = 10080(←1週間(10080分)でファイル更新するようにした)
□以下ログ内容の設定
log_min_error_statement = error(←SQL文のエラーログも残す)
log_connections = on(←クライアントの接続)
log_disconnections = on(←クライアントの切断)
log_line_prefix = '<%t %u %d %p>'(ログの先頭に時間、ユーザ名、DB名、PIDを表示(例:<2006-10-26 14:37:15 JST 3421>)これがないといつのログか分からないので、デフォにしておいて欲しいねぇ)

■自動VACUUM設定
stats_row_level = on
autovacuum = on
autovacuum_vacuum_threshold = 1000(更新/削除された行数>「1000+0.4*テーブル行数」の時にVacuum)

 とりあえず、こんな感じにしてみました。"pg_ctl restart" で設定完了。ログファイルの場所の設定は"#log_directory = 'pg_log' "とコメントアウトしたままだったけど、なんか勝手にデータベースクラスタの中に"pg_log"というディレクトリが出来て、そのなかにログが残るようになりました。あぁ、助かった。前にあったみたいな深いところにあったら見に行くのが大変だったんだよなぁ。

 次はバックアップからの復元。これが出来たらたぶんアップデートも上手くできると思う。がんばろー。

設定変更(php.ini)

2006-10-26 15:45:49 | メモ
061025
 念願のルリタテハが撮れました。が、いいアングルでは撮れなくて残念。警戒心強くてこれしかまともな写真が撮れなかったのが残念だけど、記念記念v。家の近所で見かけたのですが、うちのホトトギスにもいつか卵を産みに来るかも知れませんね。楽しみだけど、父親に潰される前に発見しないとな(^^;)。

 さて、php.iniを変更しました。(場所は/opt/local/etc/php.ini)

>Language Options
output_buffering = Off
output_handler = mb_output_handler

>Data Handring
default_mimetype = "text/html"
default_charset = utf-8

>Module Settings[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = utf-8
mbstring.http_input = auto
mbstring.http_output = utf-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;

変更が必要?
>session
session.save_path
今はコメントアウトしてある


 あと、コマンド操作でファイルを間違って消しちゃったりしたらイヤなので、これもやっておいた。やばそうなコマンドはこんなもんかな・・・。
% alias rm 'rm -i'
% alias cp 'cp -i'
% alias mv 'mv -i'

 PostgreSQLを8にしたので、新しく参考書を買ってきました。前の版は難しくて読めなかったのに、今読んだら凄く丁寧に書いてあるのが分かった。う~ん、進歩したなぁ自分(自画自賛)。でも、MacPortsから入れたせいか、ディレクトリの位置関係がめちゃめちゃ・・・。ほかにも、環境変数PGDATAとかが設定できて無くてpg_ctlが動かなかったり、手動で設定しようと思ったら、ユーザPostgres81のシェルはbashだったのでコマンドが違ってたり。なにより、この勝手に作られたユーザのパスワードがわからないんですが_| ̄|○。いいのか?コレでいいのか?! 思ったよりさんざんな目にあっている気がします。ファイルの捜索も大変で大変で・・・。ログとか何でこんなに奥深くにあるの?と泣きそうです。ログの保存場所っていつの間に設定されたのかなぁ。変更したい・・・。8にしたんだったら手動で入れればよかったと後悔ひとしきりです。あーあ。
 そんで、具体的な話としては、postgres81でpsqlしたあとに抜けようとすると、

could not save history to file "(Postgres81のHOME)/.psql_history": Permission denied

と言われてたんですが、これは、自動的に".psql_history"をユーザの環境変数HOMEに作ろうとするのに、Postgres81にそのディレクトリの書き込み権がなかったせいだったらしい。で、指定されていたディレクトリの所有者を変えれば文句言われなくなりました・・・。が、そんなコトしてよかったのかなぁ。とちょっと不安。

 とりあえずメモ(PostgreSQL関係)。
>ログのありか
/opt/local/var/db/dports/software/postgresql81-server/8.1.4_0/opt/local/var/log/postgresql81/postgres.log
>データベースクラスタのありか("initdb -D ディレクトリ名"で指定したところ)
/opt/local/var/db/postgresql81/defaultdb
>libのありか
/opt/local/var/db/dports/software/postgresql81/8.1.4_0+darwin_8/opt/local/lib/postgresql81/
>postgresql.confのありか
/opt/local/var/db/postgresql81/defaultdb

MacPortsからPHP4

2006-10-23 14:49:52 | メモ
061023

 昨日、屋上で芋掘りしました。もとい。

 MacPortsでPHP4のインストール。variantsはよく分からないので(詳細見ても説明がない(^^;))適当に。+darwin_8とか+macosxは勝手に判断して付けてくれるみたい。

% sudo port install php4 +apache +curl +gd +postgresql8 +imap

 ここで最後にエラーが出るのでこのサイトさんでなさっているように、/opt/local/lib/php4を削除してリトライ

% port clean php4
% sudo port install php4 +apache +curl +gd +postgresql8 +imap

 これででうまくいきました。あとは/etc/httpdにあるApacheの設定を変更。

LoadModule php4_module /opt/local/libexec/apache/libphp4.so

 Apacheを再起動したら・・・うまくいきました。mbstringも入ってるみたいで一安心。ちなみにPHPの設定ファイル(php.ini)はopt/local/etcにあるphp.ini-distの名前をかえて複製して作るようです。pear.confも同様。

% sudo cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini
% sudo cp /opt/local/etc/php4/pear.conf.sample /opt/local/etc/php4/pear.conf

 あとはPostgreSQLの自動起動とphp.iniの編集かな。

 さて、自動起動。OSX10.4になってから、自動起動したい項目は/Library/LaunchDaemons/にXML形式ファイルを入れるらしい。このそれぞれのファイルの中に、実際に起動するかどうかなどを書き込むみたい。(XLMはさっぱりだが。)
 というわけで、このディレクトリを見てみると、すでに”org.macports.postgresql81-server.plist”が入っている。そして、実際いつの間にか自動起動されているようだ。おぉ。手間が省けてラッキー。たぶん「postgresql81-server」のportをインストールしたからここまでやってくれたのだと思う。普通の「postgresql8」をインストールした人は自分で設定してはるもんね。しかし、ログはどこだ!
 ちなみに、前のとき自動設定につかった”/Library/StartupItems”はまだ健在。何が違うのかは謎。普段個人で使う際には「システム環境設定>アカウント>ログイン項目」で足したり引いたりするのが普通みたい。同じ機能があちこちに散在しているようでややこしいなぁ。

MacPortsからインストール。

2006-10-20 17:04:37 | メモ
 何故か今日は大学からMacPortsが繋がり、早速昨日の続きをしました。

/opt/local/bin/port -v install readline

 で、readlineは成功。つぎにPostgreSQL7・・・。は失敗。やっぱり

../../../../src/include/storage/s_lock.h:551: error: conflicting types for 'slock_t' ../../../../src/include/pg_config_os.h:11: error: previous declaration of 'slock_t' was here

 とかなる。「slockとかいうのはOSのバージョンに依存しがちで、そこで戦うのは得策じゃないから8入れろ」と説得された。しょうがないので8入れることにしました。

sudo port install postgresql81-server

で、成功。あと、

###########################################################
# A startup item has been generated that will aid in
# starting postgresql81-server with launchd. It is disabled
# by default. Execute the following command to start it,
# and to cause it to launch at startup:
#
# sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql81-server.plist
###########################################################
---> Installing postgresql81-server 8.1.4_0

To create a database instance, after install do
sudo mkdir -p /opt/local/var/db/postgresql81/defaultdb
sudo chown postgres81:postgres /opt/local/var/db/postgresql81/defaultdb
sudo su postgres81 -c '/opt/local/lib/postgresql81/bin/initdb -D /opt/local/var/db/postgresql81/defaultdb'

 とか言われたので、その通りにやってみる・・・って、なんかpostgresでないユーザが出来てますか?がーん。今まで残しておいたユーザ:postgresちゃんの立場が。そんでまた、そのユーザがふつうだと見えないし。どういう仕組みなんだろう。と言うわけで、新しいユーザ:postgres81名でいろいろ設定しました。

Success. You can now start the database server using:

/opt/local/lib/postgresql81/bin/postmaster -D /opt/local/var/db/postgresql81/defaultdb
or
/opt/local/lib/postgresql81/bin/pg_ctl -D /opt/local/var/db/postgresql81/defaultdb -l logfile start

 うまくいってるっぽい。ご指示通り、postgres81にスイッチしてスタート。

/opt/local/lib/postgresql81/bin/postmaster -D /opt/local/var/db/postgresql81/defaultdb

 ちゃんと動いてるみたい。でも、もうひとつのコマンドで起動しようとすると

/opt/local/lib/postgresql81/bin/postmaster -D /opt/local/var/db/postgresql81/defaultdb postmaster cannot access the server configuration file "/opt/local/var/db/postgresql81/defaultdb/postgresql.conf": Permission denied

とかいわれてるので、まだなにか問題があるに違いない。でも、createdbして、createuserで私もユーザに加えてっと。これで一旦終了。自動起動設定もしないといけないけど、もう帰るのでココでおしまいです。あとはPHP4を入れる!

 そうそう、こんどのPostgreSQLは/opt/localの中に出来たみたいなので、パスもそっちに通しておきます。~/.tcshrcに、

set path = (/opt/local/bin /usr/local/bin /opt/local/lib/postgresql81/bin $path)