Carpe Diem

備忘録。https://github.com/jun06t

アップローダの設置

一般的なアップローダの設置方法です。 こういったものはすでにネットにCGIが転がっているので、それを利用します。 とりあえず下のサイトからダウンロード ファイルアップロードCGI あと上のサイトのライブラリにはjcode.plが足りないのでダウンロード jcode.pl 基本的にダウンロードしたフォルダのreadme.htmを参考にします。 ◆ファイル配置 /usr/lib/cgi-bin/

 cgi-bin/(任意のディレクトリ)
    |
    |-- upload.cgi   (705) ... 【必須】CGI プログラム (同梱)
    |-- hcgilib.pl   (604) ... 【必須】CGI ライブラリ
    |-- jcode.pl     (604) ... 【必須】日本語変換ライブラリ
    |-- back.gif     (604) ... 壁紙を設定する場合のみ必要
    |-- tback.gif    (604) ... タイトル部分に壁紙を設定する場合のみ必要
    |-- .hosts_deny  (604) ... UP不許可ホストを設定する場合のみ必要
    |-- .hosts_allow (604) ... UP許可ホストを設定する場合のみ必要
    |-- .uploadrc    (604) ... リソースを設定する場合のみ必要
    |
    |-- gif/         (705) ... 【必須】gif データ用ディレクトリ
    |    |-- ***.gif (604) ... 【必須】gif データ (同梱)
    |-- data/        (707) ... 【必須】データ用ディレクトリ (作る)
    |-- upload/      (707) ... 【必須】ファイルアップロード用ディレクトリ (作る)
の形で入れます。()は許可設定です。 uploadフォルダは自由にアクセスできるフォルダをあらかじめ作っておいて、そのリンクを貼ると便利だと思います。 ◆設定 perl のインストールされている場所に応じて upload.cgi の第1行目を変更します。 #!/usr/local/bin/perl → #!/usr/bin/perl 以下は修正しなくても大丈夫ですが、フォルダ場所など変更する場合は修正が必要です。 URLアドレスは自分のサイトのアドレスに変更しましょう。 修正個所102行目から # 管理データ保存用ディレクトリ: 707 にしておく必要があります # ブラウザからアクセス出来ない場所に設定することを推奨します $datadir = 'data'; # アップロード先ディレクトリ: 707 にしておく必要があります $uploaddir = 'upload'; # gif ファイル(同梱)を置いたディレクトリ: $gifdir = 'gif'; # 管理者(この CGI を設置した人)のウェブページ $admin_page_url = 'http://homepage1.nifty.com/~heppoko/'; 以上です。 ◆確認 この状況でapacheの設定でCGIが使用出来るようになっていれば https://(サーバーのホスト名またはIPアドレス)/cgi-bin/upload.cgi にアクセスすれば使用できます。 CGIが実行されずにテキストとして開かれる場合は、CGIapacheCGIが実行出来るように設定してください。 500エラーが出る場合はperl のインストールされている場所が違う可能性があります。その場合はupload.cgi の第1行目を修正してください。 以前紹介したアクセスログ解析で一度設定していれば、awstats.plを参考にすれば出きると思います。 ◆出力したレポートをcgiフォルダを開かずに見えるようにする cgi-binにはいろんなCGI系のファイルがあるので出来ればそこはアクセスされたくない…ということで別フォルダにリンクを用意してそこにアクセスさせます。 $ sudo mkdir /var/www/upload $ sudo ln -s /usr/lib/cgi-bin/upload.cgi /var/www/upload/upload.cgi $ sudo ln -s /usr/lib/cgi-bin/jcode.pl /var/www/upload/jcode.pl $ sudo ln -s /usr/lib/cgi-bin/hcgilib.pl /var/www/upload/hcgilib.pl $ sudo ln -s /usr/lib/cgi-bin/data /var/www/upload/data $ sudo ln -s /usr/lib/cgi-bin/gif /var/www/upload/gif $ sudo ln -s /usr/lib/cgi-bin/upload /var/www/upload/upload もしかしたら上みたいに6つもファイルはいらないかもしれません。 ただupload.cgiのみでは動きません。 Apache2の設定 $ cd /etc/apache2/sites-available $ sudo emacs -nw default-ssl Alias /upload "/var/www/upload" <Location /upload>         SSLRequireSSL         Options Indexes FollowSymLinks MultiViews +ExecCGI         AddHandler cgi-script .cgi .pl .html         Order deny,allow         allow from all </Location> 修正が完了したら $ sudo /etc/init.d/apache2 restart これでブラウザ上で https://(サーバーのホスト名またはIPアドレス)/upload/upload.cgi 以上です。 ソース; ファイルアップロードCGI設置