CGI講座 ≫ サーバにアップしよう!

アップロードの基本

サーバにアップしてみましょう。

サーバへのCGIファイルのアップロードですが、基本はすべてホームページ講座の「サーバにアップしよう!」と同じです。 よくわからない人はこちらを参考にしてください。



CGIのアップロード

アップするファイルがCGIスクリプトファイルの場合は、ファイルを置くべき場所が決められていることがあるので、注意してください。

転送モード


CGIのファイル(特にPerlのファイル)を転送するときはモードをASCIIモードに設定します。が、基本Autoでも大丈夫です。

ffftpでの設定です。左からASCIIモード、Binaryモード、Autoモードになります。
ASCIIモードはテキストモードとも言います。
転送には「ASCII」モード(HTMLファイル 等のテキストデータ用)と、 「Binary」モード(画像等の生データ用)があります。
ソフトによっても多少違いが出るようですが、基本的にBinaryモードだとデータをそのまんま転送します。 一方、ASCIIモードは各行の最後にある改行コードを変更してくれます。
と言うのも、実はパソコンとサーバコンピュータは改行コードが違うのです。と言っても派手に違うわけではないので、普通のHTMLファイルをBinaryで転送しても表示上は問題ありません。

ですが、Perlで書いたCGIスクリプトファイルの場合は一行目のパスが命なのです!

前に「改行の前に空白などを絶対に入れないように」と注意しましたが、実は空白ごときはあまり問題ではなくて、とにかく”#!”に続けて書くパス以外に余計な事を書かないように、という意味だったのです。

こちらで一行目に書いた

#!/usr/local/bin/perl[PCの改行]

は、そのままBinaryモードで転送すると改行コードが変更されません。サーバコンピュータでこの一行目を有効にするには

#!/usr/local/bin/perl[サーバマシンの改行]

となっていなければならないのです。
よって、ASCIIモードで転送する必要があるわけです。

PHPはおそらくどっちでもかまいません。以前は結構厳密にやってましたが、今はPerlで書いたファイルでも基本的にデフォルトの「Auto」で問題ありません。
つまり、

あんまり深く考えなくていい

ってことです。


他に注意すること

他に注意することとして、「基礎知識」の権限の所でやった、権限の変更をやりましょう。
これはサーバ側で「CGIファイルの権限はこれにしろ!」という注意書きがあると思います。 それに従ってください。

ちなみにXREAでの推奨は

実行ファイル 0700(rwx------) 以上
CGI格納ディレクトリ 0705(rwx---r-x) 以上

になってます。「以上」なので、全てのユーザに実行権限を与えるrwxr-xr-x(755)でも動きます。が、セキュリティを考えて、なるべく少ない権限を設定しておきましょう。

CGI実行

ブラウザでアップロードしたCGIを実行してみよう。

いきなりブラウザで実行する場合。
URLを指定してみてみましょう。

他のファイルから呼び出す場合。
もう一つテスト用のHTMLファイルを作成します。
そこに
<A HREF="URL">テストCGI</A>
と書いて適当に名前を付けてアップしましょう。

同じサーバにアップするのならこの場合URLの所はパス部分だけでOKです。



ページのトップへ戻る