2006年11月04日

PHPによるサーバー諦め気味だけれども実装前の段階に

ソケットサーバーのコード自体は短い。
でも基本項目に対する問題点はかたづかなかった。

セーフモードではないというCGI起動でやったのだがどうにもsystem命令が動いてくれない。
しかし、得られた選択肢は上手くいってもいかなくても
すでに「プログラム」ではなくて「個人環境依存の設定」の世界になっている。
何かまだ足りないのだろうがここに力を注いで調べるべきでは無いと思った。

バックグラウンド動作はとりあえずおいておいて
動かないのをダメ元でとりあえずシェル起動で動くサーバーをソケット実装してみて
だめならばPerl版でつめる路線になりそうだ。
とりあえずPerl版はソースを1回作ればどのサーバーでも動くものができる。
それがPHPとのちがいだ。
昨日の問題点に関して以下のことがわかった。
まずアドレスだが

phpinfo()

でサーバーアドレスもリストとしてでてきてそれは変数としては取り込むのは困難だが
定数として使うことにした。
ローカルIPなので場合によっては公開されているサーバーのIPに変更する。

次にマルチスレッドだが理論上はPHPからexec命令かsystem命令を使えばいいのだが
どうもサーバー起点のパスをちゃんと書かないといけないし
CGIモードにしないといけない。

getcwd()

でみたところ
/virtual/****/public_html/
が起点のようだ。
でcgiモードにするためにphc拡張子として.htaccessなどに設定してみたところ
cgiは動作したのだがsystem命令では「fork」できないといわれてしまった。
shファイルにして実行しようとしてもダメだ。
ちなみに実行しようとしてのは先だってのカウンターから表示を抜いたものだ。
単体起動ではCGIとしてちゃんと動作した。

shに書いて実行するならばperlでもいいわけで
サーバーを動かすことが主眼ならばこの際マルチスレッドは捨てるべきだと思った。

今日はこの「バックグラウンド処理」への筋道はないか探っていただけで果ててしまった。
とりあえずまずやることは

外部ファイルに動作証拠の残る時間指定で終了する長時間動作

のもので
php(モジュール)とphc(独自設定のphpcgi)の両方を
shファイルに記述しておいて
cronで実行するかperlかphpcgiで実行するという事を目標にしたい。
要するにシェル操作をブラウザから簡便にできるかどうかということになる。
Xreaの過去ログをみるとsystem命令は使えるようになったような記述があるのに
なにがわるいのだろうか?

Perlだと起動からバックグラウンド動作まで1つのファイルで汎用性のあるソースでできる。
ソケットサーバー自体はクセイアントのセッションなどは取得できないので
ローカルファイルやデータベースを利用する事を考えると
最初からPerlサーバーもパラでしあげておいた方が良さそうだ。


posted by Xo_ox at 23:22| Comment(0) | サーバーサイド手習い | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。