Mac OS X Leopard Server で WordPress の自動アップデート

以前の記事で、WordPressでの自動アップデートを成功させるためには、FTP_BASEやFTP_CONTENT_DIRやFTP_PLUGIN_DIRを定義すればよいと記事に書きました。

が、その記事に書いた通りLinux(Debian)では正しく動作していたのにLeopard Serverにしてからうまく行かなくなっていました。

しかも「ディレクトリが見つかりません」というようなわかりやすいエラーではなく「ファイルをコピーできませんでした」というエラー…
表示されるパスには間違いはないし、パーミッションも777にしてみても(すでになっている)駄目。

ちなみに「ファイルをコピーできませんでした」というエラーはPHPがセーフモードで動いている場合によく出るそうですが、今回はセーフモードで動かしてはいません。

で、諦めていたのですが、いっそのことFTP_BASEやFTP_CONTENT_DIRやFTP_PLUGIN_DIRの定義をコメントアウト(削除)してみるとなんとすんなり成功。

(下部の追記参照)

ということで、セーフモードでもないのに「ファイルをコピーできませんでした」と言われた時は一度FTPのディレクトリ設定を削除してみるのも手かもしれません。

追記

どうやらCodexのFTP_BASE等の説明には「インストールした WordPress のベースフォルダへのフルパス。」と書いてあるので”サーバー内でのフルパス”だと思っていたのですが、少なくともOSXでは”FTPでアクセスした時のパス”が正しいようです。(OSの問題では無いようなな気もしますが)

Codexにも「FTPユーザとしてサーバ上にある各フォルダへのパスが分かっていれば…」とあるので”FTPでアクセスした時のパス”が正しいようです。

つまり「/Users/name/Sites/wp-content/」ではなくFTPから見た時のパスなので「/Sites/wp-content/」とするとFTP_BASE等を定義しても自動アップデートできました。

明けましておめでとうございます

遅いですが明けましておめでとうございます。
今年もよろしくお願いします。

二条城の前を通ると大きな門松が置いてあったので撮ってきました。
ただそれだけですが、

二条城の門松 その1

二条城の門松 その1

二条城の門松 その2

二条城の門松 その2

夜にはライトアップもしていました。

二条城の門松 ライトアップ

二条城の門松 ライトアップ

ついでなので、よく観光客の人が撮っているのを見かける構図で撮ってみました。

二条城 よくある構図 その1

二条城 よくある構図 その1

二条城 よくある構図 その2

二条城 よくある構図 その2

OSX Server 10.5.8 で PHP+GD

アップデートしたときにPHPのバージョンも変更(5.2.10)されていたことに気づかず、GDが入っていないPHPに置き換えられていたので再度PHPをGD付きでコンパイルしたのでメモ。

各ライブラリの今回利用したバージョンは以下の通り。

  • libpng 1.2.40
  • libjpeg jpeg-7
  • gd 2.0.35
  • php 5.2.10

PHPをMacでコンパイルするとlibiconv関係でリンク時にエラーが出る問題があるそうなのでext/iconv/iconv.cの196行目あたりを以下のように書き換えてからコンパイルに移ります。(参照:PHP Bugs: #49267: Linking fails for iconv: “Undefined symbols: _libiconv”)
Before

#ifdef HAVE_LIBICONV
#define iconv libiconv
#endif

After

#ifdef HAVE_LIBICONV
#define iconv iconv
#endif

実行した手順だけを載せます。

<code>
$ cd ~/Downloads/src/libpng-1.2.40
$ CFLAGS="-arch x86_64" CCFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64" LDFLAGS="-arch x86_64" ./configure
$ make
$ sudo make install

$ cd ~/Downloads/src/gd-2.0.35
$ CFLAGS="-arch x86_64" ./configure
$ cp libtool ../jpeg-7/
$ cd ../jpeg-7/
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch x86_64 -g -Os -pipe" CXXFLAGS="-arch x86_64 -g -Os -pipe" LDFLAGS="-arch x86_64 -bind_at_load" ./configure --enable-shared
$ make
$ sudo make install

$ cd ~/Downloads/src/gd-2.0.35
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch x86_64 -g -Os -pipe" CXXFLAGS="-arch x86_64 -g -Os -pipe" LDFLAGS="-arch x86_64 -bind_at_load" ./configure --with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6
$ make
$ sudo make install

$ cd ~/Downloads/src/php-5.2.10
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch x86_64 -g -Os -pipe" CXXFLAGS="-arch x86_64 -g -Os -pipe" LDFLAGS="-arch x86_64 -bind_at_load" ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --disable-dependency-tracking --with-apxs2=/usr/sbin/apxs --with-ldap=/usr --with-kerberos=/usr --enable-cli --with-zlib-dir=/usr --enable-trans-sid --with-xml --enable-exif --enable-ftp --enable-mbstring --enable-mbregex --enable-dbx --enable-sockets --with-iodbc=/usr --with-curl=/usr --with-config-file-path=/etc --sysconfdir=/private/etc --with-mysql-sock=/var/mysql --with-mysqli=/usr/bin/mysql_config --with-mysql=/usr --with-openssl --with-xmlrpc --with-xsl=/usr --without-pear --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/X11R6 --with-gd=/usr/local
$ make
$ make test
$ sudo make install
</code>

Snow Leopard

9月発売の予定を前倒しして28日に発売された新Mac OS X(10.6) Snow Leopardをインストールしました。

インストールまでの道のりとファーストインプレッションです。

Read more …

部分日食と日食予報との比較

せっかく写真も撮影し、国立天文台の日食各地予報で日食の経過もシミュレーションできるので写真と、シミュレーション結果を並べてみたいとおもいます。
詳しくは一つ前の「大阪での部分日食」を参照してください。

特に意味はありませんが面白そうなのでやってみます。当然ですが全く同じになっています…

ちなみに、なんとこの記事が記念すべき第100番目の記事です。
ちなみにちなみに、アクセス解析の結果によると4日前がちょうどユニークユーザー3万人目でした。ページビューはもうすぐ5万件。その日を逃したので記念ついでに…

日食予報(09:51)

日食予報(09:51)

大阪での日食(2009/7/22 9:51)

大阪での日食(2009/7/22 9:51)


Read more …

大阪での部分日食

今日7月22日は、各報道機関でも大々的に報道されているように日本では46年ぶりに皆既日食が観測できる日でした。皆既日食はインドから中国、鹿児島県・トカラ列島周辺でしか観測できませんが、大規模な(太陽の大部分が月に隠れる)部分日食であれば本土でも観測できました。
時々皆既日食と部分日食を混同している方がおられますが太陽が部分的にだけ隠れているのは部分日食で皆既日食ではありません。なので、「2009年7月22日の大阪での皆既日食」などの表記は誤りです。(いくつかみつけたので…)
ということで、撮影の障害になるものがないような場所に出かけて部分日食を撮影してみました。

撮影方法は以前の記事の「日食撮影機材の準備」をご覧ください。

国立天文台暦計算室が公開している「日食各地予報」を利用して大阪の日食の経過を計算してみると以下のようになりました。

2009年7月22日大阪での部分日食の予測

2009年7月22日大阪での部分日食の予測

これによると、欠け始めは9時46分58秒で、食の最大は11時5分28秒です。大阪では最大82.2%欠けた太陽が見ることができたそうです。

それでは撮影した写真の一部を時刻と欠けた割合とともに並べてみます。

ほとんど見ることができませんでしたが、運良く食の始めと食の最大だけは見ることができたので満足です。

ちなみに次の記事「部分日食と日食予報との比較」でシミュレーション結果との比較をしています。

Read more …

日食撮影機材の準備

来る7月22日に日本で観測できる日食があるのです。皆既日食としては46年ぶりです。が、皆既日食が見ることができるのは奄美大島等の南の地域だけなのですが、京都や大阪でも8割を超える量が欠ける日食が観測できます。

で、そいつをCanonのEOS 40Dで撮影しようと考えているのですがそのためには2つの問題があります。

一つ目は、明るさの問題。望遠レンズ等をそのままつけただけで日光をCMOSセンサーに当ててしまうと一気に焼けてしまいます。それ以前に明るすぎてきれいに撮影できませんが….。そこで減光フィルターというものをレンズの先につけて撮影します。

二つ目は、ズームの倍率です。手持ちの焦点距離70mm-300mmのズームレンズでは大きく太陽を撮影することができません。そこでもっと焦点距離の長いレンズを購入するか、レンズと本体の間に挟むテレコンバータと呼ばれるレンズを利用して焦点距離を何倍かにすることになります。前者の方法では明るく撮影できますがなにせ効果です。さらに今回は暗くなるぶんには問題ないので後者のテレコンバータを利用することにします。後で試してみたのですが、予想よりも暗くならずレンズに搭載されている手ぶれ防止機能と合わさって普段の利用でも十分利用できる性能でした。
Read more …

OSX Server 10.5.7 で PHP+GD

先日Mac OSX Server Leopard を更新してからWordPressでサムネイルが作成されなくなったなぁと思っていたのですが、アップデートの際に以前GDをServerにインストールしたときからPHPのバージョンが5.2.8に変更されていたのでまたGDのついていないPHPのバイナリに交換されてしまったようです。ということで、以前と同様にGDをインストールしました。方法は以前の「OSX Server 10.5 (64bit)でPHP+GD」を参照していただくとして、今回利用した各ライブラリのバージョンは以下の通りです。それをメモするだけなので日記ということで、適当な更新です。

  • PHP 5.2.8
  • libgd 2.0.35
  • libpng 1.2.37
  • libjpeg(jpeg v7)

コンパイル時にはいくつか注意点が…

Read more …

いつの間に…

6月某日の玄関で、こんなものが陰に隠れていたフリスビーに。


小さなハチの巣

すでに住人は引っ越し済み、よかった。アシナガバチかな?

ついでに春に友達と嵐山に出かけた時の写真を「整理しているとき」に何となく撮った写真。

Aperture Window

Aperture Window

保津川下りと嵯峨野観光線のトロッコ列車がかすかに写っています。

iTunesの曲に自動でふりがな登録

iTunesは日本語の曲名等の並び替えを正しく行うためにふりがなを登録できるようになっています。が、何千曲とあるライブラリに手作業での登録は大変です。アーティスト名ならまだしも曲名となれば大変です。

massiva/logic&mac tipsさんのソートiTunes!という記事でAppleScriptとテキストエディタのGUIを用いてiTunesの曲のアーティスト名のふりがな(アーティストの並べ替え)フィールドを自動で埋めるというスクリプトが紹介されています。ところが、安定して動作させるには待機時間を長くしないといけないのでちょっと遅いのです、これは漢字からひらがな変換にGUIを使っているからなのですが。具体的にはMac全体の処理速度が一瞬低下した場合ふりがなへの変換が終わる前に次の曲に進んでしまったりします。

そこで、オープンソースの形態素解析エンジンMeCabを利用してふりがなを生成する方法に改造することによって高速かつ安定した動作を実現しました。が、人名はことえりのほうが正確かも…

MeCabは前回の記事でインストール済みということで。

スクリプトエディタに以下のスクリプトを入力し、iTunesでふりがなを補完したい曲を選択した状態でスクリプトを実行するとふりがながまだ設定されていない曲のアーティスト名、曲名、アルバム名のふりがなが登録されていきます。

スクリプト

--確認ダイアログ
display dialog "ふりがなをふっていいですか" buttons {"NO", "OK"} default button 2
set button_a to button returned of result
if button_a = "OK" then


	--iTunesのスクリプト
	tell application "iTunes"
		try
			set name_list to {}
			set select_track to a reference to selection
			if select_track as list is {} then return
			repeat with i in select_track
				set end of name_list to i
			end repeat
			repeat with i in name_list
				--アーティスト
				set hurigana_text to sort artist of i
				if hurigana_text is "" then
					set original_text to artist of i
					set hurigana_text to my hurigana(original_text)
					set sort artist of i to hurigana_text
				end if


				--アルバム名
				set hurigana_text to sort album of i
				if hurigana_text is "" then
					set original_text to album of i
					set hurigana_text to my hurigana(original_text)
					set sort album of i to hurigana_text
				end if



				--曲名
				set hurigana_text to sort name of i
				if hurigana_text is "" then
					set original_text to name of i
					set hurigana_text to my hurigana(original_text)
					set sort name of i to hurigana_text
				end if


			end repeat
			display dialog "完了"
		on error
			display dialog "エラー発生" buttons {"OK"} default button 1
		end try
	end tell

end if

on hurigana(original_text)
	set mecab to "echo " & quoted form of original_text & " | /usr/local/bin/mecab -Oyomi "
	mecab as text
	do shell script mecab
	return katahira(result)
end hurigana


on katahira(original_text)
	set hiracase to "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをんぁぃぅぇぉがぎぐげござじずぜぞだぢづでどっぱぴぷぺぽばびぶべぼゃゅょ"
	set katacase to "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲンァィゥェォガギグゲゴザジズゼゾダヂヅデドッパピプペポバビブベボャュョ"

	set hiragana_text to characters of original_text
	repeat with char in hiragana_text
		set num to offset of char in katacase
		if num is not 0 then
			set contents of char to character num of hiracase
		end if
	end repeat

	return hiragana_text as text
end katahira