当サイトで配布しているCGI・PHPスクリプトを設置するにあたって、役立つと思われる情報を集めました。サーバ環境によっては当てはまらないこともあると思います。参考情報としてご覧ください。
動作環境を確認する
プロバイダのサポートページ等で、サーバの仕様を確認しておいてください。各配布ページにも記載していますが、今のところは概ね、Perl-CGIスクリプト(Perlで書かれたCGIスクリプト)ならPerl5以上、PHPスクリプトならPHP4以上がインストールされているサーバで動くと思います。またこの文書は、UNIX系のOSおよびApacheのサーバ環境を前提に書いています。
Perl-CGIスクリプトには、Perlモジュールを使用しているものがあります。主に標準モジュール(標準でインストールされるモジュール)を使用し、標準でないモジュールを使用する場合はその旨明記してあります。これらのモジュールがインストールされていない、もしくは使用が許可されていないサーバでは動きません。
スクリプトを編集する
テキストエディタを用意する
スクリプトの中身を書き換えて初期設定を行いますから、テキストエディタが必要です。今のところは、Windows付属のメモ帳(Notepad.exe)で十分です。書き換え後、上書き保存してください。
マッキントッシュでは改行コードを変更できるエディタが必要です。SimpleTextでは力不足かもしれません。miやJedit等をお試しください。書き換え後、改行コードをマッキントッシュ用(CR)に変更して保存してください。
perlのパスを書き換える
gateway.cgiを除くすべてのPerl-CGIスクリプト(*.cgi)に共通して、perlのパスの書き換えが必要です。スクリプト1行目の#!/usr/bin/perl
というところです。perlのパスはサーバ毎に違いますから、プロバイダのサポートページ等で確認してください。#!
の後に続けてperlのパスを書きます。#!
の前に空行や空白文字を入れないようにしてください。
初期設定をする
スクリプト内や配布ページの説明にしたがって、必要な部分のみを書き換えてください。スクリプトによっては、初期設定をしなくても動作するものもあります。書き換える際は、'
や ;
等の文字を消してしまわないように、また、変な場所に全角スペース等を含めないように気をつけてください。
$HOGE_HOGE = 'あいうえお';
上記のようになっている場合は、''
に囲まれている中身だけを書き換えます。
サーバにアップロードする
ウェブサイトを開設されている方であれば既にお持ちの方も多いと思いますが、FTPクライアントが必要です。WindowsではFFFTP、マッキントッシュではFetch等が有名だと思います。
バイナリデータ(画像ファイル等)は、バイナリモード(FetchではRAWモード)で、それ以外はアスキーモード(Fetchではテキストモード)で転送します。転送モードの切り替え方については、各ソフトウェアのマニュアルを参照してください。
- アスキーモードで転送するもの
- スクリプト本体 (*.cgi、*.php)
- ライブラリ (*.pl)
- データファイル (*.dat)
- JavaScript、CSS文書 (*.js、*.css)
- バイナリモードで転送するもの
- 画像ファイル (*.jpg、*.png、*.gif)
パーミッションを変更する
FFFTPにもFetchにもパーミッションの変更機能がありますから、これを使いましょう。
FFFTPなら、ホスト側のファイルリストから変更したいファイルを右クリックし、「属性変更」を選ぶと「属性の変更」ダイアログが出ますので、「現在の属性」のところにパーミッション値を入力し、「OK」ボタンを押せば変更完了です。
当サイトの推奨パーミッション値は概ね以下のようになります。ただし、プロバイダの推奨値がある場合は、そちらを優先してください。
ファイルの種類 | 拡張子 | 当サイトの推奨値 |
---|---|---|
CGIスクリプト | cgi | 705 |
PHPスクリプト | php | 604 |
Perlライブラリ | pl | 604 |
データファイル | dat | 606 |
その他 | css、js… | 変更不要 |
ページのデザインを変更する
一部のスクリプトは、ページのデザインにCSSを使用しています。デザインの変更は、外部CSSファイル(*.css)を編集して行います。従ってCSSの知識が必要です。出力されるHTMLの部分を変更したいときは、スクリプトの該当部分を直接いじる必要があります。
CSSの解説はしていません。情報を得たい方は、以下のようなサイトを参照してください。
- Cascading Style Sheets (W3C)
- 水無月ばけらの CSS リファレンス
- CSS2 リファレンス (K@tsukun's PAGE!)
- HTML版『スタイルシートWebデザイン』
ただし、パッケージに含まれるCSSファイル(*.css)の最初の方に、配色に関する規則集合だけを抜き出し、コメントを使ってガイドを付けてみました。CSSに詳しくない方でも、ここを適当に書き換えれば配色だけは変更できるかもしれません。CSSファイルをテキストエディタで開いてみてください。
うまく動作しない場合
正常に動作しない場合、エラーが出ていればそれを元に原因を特定できるかもしれませんから、エラーメッセージはよく見てください。メッセージの意味が解らなければ、それを手元に控えた上でご相談ください。
500 Internal Sever Error
サーバが吐き出す汎用エラーメッセージです。これだけで原因を特定することはできません。以下の点を確認してみてください。
- サーバ環境は動作環境に合致しますか。
- perlのパスを間違っていませんか。
- FTPの転送モードを間違っていませんか。
- スクリプトを編集する際に文法違反起こしているかもしれません。
また、Perl5標準モジュールの使用が許可されていれば、以下の1行をCGIスクリプトの2行目あたりに挿入すると、もっと役に立つエラーメッセージをブラウザ上で確認できるかもしれません。
use CGI::Carp qw(fatalsToBrowser);
403 Forbidden
サーバが吐き出すエラーメッセージです。パーミッションの設定が間違っているかもしれません。
その他
サーバではなくスクリプト自身がエラーメッセージを吐き出している場合は、そのメッセージが原因を示しているかもしれません。
参考になりそうなサイト
- とほほのCGI入門 (とほほのWWW入門)
- 簡単なPerl-CGIスクリプトを作成して、動かすまでを解説なさっています。
- 誰にも聞けなかったCGIの設置方法 (毎日使える厳選リンク)
- KENT-WEBの配布スクリプトを例に取り、画像入りで解説なさっています。
- プロバイダー別CGI設置情報 (futomi's CGI Cafe)
- ホスティングサービス毎のサーバ仕様、CGIから使用できるコマンド、Perlモジュールの仕様可否などが一覧にまとめられています。サーバ選びに役立ちます。