CGI版PHP用の設定

CGIとしてPHP4をインストールし、PHPスクリプトの1行目にパスを記述して、ウェブからアクセスしてみた。しかし500エラーが返ってきた。Apacheのログを見ると「Security Alert!」「The PHP CGI cannot be accessed directly.」とある。でも、これ意味がよくわからない。さらにメッセージが並んでいるのだが、自分の英語の読解力が低いせいか、全部読んでも意味がわからない。

調べてみると、設定ファイルを変更すればよさそうだ。

cgi.force_redirect=0

やっぱり意味がわからない。設定変更して、Apacheを再起動し、スクリプトがPHP4のCGIとして動作することを確認できた。セキュリティの問題らしいので、詳しくドキュメントを読み込む必要がありそうだ。ま、とりあえず、これでよし。

今さらPHP4をインストール

2009/10/12 | PHPの基本

今更PHP4を使いたいなんて絶対思わないけれど、過去の遺産があってどうしてもPHP4を使わざるを得ない状態になってしまった。しょうがない。自分でサーバの設定をするのは不本意ではあるけれど(プログラムしかできないと世間では通している手前)、インストールすることにした。

まずPHP4のソースをダウンロードしなくてはいけない。普通に検索しててもぜんぜん見つからなかったんだけれど、検索結果を漁ってようやくわかった(こんなところにリポジトリってたのね)。「museum」・・・たしかに博物館的遺物。

http://museum.php.net/php4/

お好きなバージョン(普通はlatest)を選んでダウンロード。今回は4.4.9。PHP4はこれが最終リリース。そしてまず解凍し、解凍したディレクトリに入る。

tar xvfx php-4.4.9.tar.gz
cd php-4.4.9

とりあえず、configureしてみる。もちろんここで、いわゆるPHPのconfigureオプションを指定(しなければデフォルト・・・ってデフォルトが何かは知らないけれど)。

./configure
:
:
configure: error: no acceptble cc found in $PATH

エラーだそうです。開発環境が用意されてないとのことなので、とりあえずインストール。

yum install gcc

これでインストールOK。再度configureを実行。

configure: error: cannot find output from lex; giving up

またエラー。lexって何だよ、って思って調べたら、flexってのが必要になるらしい。

yum install flex

これでインストールOK。再度configure実行で、一応正常終了した。そしてmake。

make

ずらずら処理内容が記述されて、いちおうおなじみのThankYou画面が表示された(この画面は何年かぶりに見たので、少しうれしい)。あとはmake installでインストール完了。今回はcgi版だけが必要だったので、sapi/cgi/phpだけを/usr/bin/php4という名前でコピーした。他にも必要なのかもしれないけれど、とりあえずそれだけ。

いまだに、こうやって過去の遺産を漁っている人はいるのだろうか・・・。

PostGISにはFedoraが簡単

2009/10/05 | PostgreSQL

CentOSにPostGISをインストールする際にはいろいろ試行錯誤があった。いろんなところのRPMをとっかえひっかえインストールして動作確認し、やっとの思いでインストールすることができた。

今日、諸般の理由でFedoraCoreなサーバを準備することになり、ちょっとびっくりした(使用したのはFedoraCore8)。標準のリポジトリでPostGISが用意されているのだ。

FedoraCoreはその昔、RedHatから分家したとき、「最新を追い求める」という位置づけだったのでサーバには適さないと思い、FedoraCore3あたりから遠ざかっていた。当時はRedHatの無償型ということでCentOS(これは今やサーバ用ディストリビューションとしては主流)やWhiteBox Linuxを主に使っていた(といっても、いずれもパッケージ管理システム等々ほぼ同じ構成なので特段迷うこともないのだけれど)。今でもよほどの理由がない限り、FedoraCoreを使おうと思わないが、使いたくなる理由ができてしまった。なんといってもyumコマンド一発でPostGIS(もちろん関連するパッケージも全て)をインストールしてくれるからだ。

まぁ、FedoraCoreの寿命の短さは今でも変わらないだろうから早々簡単には使えないけれど、インストールに悩まなくていい点は選択肢の一つに入れる大きな理由になりそうだ。

PostgreSQLのバックアップ

2009/09/26 | PostgreSQL

普段使わないので、失念することも多いので、メモしておく。

pg_dump  -d database | /bin/gzip > dump.gz

-dオプションでCOPYコマンドではなく、INSERTコマンドの形式にする。
パイプ処理でgzipし、出力先ファイル名にリダイレクト。

-dよりも-Dのほうがいいかも(-Dはカラム名も含めてくれる)。

XMLのルール

2009/09/23 | XML

知っているようで実はぜんぜん知らないXML。XML文書の中で、&が入るのは特別な場合を除いてエラーになることを今日はじめて知った。調べてみたらいろいろあるっぽい。知っていることも含めて列挙しておく。

  • ルート要素が必要。
    全ての要素を包含する一つのルート要素が必ず必要。
  • 終了タグが必ず必要。
    XHTMLでは当たり前だから、特に問題なし。
  • 要素は正しくネスト。
    これもXHTMLでは当たり前。 というか正しくネストしていないと気持ち悪くて。
  • 値を引用符で囲む。
    これも当たり前。
  • 大文字・小文字は区別。
    Linuxやってれば、これもぜんぜん気にならない。
  • エンティティ参照の宣言が必要。
    &と<を使うには一工夫必要。

6番目のが今回ぶつかった問題。例えば&amp;はOKだけど&copy;や&nbsp;はダメ。&は;他と組み合わせて、エンティティとして使うのだが、特別な場合を除いて、DTDで宣言してやらないといけない。特別な場合というのは&amp;、&lt;、$gt;、&quot;、&apos;。だから&copy;や&nbsp;をXML文書中で使用するのは間違いになる(どうしても使いたい場合はDTDで宣言しないといけない)。&単品で使用するのもダメ。必ず特別な場合の組み合わせのみで使用しないといけない。

いろいろ難しい。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net