[[PageNavi(NavigationList)]]
= プロジェクトWebサーバーの詳細
この文書では、プロジェクトWebサーバにインストールされているモジュール一覧やその設定状態、また使用に当たっての注意事項等を公開しています。
== 各プロジェクトの!DocumentRoot
プロジェクトWebサーバーの管理や構築は、シェルサーバー(shell.osdn.jp)で行います。プロジェクトWebサーバーでは、シェルサーバーの下記のディレクトリ以下が公開されます。
||'''公開されるディレクトリ'''||'''対応するシェルサーバーのディレクトリ'''||
||http://'''<プロジェクト名>'''.osdn.jp/||/home/groups/'''<プロジェクトUNIX名の1文字目>'''/'''<プロジェクトUNIX名の1、2文字目>'''/'''<プロジェクトUNIX名>'''/htdocs/||
||http://'''<プロジェクト名>'''.osdn.jp/cgi-bin/||/home/groups/'''<プロジェクトUNIX名の1文字目>'''/'''<プロジェクトUNIX名の1、2文字目>'''/'''<プロジェクトUNIX名>'''/cgi-bin/||
== プロジェクトWebサーバの権限
各プロジェクトのWebページを表示する際には、そのプロジェクトごとのユーザ/グループ権限で動作します。
(例えば foo というプロジェクトの場合 ユーザ foo.p グループ foo というユーザの権限でで動作します)
※ cgi 等でファイルを生成するような動作をするものに関しては上記に注意して permission の設定等を行ってください。
== インストールされているスクリプト言語とバージョン
プロジェクトWebサーバーでは、CGIの実行環境として下記のスクリプト言語が利用できます。
* perl 5.10.1
* python 2.6.6
* php 5.3.3
* ruby 1.8.7
== 利用できる.htaccessディレクティブ
プロジェクトWebサーバーでは、各ディレクトリに.htaccessというファイルを用意することでWebサーバーの動作をカスタマイズできます。.htaccessファイルでは、Optionsディレクティブを除くすべてのディレクティブが利用可能です。
.httaccessファイルの使い方については、[http://httpd.apache.org/docs/2.2/howto/htaccess.html Apacheチュートリアル]などをご参照ください。
== インストールされているApacheモジュール一覧
プロジェクトWebサーバーでは、下記のApacheモジュールがインストールされています。
* mod_access
* mod_actions
* mod_alias
* mod_auth
* mod_autoindex
* mod_cgi
* mod_dir
* mod_env
* mod_include
* mod_mime
* mod_negotiation
* mod_rewrite
* mod_setenvif
使い方については、[http://httpd.apache.org/docs/mod/index.html apache.orgのオフィシャルドキュメント]などを参照してください。以下では、OSDNで使う上での設定方法を補足します。
=== mod_cgi
[プロジェクトWebページの動的コンテンツ プロジェクトWebページの動的コンテンツ]
をご覧下さい。
=== mod_rewrite
mod_rewriteは非常に強力なURLマッピングツールですが、.htaccess内で使うにはいくつか注意が必要です。
まず、標準で書き換えエンジンはonになっていないので、ディレクトリごとにonを指定する必要があります。また、ディレクトリ内でのURL書き換えには「!RewriteBase」を一緒に指定する必要があります。
[http://httpd.apache.org/docs/mod/mod_rewrite.html apache.orgオフィシャルドキュメント]の記述(特に[http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteBase RewriteBase])も参考にしてください。
いくつか簡単にサンプルを示します。
* 「!http://YOURPROJ.osdn.jp/foo.html」を同じディレクトリのindex.htmlにマッピングする
/htdocsの直下の.htaccessに以下のようにします。
{{{
RewriteEngine on
RewriteBase /
RewriteRule foo.html index.html
}}}
* 「!http://yourproj.osdn.jp/docsa/」以下は.htmでアクセスされても同名の.htmlの内容を返す
htdocs/docsの.htaccessの内容を以下のようにします。
{{{
RewriteEngine on
RewriteBase /docs
RewriteRule ^([^.]+).htm$ $1.html
}}}
* 「/cgi-bin/bbs/bbs.cgi?no=NNN」で目的の記事にアクセスできる掲示板があったとして、/cgi-bin/bbs/articleNNNというURLで記事が見えるようにする
{{{
RewriteEngine on
RewriteBase /cgi-bin/bbs
RewriteRule ^article([0-9]+)$ bbs.cgi?no=$1
}}}
[[PageNavi(NavigationList)]]