サーバー内部でのプログラム(スクリプト)実行の順位について

このQ&Aのポイント
  • サーバー内部でのプログラム(スクリプト)実行の順位について疑問があります。
  • サーバーにアクセスする人間が複数いる場合、スクリプト中の変数が取り違えられることはあるのでしょうか?
  • また、サーバー側で自動的にアクセス順に処理されるのでしょうか?
回答を見る
  • ベストアンサー

サーバー内部でのプログラム(スクリプト)実行の順位について

とても素朴な疑問なのですが、よろしくお願いします。 最近CGIの勉強を始めました。 本を見ながらオリジナルのスクリプトを作って、動作確認などをしながら勉強しています。 そして、フッと湧いた疑問なのですが、 動作確認などのテスト段階では、サーバーにアクセスする人間は私だけですよね(多分…)。 そのスタンドアローンの状態だと、一連のスクリプトの実行中に計算処理をしようが、ファイルをロックしようが、分岐しようが、スクリプトは淡々と進んでいきます。 ところが、完成時にHPを公開して、複数の人間がアクセスしてきた際に、スクリプト中の変数がA君とB君と取り違えてしまう…みたいな現象は発生しないのでしょうか? それとも、サーバー側で、自動的にアクセス順に処理してくれるのでしょうか? 素朴な疑問ですが、よろしくお願いいたします…。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

ほぼ同時に別々にCGIにアクセスしたら、平行して処理されます。ただし、別々のプロセスなので処理が混ざることはありません。変数も別々だし、子プロセスを呼び出してもその子は親が誰かを知っているので取り違えは発生しません。 もちろん、特定の1つのファイルをロックするのであればそこであとからロックしようとしたプロセスは待たされて順番を待つことになります。

investorgoo
質問者

お礼

ご回答有難うございました。 質問のような内容で悩むくらい、人がたくさん訪れてくれるようなHP作りを目指して頑張ります(^^ゞ

関連するQ&A

  • 別サーバーのcgiを実行させる

    あるサーバーで動作しているcgiスクリプトから、別のサーバーに置いてあるcgiスクリプトを実行させる方法はあるでしょうか? require 'http://…/…/test.cgi'; としても実行することは出来ませんでした。 googleで検索したところrequireではURL指定ができないと解説しているサイトがありましたので、requireを使わずに、(CGI.pm等の標準モジュール(?))なども使わないで他のサーバーに設置したcgiを動作させる方法があれば、教えていただきたいです。

    • ベストアンサー
    • CGI
  • クライアントとサーバーの接続確認方法について

    VB2005とSQLとSERVER2005の接続について 以下のような環境で動作するクライアントのプログラムを開発しています。 「DBサーバー」 WindowsXPSP3 DB:SQL-SERVER2005 「クライアント」 WindowsXPSP3 開発:VB2005 上記、クライアントでたまに、スタンドアローンで動作させる必要があるため、 スタンドアローンの場合、サーバーへはアクセスしないようにしたいのですが クライアントとサーバーが接続しているか確認したいのですが VB2005でどうすればいいでしょうか? 現状ですと、スタンダローンで動作していても、サーバーにアクセスしにいき タイムアウト(?)するまで、待っている状態でいます。 待つことをやめたいので、スタンドアローンで動作している場合、はアクセスしに 行かないようにしたいのですが。 どうか御教授ください。よろしくお願いします。

  • Perlスクリプトが、ローカルでは実行できるが、HTTP経由では実行できない

    現在Perlスクリプトを作成し サーバにアップしました。 SSHでサーバにログインし #perl a.cgi と実行したところ(CGIとして動作させるため。中身はPerlスクリプト) Content-type: text/html <html> <body> あああああ </body> </html> のようなメッセージが表示され正常に動作しているとおもいます。 しかし、 http://www.hoge.com/a.cgi をURLとしてブラウザ上で実行すると 500 Internal Server Error になります。 パーミッションは755で正常 Perlのパスは#!/usr/bin/perlとしており、これも正常です。 文字コードはeuc-jp 改行コードLF サーバはApache/1.3.33 Perlバージョンは5.8.4 自分のパソコン上でperl+HTTPサーバ(httpd)を使うと HTMLふぁいるとして出力されます。 サーバ上でHTTPを使ってアクセスしたときのみエラーとなります。 このような現象が起こるのですが原因がわかりません。 お願いします。

    • ベストアンサー
    • Perl
  • ASPで、サーバ上のスクリプトファイルの実行。

    こんにちは。よろしくお願いします。 環境 ASP Win2003、IIS6、SQLServer2000 イントラネット内環境のみのシステム クライアントPCでWebブラウザを起動して、とあるURLへアクセス。。。 ソースの中のVBS部分に書き込んでおいた、サーバ側のスクリプトファイルがキックされる。。。 サーバ上でスクリプトファイルが実行されてめでたしめでたし。。。 そんな事を思い描いていましたが。。。できませんでしたっけ??@w@; クライアントがアクセスするASPファイル hogehoge.asp -------------------- <% Dim objWsShell '##### Shellオブジェクトのインスタンス化 ##### Set objWsShell = Server.CreateObject("WScript.Shell") '##### シェルを起動する ##### Call objWsShell.Run("D:\abc\abc\Run.vbs", 1, false) '### Shellオブジェクトの破棄 ### Set objWsShell = Nothing %> <html lang="ja"> <head> <title>ほげほげ</title> </head> <body> ほげほげ </body> </html> -------------------- サーバ側に用意してあるスクリプトファイル Run.vbs -------------------- MsgBox "きっくされました。" -------------------- もしくは -------------------- obj.Run "notepad" (前後のobjのCreateあたりは省略。 -------------------- あたりにしても、うんともすんとも。。。 タスクマネージャーを確認すると、WScript、もしくは、Notepadのプロセス自体は動いているようなので、 キック自体は出来ている?ようなのですが、実行ユーザーが「NETWORK SERVICE」になっているため? 動いてはいないような感じに見えます。(CPUの数値が0固定なので。 該当のファイルのアクセス権限あたりは、NETWORK SERVICEに全権限あたえてみたりしたのですが、 自分の知恵じゃそろそろ方法が出なくなってきまして。。。 http://www.f-store.net/asp/parts-kubun.asp?MODE=START2&key=%82v%82r%82g 実際の、サーバ側に用意したスクリプトでは、さらに別のjsファイルをキックして、その中で、とあるWebページにアクセスして、 そのWebページのHTMLソースをテキストファイルとして保存する。という処理をさせています。 。。。サーバ上で、用意したスクリプトを実行すれば、希望通りの動きになるので、後は、上に書いた、クライアントのWebページからキックしたはずの スクリプトソースがちゃんと動けば。。。と思ってます。 やっぱセキュリティ関連に引っかかり。。。?それとも、何か自分がひどい思い違いをしている?? すみませんが、どなたかお知恵をお貸しください。よろしくおねがいします。m(_ _)m 参考:前質問 http://okwave.jp/qa/q6725891.html

  • サーバで上手く動かない?

    こんばんわ。 お世話になっています。 アクセス集計を行うCGIがあるんですが、ローカルでちゃんと動作確認できたのにサーバにあげたら上手く動いてくれません。 CGIはあるログファイルからデータがあればカウントしてグラフ化し表示するものです。 一応、ちゃんとサーバ上で動作していたものらしい上、ローカルでちゃんと動作したのでスクリプトミスと言うことはないと思います。 考えられるとしたらパーミッションの設定かと思い、700,705,755,777と試したのですが結果は変わりありませんでした。 他に考えられる原因があるとすれば何かありますか? ちなみにローカルで動作させた際のOSはWindowsです。 サーバはUnixですが、動作していたと思われるサーバもUnixでした。 Perlのバージョンは共に5.6です。 よろしくお願いします。

    • 締切済み
    • CGI
  • 高機能なアクセス解析のCGIスクリプトを探しています

    CGI-BOYのアクセス解析はとても高機能で使いやすいの ですが、広告が表示されてしまいます。 そこでフリーのCGIスクリプトを サーバーに設置しようと思うのですが (サーバーではCGIを許可しています)、 いろいろ探したのですが、CGI-BOYみたいな高機能のアクセス解析が見つかりません。 いいアクセス解析のCGIがあれば教えてください。 無料のものでお願いします。

  • このスクリプト実行できません。教えて!

    スクリプトを勉強中です。 https://technet.microsoft.com/ja-jp/scriptcenter/ff519411.aspx#EAE初心者 上のサイトの最初に記載のある試供ですが上手く表示されません。どうしてでしょうか? 試供 ------------- Wscript.echo "My very first script."そうです。この 1 行がスクリプトです。これは非常に単純なスクリプトであり、たいていのスクリプトはこれより長くなりますが、これもスクリプトです。ここで、この 1 行をどのように処理すればよいのかという疑問がわいてきます。それは非常に単純です。 メモ帳を開きます。 ブラウザからスクリプトをコピーし、メモ帳に貼り付けます。 test.vbs のように、拡張子 .vbs を付けてスクリプトを保存します。 ここでコマンド ウィンドウを開き、ファイルを保存したフォルダに移動し、次のように入力します。 cscript test.vbs前述のスクリプトでこの操作を行った場合、出力は次のようになります。 My very first script. -------------- 私は メモ帳にwscript.echo"wy very first script"を記載し、 保存はファイル名、"test.vbs"とし、 保存先は新しいフォルダ名、testに保存しました。 そのtestのフォルダを開き、そこでコマンドプロンプトも開きcscript test.vbsを入力したのですが、見つかりませんと記載されます。 何が悪いのでしょうか? 宜しくお願いします。

  • サーバーサイドスクリプトについて

    現在phpを勉強しようと思ってるのですが、少し疑問に思ったことがあるので質問させてください。 phpなどのサーバーサイドスクリプトは「サーバー上でプログラムが実行され、その結果だけがクライアントへ送られる」ということを知りました。 これはHTMLとちがって、そのサイトをブラウザでソース表示したときにphpのタグは表示されずに出力されたテキストなどだけが表示されるというような意味で合ってるのでしょうか??

    • ベストアンサー
    • PHP
  • 埋め込み型スクリプトでhtmlのままで動作するよい物はありますか?

    Linuxサーバーを使っています。 ファイル名がhtmlとhtmのファイルがたくさんあります。 リンクはそのままの形で使いたいので、html,htmファイルで動作する埋め込みスクリプトを 考えておりますが、何が一番よいでしょうか? .cgiにすれば何でもできますが、リンクのしがらみが沢山あり、それぞれのファイルアクセスは 元のhtml,htmで動作させるようにしたいです。 通常のhtml動作を妨げに用にするためにも PHPが一番スマートな方法でしょうか? ご教授ください。

    • ベストアンサー
    • PHP
  • シェルスクリプト内で他のサーバへSSH接続

    急にシェルスクリプトを組む事になり、勉強を始めて2週間です。 下記について、調べても分からなかった為、教えてください。 どのようなコマンドを使用すればよいのかや、参考になるサイトがありましたら教えてください。 【概要】 シェルスクリプト内で、SSH接続で他サーバへ接続し他サーバ内で別のシェルスクリプトを実行する。その際にroot権限が必要となる。 【環境】 作業PC:Windows サーバA:Linux サーバB:Linux 【スクリプト】 スクリプト1  格納場所:サーバA  処理  :スクリプト1、2を実行 スクリプト2  格納場所:サーバA  処理  :サーバA内でディレクトリ作成等の作業をしてOK/NGを返却 スクリプト3  格納場所:サーバB  処理  :サーバB内でディレクトリ作成等の作業をしてOK/NGを返却 【やりたい事】 1.作業PCからサーバAへSSH接続 2.サーバAでroot権限へスイッチし、スクリプト1を実行 3.スクリプト1は、スクリプト2を実行 4.スクリプト2はディレクトリ作成等の処理を行い、OK/NGを表示 5.スクリプト1は、サーバBへSSH接続 6.スクリプト1は、サーバBでルート権限へスイッチし、スクリプト3を実行 7.スクリプト3はディレクトリ作成等の処理を行い、OK/NGを表示 8.スクリプト1はサーバBからログアウト

専門家に質問してみよう