サーバ

マシンスペック

CPU

Pentium M 2.0GHzまたは1.73GHz
Core Duo 2.0GHz

メモリ

1GB

OS

FreeBSD 7.?

Webサーバ

Apache 1.3.?

自分の使っているサーバのハードウェア仕様を確認するには、次のファイルをdmesg.cgiのような名前でアップロードし、ブラウザから呼び出します。

#!/bin/sh
echo "Content-Type: text/plain"
echo
cat /var/run/dmesg.boot

サーバリスト

ウェブサーバ名

IP

sv101.next-space.jp

113.34.82.46

sv102.next-space.jp

113.34.82.47

sv103.next-space.jp

113.34.82.61

メールサーバ名

IP

mail01.next-space.jp (プライマリ)

113.34.82.50

mx2.next-server.jp (セカンダリ)

113.34.82.250

MySQLサーバ名

IP

mysql01.next-space.jp

113.34.82.49

PostgreSQLサーバ名

IP

pgsql01.next-space.jp

113.34.82.48

自分の使っているウェブサーバ名を調べるには、コントロールパネルログイン→ログイン→ドメイン情報とします。 下の方にWEBサーバIPが表示されます。

ディレクトリ構成

例えばアカウント名を n000000000、URLを http://faq.crz.jp/ とします。

絶対パス

FTP

説明

/home/httpd/n000000000/

/

FTPから見える一番上位。

/home/httpd/n000000000/public_html/

/public_html/

ここにあるものがブラウザで見える(Document Root)。
FTPで接続した直後もここが見える。

/home/httpd/n000000000/php.ini

/php.ini

phpをコントロールするファイル。

/home/httpd/n000000000/logs/

/logs/

アクセスログが置かれる場所。

サーバでのフルパス名 /home/httpd/n000000000/public_html/index.html がURL http://faq.crz.jp/index.html に対応します。

パーミッション

ブラウザが読むファイル(*.html/*.shtml/*.gif等)

604

ブラウザが下のファイルを読むディレクトリ

705

システムファイル(.htaccess/.htpasswd)

604

下にシステムファイルがあるディレクトリ

701

PHP実行ファイル(*.php)

600

その他のディレクトリ

700

CGI実行ファイル(*.cgi等)

700

その他のファイル

600

なお、必ずしもこの通りに設定する必要はありません。 変更必須なのはCGI実行ファイルくらいで、後はセキュリティ上問題になりそうなファイルを最小限のパーミッションにしておけば十分です。

/!\ 検証が十分ではないので、この通りにすると動かない可能性もあります。 何か情報がありましたらお願いします。

初期パーミッションは以下の通りです。

public_html

755

logs

755

php.ini

644

インデックスファイル

既定のインデックスファイル一覧です。優先順です。

  1. index.html
  2. index.htm
  3. index.shtml
  4. index.php
  5. index.cgi

アクセスログ

毎朝5:30に新しいアクセスログに切り替えられ、その後数分内にファイルがコピーされるとのことです。 アクセス数が0の場合でもファイルは作られます。

アクセスログが置かれるのは、/home/httpd/アカウント名/logs/の下です。 FTPから見ると/logs/の下になります。

生成されるログは以下のようになります。 7日前の分は自動的に削除されます。

最新分

access_log

error_log

1日前の分

access_log_1

error_log_1

2日前の分

access_log_2

error_log_2

6日前の分

access_log_6

error_log_6

ディスク使用量が8割を超えている場合、コピーされないことがあるとのことです。 また、logsディレクトリのパーミッションを変更したり、リネームしたりしないようにします。

プログラム

ChaSen

使えます。 パスは/usr/local/bin/chasenです。 バージョンは2.3.3以上です。

cron

使えます。 ただしsshを使えないのでエディタは使えませんし、メールを送信しないように気をつけます。

設定するには次のようなファイルをcron-set.cgi等の名前でアップロードし、ブラウザから呼び出します。

#!/bin/sh
echo "Content-Type: text/plain"
echo
crontab - 2>&1 <<EOF
MAILTO=""
48 3 * * * touch /home/httpd/n000000000/public_html/kata.txt
EOF
crontab -l 2>&1

この例では毎日3:48にtouch命令を実行します。 なお、サーバに負担をかけないよう、午前3時~午前5時頃にするのがお勧めです。

設定を確認するには次のファイルをcron-list.cgiのような名前でアップロードし、ブラウザから呼び出します。

#!/bin/sh
echo "Content-Type: text/plain"
echo
crontab -l 2>&1

設定を削除するには次のファイルをcron-rm.cgiのような名前でアップロードし、ブラウザから呼び出します。

#!/bin/sh
echo "Content-Type: text/plain"
echo
crontab -r 2>&1
crontab -l 2>&1

env

使えます。 パスは/usr/bin/envです。

envをCGIの先頭で使うこと

どの会社のサーバでも、CGIを使えるなら/usr/bin/envも入っていることが多いでしょう。 スクリプトの先頭を「#!/usr/bin/env ruby」のようにしておけば、スクリプトを書き換えずに済みます。

Ruby等のパスはサーバ会社によって、時にはサーバによって異なります。 スクリプトの先頭が「#!/usr/local/bin/ruby」だと、パスを書き換える必要があるかもしれません。

しかし、サーバ会社がバージョンの違うプログラムを複数インストールしたり、ユーザが自分でインストールすることもあります。 例えば「#!/usr/bin/env perl」では、「/usr/bin/perl」と「/usr/local/bin/perl」のどちらが実行されるのかわからず、トラブルの元になるかもしれません。

また、一部のOSではenvがなかったり、/bin/envにあったりするので、この手が使えない場合もあるようです。

書き換えを省くためだけにenvを使うなら、こういうリスクも考えましょう。

GD

使えます。 PHPから使えますし、Perlのモジュールも入っています。

ImageMagick

使えます。 convert等は/usr/local/bin/にあります。 Perlのモジュールも入っています。

KAKASI

使えます。 パスは/usr/local/bin/kakasiです。 バージョンは2.3.4です。

nkf

使えます。 パスは /usr/local/bin/nkf です。 バージョンは2.0.7以上です。

nslookup

使えます。 パスは /usr/bin/nslookup です。

uuencode・uudecode

使えます。 パスは /usr/bin/uuencode/usr/bin/uudecode です。

環境変数

PATH_INFO

使えないようです。 URLを操作するにはmod_rewriteを利用してください。 その方がより強力です。

仕様 (最終更新日時 2009-12-25 21:03:05 更新者 admin)