2014年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 |
31 |
|
|
2014年10月23日
SDサーバ エラー(500 Internal Server Error) |
容量が大きくて値段も安いサーバに引っ越しをした。
客先のデータなども含んでいる高輪のサーバは、これまでのものでは、既に振り分けてあるwebスペースを逼迫する傾向にあり、しかも、最近のサーバ平均価格からすればおそらく聞いてびっくりするような高い月額料金だった。「最近ドメインを取得して、サーバを契約したのも最近」ならそんなではないだろうが、契約はもう10年も前で、サーバもその時のままだからそうなんだろう。昔は通信関連のものは何でも高かったからね。
で、移転をした訳だが、通常のデータは問題なかったが、cgi関連が。
500 Internal Server Errorの嵐。何故にそう?、ってカンジである。
そして、Permissionをあれこれ変えながらやっていくうちに出たのが「Jcodeモジュールが見つかりません」ってエラーメッセージ。これが出るようになれば、500エラーより段階的に一歩前進した証拠なのである意味、光が見えたともいえるが、同時に『ははあ〜、このサーバにはjcodeモジュールそのものが入ってないのか!』と知った。通常、ルート権限を持つ管理者が、ユーザスペースでない特定の位置にインストールしてあるものだと思っていたのだが(前のサーバはそうだった)、今回のはそうではなく、一応perlがあることはあるが、jcodeまでは知らないよ、ってな具合であるようだ。ルート権限があればその位置にjcodeモジュールを入れ込むことは出来るだろうが、権限がないんで仕方ない……いや、仕方ないでは済まないので何とかしないと。
ということで、手当たり次第にいろんなパターンを試したところ、無事稼働させることが出来た。
<やったこと>
1)ユーザスペース内のcgiファイルが置いてあるディレクトリにlibフォルダを作成
2)libフォルダ内にjcodeモジュール(Jcode.pm と Jcodeフォルダ)を一式入れる
3)jcode.plをcgiファイルと同じディレクトリにアップ。
4)そうした上で、cgiファイルを書き換える。
use lib './lib';
use Jcode;
というのをcgiファイルの中に入れると良い、ということはネットで見るといろんな方が書かれているのだが、そのようにしてもうまくいかなかった。おそらく、それぞれのcgiの組み方によって、構文に合わせて微妙に変えないといけないのだろう。
プログラムは、人によって書き方も体裁も変わる。関数の取り入れ方もそれぞれだ。
見ると、「use Jcode;」に該当するところが、eval関数でくくられていたので、それに合わせて調整。なので、
use lib './lib';
eval use Jcode;
とした上で、
require './jcode.pl';
を最初の方に加えた。
それから、どうもエディタが変?ということにも気付いた。変というか、システム的にそうなってしまうようなのだが、MacのJedit(わりと新しいやつ)でcgiプログラムを保存しようとすると、エンコードをShift-jisに出来ず、UTFとかにしかならない。(もちろん、cgiプログラム的にUTFが指定されているものならそれでいいのだけど)
なので、iBook G4にあった以前のJedit(Jedit 4.0)でShift-jisにしてからアップロードし、改めてPermissionを設定したところ、大成功。事なきを得た。
ちなみに、サーバはSDサーバ。某comのやつだ。
ネットを見ると、結構たくさんの人が、このサーバに変えて同じようなことで悩んでいることを知った。中には、日を待たずして別のサーバに変えたいというような事を書かれている方もあった。
おそらく、この書き込みも、同じ悩みを抱えるどなたかが検索して発見するだろうと思う。
やっていけばまだいろんな方法があるかも知れないが、高輪のやったのも、解決策のひとつにはなると思う。
同じような状態で苦心されている方の、何らかのご参考になれば幸いです<(_ _)>。 |
13:20, Thursday, Oct 23, 2014 ¦ 固定リンク
|
携帯で読む |
URLを携帯に送る
※Read Only、プレーンテキストでの閲覧用です。 書き込み、コメントは出来ませんm(_ _)m。 |
|