system()で止まってしまいます

このQ&Aのポイント
  • anhttpd環境で作ったphp + vbsをapacheに移行した際、system()関数が停止してしまいます。
  • 試したこととして、動作確認プログラムを作成しました。php側では引数を渡しvbsを呼び出す処理を記述し、vbs側では受け取った引数をmsgboxで表示します。コマンドラインからphpを実行するとmsgboxが表示されるが、ブラウザからphpを実行すると処理が終わらない状態です。
  • この問題を解決するために、anhttpd環境とapache環境での違いを調査する必要があります。具体的には、phpの設定や環境変数の違いなどを確認してみると良いでしょう。
回答を見る
  • ベストアンサー

system()で止まってしまいます

anhttpd環境で作ったphp + vbsをapacheに持って行ったところ system()で止まってしまいます。 どこを見たら良いでしょうか? 作成環境 anhttpd + php4.3.1 ⇒httpdからはphp.exeを使用 不具合の発生した環境 apache1.3 + php4.3.1 試してみたこと 動作確認プログラムを作成 ・php側 引数を渡しvbsを呼び出すすだけの処理を記述 ・vbs側 受け取った引数をmsgboxで表示 コマンドラインからphpを実行 ⇒ msgbox表示 ブラウザからphpを実行 ⇒ msgboxが出ずに処理が終わらない

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

VBSは、system()で、サーバ側で実行されるんですよね? そうするとサーバ側でmsgboxの表示内容を表示しようとしますので、ブラウザには表示されません。 かつ、msgboxは出力先が分からないため、サーバのウィンドウにも表示されずにいると思います。 それにMSGBOXは、何かボタンを押さないと閉じないのでは?閉じないと言う事は、次に処理が進まないではないでしょうか? 質問の意味を取り違えていたらごめんなさい。

redraft
質問者

お礼

ありがとうございます。 その通りです。 ただしサービスのプロパティが「対話処理をしない」に なっていたためバックグランドでcmd.exeが山のように 立ち上がってました。 プロセス一覧を見て気が付きました。

関連するQ&A

  • AN HTTPDでPHPが動かない

    表題の通りで困っております。宜しくお願いします。 http://homepage1.nifty.com/yito/anhttpd/faq/php5.html ↑を見ながら設定しているのですが、ブラウザ上では、 「ページを表示できません」となってしまいます。 ファイルはいつもの phpinfo() です。 通常のHTMLは見れるので、HTTPD側の設定だとは思うのですが・・・。 ちなみにコマンドライン(php-cgi.exe)で php-cgi -f phpinfo.php を実行すると正常にHTMLがはきだされます。 どこか設定が足りないのでしょうか。

    • 締切済み
    • PHP
  • Apache+PHPで動かない・・・

    phpを初めて約三ヶ月、開発環境の整備はXAMPPに丸投げにしていたのですが、「勉強の為にもApacheなどを手入れして行ったほうが良い」 と言われ、挑戦してみた者です。 環境は、WindowsXPです。 どうやらApacheの設定から言って、おかしいようなのです。 C:/apache/にインストールしたのですが、 コントロールパネル→管理ツール→サービスで確認してみると、C:/bin/httpd.exe で実行されるのです。 C:/apache/bin/httpd.exeで実行されないとおかしい気もするのですが・・・ それで、C:/にapacheの同梱フォルダを全てコピーし、設置したところ、動きました。 しかし、「サービス」はC:/bin/httpd.exeで実行されているのに、htdocsなどはC:/apache/で実行されているらしいのです。 Apacheの設定自体がわかりません。従ってPHPの設定もできません。 ApacheとPHPの導入に関しては、http://buzzword.jp/index.html とマニュアルを参考にしました。 やはり初心者はXAMPPで一括導入しておけよと言うことなのでしょうか・・・ 散乱文ですが、回答のほどよろしくお願いします。

  • 電源投入と同時に実行されるソフトをストップしたい

    WindowXPですが、電源投入し、たちあがると、 Apache.exeがプロセス上で実行されています 今、不都合なのは ANHTTPdを実行しようとするとエラーになります 原因の一つにApache.exeが実行されている為でした Apache.exeが実行しないように、するには  どうしたらいいか、教えてください スタート/すべてのプログラム/スタートアップ  の中にはありません Apacheがなぜ、セットアプされたか、と言いますと  PHPを試してみたく、phpでv5のセットアップを  しました、その際Installされたものと思います 多分、Apache以外にもPHP、MySQLも同時に実行されて  いる、と思います  こうしたファイルすべて実行しないように  したいのです。

  • PHP4スクリプトはSYSTEMユーザで動かない?

    WindowsサーバにApache2があり、PHPで Webアプリケーションを稼動させています。 サーバにはExcelがインストールされてい ます。OLEによりWebアプリからブックを 作成します。 しかし、対象データが多いとタイムアウトに なるため、Cでプログラムを作り、複数の プロセスを同時に走らせて効率化を図り ました。このプログラムをコマンドプロンプト から実行すると、狙い通りに動作し、速度は 改善されました。しかし、これをWebアプリの system関数で実行すると、何もせず即座に 終了します。Cプログラムでログを取って、 調べたところ、CreateProcessは成功して いますが、PHP.exeが起動後即死している ようです。Apacheのアカウントはユーザとの インタフェースを持たないためかと思い、 Cプログラムでユーザを偽装して起動して みました。しかし、PHP.exeはAdministrator アカウントで起動されるのですが、やはり 起動後の即死は相変わらずです。 これをPHP5のPHP.exeで実行すると正常に 動作しました。但し、実際に稼動する環境で PHP5が入る保証はありません。 PHP4では解決できないとなれば、掛け合う 余地はありますが、ダメという論拠が必要に なります。 WebアプリからPHPスクリプトを実行する方法 あるいは実行できない理由をご存知の方は ご教授くださると有り難く存じます。

    • ベストアンサー
    • PHP
  • phpとoracleを用いたシステムでの文字化け

    phpとoracleを用いたシステムでwebサイトを構築しているのですが、 ブラウザからアクセスしページ表示した際に、全角文字が文字化けしてしまいます。 ◆環境 webサーバ:apache, php, oracleClient, PDO_OCI DBサーバ:oracle DBデータアクセス方法:PDO ◆事象の詳細 文字化けといっても必ず ???? とクエスチョン続きで表示されます。 上記webサーバのコマンドラインでphpのバッチを実行したところ、 コマンドライン上では正常に全角文字が表示されます。 まったく同じバッチをwebブラウザからhttpでアクセスを行ったところ、 文字化けしてしまいます。 ブラウザでの表示が悪いのではと思い、 phpのバッチ実行時に結果をテキスト出力させる処理を追加したのですが、 コマンドラインで実行した際は正常に出力され、ブラウザでアクセスした際は内容が文字化けして出力されました。 上記事象からアパッチが影響してるのではと考えられるので、 webサイトごと個別のhttpd.confの設定ファイルに NLS_LANG を設定したのですが、 結果は変わりませんでした。 文字コードの指定がない(正しくない)から文字化けするというよりは DBサーバから取得する文字列をどう受け取って(扱って)いいのかわからないという感じがします。 何か解決策等、わかる方がいましたらご教授いただけますでしょうか。

    • 締切済み
    • PHP
  • RPMの削除

    環境:RedHat9/apache2/php4 RPM形式でインストールされたapache2・PostgreSQL・ PHP4.2.2を削除する時は下記の方法で良いのでしょうか? rpm -e httpd rpm -e postgresql rpm -e php 上記コマンド実行時に表示される関連(is need by)する rpmファイルも削除する。

  • 教えてくださいphp初期設定の確認で、phpinfo スクリプトのままブラウザ表示されます。

    Apacheとphpをインストールしてhttpd.confの設定を以下のように追記。動作確認で test.phpファイルを作成して test.phpファイルの記述。 <?php phpinfo(); ?> htdocsディレクトリに保存しましたが、ブラウザで確認するとphpinfo でスクリプトが表示されます。なにが足りないのでしょうか? 教えてください。 詳細環境 Windows2000 apache_1.3.24 インストール先 C:/Apache Group php-4.1.2 インストール先 C:/php4 httpd.confの設定追記 ScriptAlias /php4/ "C:/php4/" AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps Action application/x-httpd-php /php4/php.exe DirectoryIndex index.php Apacheを再起動 はやくスタートラインに並びたいです。 ご存知のかた教えてください。

    • ベストアンサー
    • PHP
  • PHPでのフォルダ作成について

    始めて質問させていただきます。 今、PHPの勉強をしているのですが PHPでのフォルダー作成について困っています。 環境は 1. WindowsXP + IIS + PHP5.3.2 2.CentOS5.5 + Apache2.2.3+PHP5.1.6(テスト用に下記URLを参考に構築) http://centos.server-manual.com/ 今まで、1の環境にて開発をしていて問題なく動いていたのですが より本番に近い環境でと思い、2の環境を作り1のファイルをアップロードしました。 Apache自体は動いていて、HPの表示はされているのですが PHPで mkdir の処理が動かず(FALSEが帰ってくる)フォルダーの作成が出来ない状態でいます。 もちろん1の環境では問題なく動いていて、フォルダ作成も出来ていました。 2へアップロードした際は、ドメイン名等の定数のみの変更で、その他のソースは変えていません。 httpd.conf の設定の問題でしょうか? httpd.conf の User と Group は "apache" になっています。 ユーザー "apache "の権限でしょうか? 色々調べては見たのですが、どうも分からず質問させていただきました。 以上、設定内容等なにか情報が足りなければ、ご指示いただければ載せます。 よろしくおねがいします。

  • system関数

    以下のように、phpでsystem関数を用いて $command = "php4 -q <ファイル名>.php"; system($command); コマンドラインからプログラムを実行していたんですが、ファイルを別サーバに移動させたところ、 実行できなくなりました。 双方ともphpのバージョンは4.0.6、 コマンドラインからphpを実行できるように設定されています。 変わった点はapacheのuserがnobodyから 他の名前に変更されています。 やはり、実行できないのはapacheのuserが変更されたのが 原因なのでしょうか? もし、そうならばどのように対処すればよいのでしょうか?よろしくお願いします。

    • ベストアンサー
    • PHP
  • MySQLでのLinuxユーザの作成

    Linux上でMySQLを構築する際useraddコマンドでmysqlユーザを作成することは何かメリットがあるでしょうか? Apache httpdの構築の本を読むと実行ユーザ用にapacheユーザを作成しているのですが、MySQLの本では実行ユーザはmysqlを指定しているのに、OS上でユーザ作成は行っていません。 存在しないユーザであっても、実行ユーザとして指定できるのであれば、MySQLではmysqlユーザを作成することに何かメリットがあるでしょうか? また、反対にApache httpdでは何故apacheユーザ(とグループ)を作成しているのでしょうか? (試していませんが、Apache httpdでは存在しないユーザでは実行できないのでしょうか?) よろしくお願いいたします。