忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2024/11    10« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  »12

Windows Subsystem for Linux 上で ゆとシート2 for SW2.5 を動かす

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

Windows Subsystem for Linux 上で ゆとシート2 for SW2.5 を動かす

nginx でも動かしてみた。この記事は Apache2。

ゆとシート for SW2.5 のソースコードが公開されたのでとりあえずローカルで動かそうとしてみる。

Apache2 と perl を入れる

今回は Windows Subsystem for Linux (Ubuntu) を使うが、他でも大して変わらないと思う。

とりあえず apache2 と perl を入れる。perl は最初から入っているかも。
$ sudo apt-get install apache2 perl

CGI が使えるようにする

/etc/apache2/apache2.conf を編集し末尾に以下を書き足す。

AddHandler cgi-script .cgi .pl

<Directory "/var/www/html/cgi-bin">
    AllowOverride None
    Options ExecCGI
    Require all granted
</Directory>

LoadModule cgid_module modules/mod_cgid.so

これで apache2 を再起動する。
$ sudo service apache2 restart
が、私の環境では mod_cgid.so が見つからない旨が返ってきた。
/etc/apache2/modules/modd_cgi.so: cannot open shared object file: No such file or director
どうも /etc/apache2/modules ディレクトリが無いようだ。探してみると /usr/lib/apache2/modules に modd_cgi.so があったのでこちらにシンボリックリンクを張る。
$ cd /etc/apache2
$ ln -s /usr/lib/apache2/modules

これで再度再起動を試したら無事起動した。

以下のファイルを /var/www/html/cgi-bin に設置して動作を確認する。ファイルタイトルは test.cgi とする。

#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "<html><body>\n";
print "<h1>OK</h1>\n";
print "</body></html>\n";
exit;

Apache を起動し、ブラウザから http://localhost/cgi-bin/test.cgi にアクセスして OK と出力されれば成功。

エラー画面が返ってきたら /var/log/apache2/error.log とかを読みながら原因を探る。パーミッションがないとかはよくある原因。

ゆとシート for SW2.5 を動かす初期設定

ゆとシートをダウンロードしてくる。
$ cd /var/www/html
$ git clone https://github.com/yutorize/ytsheet_sw2.5.git
$ mv ytsheet_sw2.5 ytsheet

さらに /etc/apache2/apache2.conf に以下を書き足す。

<Directory "/var/www/html/ytsheet">
    AllowOverride None
    Options ExecCGI
    Require all granted
</Directory>

これで Apache2 を起動し http://localhost/ytsheet にアクセスしても動かない。500 エラーが返ってくる。

ゆとシート for SW2.5 を動かすためのトラブルシューティング

まず、素の perl で動くように頑張る。$ cd /var/www/html/ytsheet
$ perl index.cgi

これで動くようにする。

関係モジュールの追加

私の環境では以下のモジュールが見つからないといわれたので入れる。

画面左部に "Download" と書いてあるのを探し、リンク先の URL を確認する。その後は以下のように頑張る。

  1. tmp ディレクトリに飛ぶ
    $ cd /tmp
  2. モジュールを入手する
    $ wget (先に確認したダウンロードのための URL)
    $ wget https://cpan.metacpan.org/authors/id/L/LE/LEEJO/CGI-4.38.tar.gz # これは例
  3. ダウンロードしてきたものを解凍する
    $ zcat (wget でダウンロードしたファイル) | tar xvf -
    $ zcat CGI-4.38.tar.gz | tar xvf - # これは例
  4. 解凍してできたディレクトリに入る
    $ cd (解凍時にできたディレクトリ)
    $ cd CGI-4.38 # これは例
  5. インストール用ファイルを作成させる
    $ perl Makefile.PL
  6. インストールする
    $ make && make install

perl の path がおかしい

上述の事をしたうえでアクセスしても500が返ってくる。 /var/log/apache2/error.log を見ると以下の記述だ。No such file or directory とは不可解である。

[Sun Aug 12 14:26:07.827622 2018] [cgid:error] [pid 422:tid 140025635080064] (2)No such file or directory: AH01241: exec of '/var/www/html/ytsheet/index.cgi' failed
[Sun Aug 12 14:26:07.828287 2018] [cgid:error] [pid 279:tid 140025336432384] [client ::1:52533] End of script output before headers: index.cgi

どうも見つからないのはファイルではなく perl らしい。 index.cgi の先頭を見ると次のようにある。

/var/www/html/ytsheet$ head index.cgi
#!/usr/local/bin/perl
####################################
##       ゆとシート for SW2.5     ##
##                version0.01     ##
##          by ゆとらいず工房     ##
##     http://yutorize.2-d.jp     ##
####################################
use strict;
use warnings;
use utf8;

しかし、私の環境で perl はどこにあるかというと
$ which perl
/usr/bin/perl

スクリプトが指定している場所に perl がないのである。なので /usr/local/bin から /usr/bin/perl へのシンボリックリンクをつけてやる。そのうえで再度動作を試すと…… config.cgi が見つからない、というエラーメッセージが得られて動かない。

config.cgi を設定する

先にダウンロードしたゆとシートのディレクトリ内に config.cgi.default というファイルがあるのでこれを config.cgi にリネームする。中身はサラッと確認していじりたければいじること。

これで多分動くはず。

PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R