Apache-2.0.52
複数のHTMLファイルに同じテキストを挿入したり、ファイルサイズやファイルの最終更新日時を挿入できたり、iswebやXREAで使用すると広告が入らなくなるSSI(Server Side Include)を使用してみたいと思い、ついでだからApacheを最新版にアップデートした。Turboアップデートでhttpdが更新されているのはわかるが、どこに実体があるのかわからなかったので今回も手動でコンパイルしてインストールした。ところが
# apachectl start
で起動しようとすると
Starting httpd: httpd: Could not determine the server's fully qualified domain name, using 192.168.***.*** for ServerName
となり、起動しない。サービスの設定を確認してみたところ、すでにhttpdがポート80で動いていた。手動でインストールしたApacheは別のポートを使用するようにしているのでこれを止めた。しかし止めようとしても「NG」となるのでやむなく再起動したところうまくいった。
さて、SSIはどうやったら使えるようになるのか「とほほのSSI入門」を調べてみると、httpd.confに
AddType text/x-server-parsed-html .shtml Options Includes
と書けばいいようだが、書く場所がまずかったのかうなくいかなかった。httpd.confによく目を通すと
# # Filters allow you to process content before it is sent to the client. # # To parse .shtml files for server-side includes (SSI): # (You will also need to add "Includes" to the "Options" directive.) # #AddType text/html .shtml #AddOutputFilter INCLUDES .shtml
と、ちゃんと用意されていた。ここの下2行のコメントアウトをはずして、注意書き通りにDocumentRootのOptionsの項目にIncludeを書き足したところ、あるディレクトリで/bin/lsを実行した結果を表示することができた。Xreaのように制限がないのでexecでなんでも実行できておもしろい。しかしセキュリティ・パフォーマンスの両面においてリスクが高いので素人にはお勧めできない?
次は時間があればCGI/PerlやPHP・SQLにトライしてみようと思っている。結果は追って報告するかもしれない。