状況をまとめる:
何をどうしたらいいのかさっぱりわからないが、コマンドラインで実行すると期待する結果が返された。ブラウザーでアクセスするとサーバーエラーはでないが、セキュリティのチェックにかかっている雰囲気だ。ちなみに、lynksでアクセスするとファイルの中身がそのまま表示される。
ファイルの拡張子をphp3にしてアクセスするとコマンドラインで実行した物と同じリストが表示された。さらに、ファイルの1行目のphpのパスを消しても大丈夫なことを確認した。
疑問はいっぱい残る。
1.php3という拡張子はhttpd.confのhandlerには登録していないのになぜ実行されるのか?
2.phpのバージョンは4.2.3なのに、拡張子をphp3として実行するときにちゃんと動くのか?
3.ほんとにこれでいいのか?
まあ、俺の目的はmtのカテゴリーアーカイブをコントロールするためにのみ使うだけなので、これでよければいいんだけど・・・
PHP の導入 - Linux で自宅サーバ [ Home Server Technical. ]
上記の例に従って、テスト用ファイルを作成したがエラー発生。phpのインストールというよりapatcheの環境設定に問題がありそう。httpd.confかhtaccessあたりを見直した上で動作テストが必要。
この際だから、パッケージの再確認とセキュリティアップデートの有無もチェックしておくほうがいいかもしれない。phpは外部から実行されるプログラムだけに、クラッキングされたときに致命的になりそうだから。
httpd.confの追加設定
・以下4行を追加
<IfModule mod_php4.c>
AddType application/x-httpd-php .php4 .php3 .phtml .php
AddType application/x-httpd-php-source .phps
</IfModule>
・.cgiを追加
AddHandler cgi-script .cgi .php
テスト用ファイル
1.
<?php
phpinfo();
?>
2.
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo "Hello World"; ?>
</body>
</html>
上記を保存し、パーミッションを777に設定(悩みたくなかったので)。ブラウザでアクセスするとInternal erro。コマンドラインでもエラーが表示されるだけ。
理由がわからないままに
http://www.dream-seed.com/linux/php.html
を読んでいたら、
CGI版のPHPは「/usr/local/bin/」にインストールされているので、CGIを書くときは、最初の一行に#!/usr/local/bin/php
と記入します。
再度、コンソールから出力されたファイルをhtmlとして保存しブラウザで読み込んだらバージョン情報が表示された。少なくとも、phpは使える状態でインストールされているようだ。
ただ、ここで得られたステータスは詳細で、俺にはほとんど初めての言葉ばかりだったが、php.iniの所在がわかったのは大きな収穫だった。俺のディストリビューション(TL8w)では /etc/httpd/php.ini にあるそうな。どこかのサイトにphp.ini の設定を説明してあった。
しかし、php.iniの設定がわからない・・・・