phpからツールを起動する際の権限

このQ&Aのポイント
  • phpからexeを起動する際の権限について質問です。
  • phpのexec関数を使用してバックアップツールを起動するとエラーが発生します。
  • 調査中にphpから起動すると権限の問題が発生している可能性があることがわかりました。
回答を見る
  • ベストアンサー

phpからツールを起動する際の権限

phpからexeを起動するとエラーとなり、権限の問題かと睨んでいるのですが対処法が分かりません。 windows server上でapache2.2.14、PHP5.2.6を使用しています。 phpのexec関数を使用してバックアップツールを起動するとツールがファイルのコピーに失敗して正常終了できません。 phpを使わず、エクスプローラから直にexeを起動すると正常終了します。 ツールはc++で作っており、CopyFile関数にてエラーが発生。 悪戦苦闘中ですが、あれこれいじってみても以下のいずれかのエラーとなり正常終了となりません。 「ネットワーク名が見つかりません。」 「アクセスが拒否されました。」 調べる中で、phpから起動するとapacheユーザの権限で云々といった情報がネットで見つかり、さては権限が怪しいかと思っているのですが、知識不足で何をどうすれば良いのか分かりません。 ダメ元でhttpd.exeのプロパティを開き、「管理者としてこのプログラムを実行する」のチェックボックスをONにしてapacheを再起動してみましたが状況に変化がありませんでした。 問題の原因や対処法、権限の設定についてなど、何か分かることがあれば教えていただけないでしょうか。 宜しくお願い致します。

  • d_g
  • お礼率88% (22/25)
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

タスクスケジューラーからEXEを起動するって選択肢はありますか? あるいは、C++で作成したというそのEXEの動作内容を常駐させるように変更とかは可能ですか? ※何らかのPHPからC++プログラムへ、イベントトリガー的な通知方法を用意する (PHPがファイルを作成する、C++プログラムはそのファイル名のファイルの有無を監視する、ファイルが存在すれば元々の目的処理を行いトリガーファイルを削除する、など) 「PHPからツールを起動する」という質問とは、別の方向から攻めてみました

d_g
質問者

お礼

タスクスケジューラの利用は検討中ですが、常駐は考えていませんでした。 常駐も考慮してみたいと思います。 ありがとうございます。

関連するQ&A

  • PHPからバッチが起動しない><

    環境 WindowsXP SP2 MySQL6.0 Apache2.0.63 PHP5.2.5 IEからPHPを開いて、コマンドを起動しJavaを起動させたいのですが エラーメッセージが出るわけでも無く起動出来ません。 exec('*******.bat'); だけでは、ダメなのでしょうか? PHPからMySQL等のその他の機能は正常に動作してます。 何か、設定ミス等があれば教えてください><

    • 締切済み
    • PHP
  • PHPでサーバーにインストールされたアプリケーションを起動させたい

    バッチファイルを使って、サーバーにインストールを起動させようとしています。 が、PHPのexec関数が動きません。 バッチファイルを開こうとすると固まってしまいます。 xxx.bat ---------------------- cd C:\Program Files\xxx setup.exe ---------------------- xxx.php ------------------------------ $cmd = "cmd.exe /c start xxx.bat"; exec( $cmd ); ------------------------------ Windowsサーバー2003 R2 Apache2.2 お手数ですが、どなたかご教示下さい。

    • ベストアンサー
    • PHP
  • PHPのexec();をつかってアプリケーションを起動したい。

    サーバーにインストールされたプログラムを起動させたいのですが、うまくいきません。 PHPでバッチファイルを開いて、プログラムを起動させるようにしているのですが、アクセス権限がないのか、ファイルが開かず、web画面も止まってしまいます。 <?php exec('xxx.bat'); ?> 【環境】---------------- Windows Server 2003 R2 Apache2.2 PHP5 ------------------------ サーバーから直接"http://localhost/"や"http://IPアドレス"でアクセスした場合は動くのですが、別PCや、リモートデスクトップでアクセスした場合には動きません。 インターネットゲストアカウントはフルコントロールにしているのですが他にも設定で足りないところがあるのでしょうか。 どのたかご教示お願いします。 ※起動したいプログラムは処理が終ったら自動終了します。

  • Apache2.0.63でphp4.4.4(起動できない!)

    現行のシステムと同じ環境を作るためphp4.4.4を入れようとしています。 公式のサイトからphp-4.4.4-installer.exeをダウンロードして、インストールしました。そしてphp4apache2.dllもphp4apache2.dll-php4,4,x,zipのものに変更しました。 その後apacheのhttpd.confを変更して起動したのですが、 「The requested opration has failed!」となり起動できません。 error.logには ---------------------------------------------------------------- Syntax error on line 173 of C:/Program Files/Apache Group/Apache2/conf/httpd.conf: Cannot load C:/PHP/php4apache2.dll into server:[文字と数字と\の羅列] ---------------------------------------------------------------- と出ています。 php.iniの設定など見直してみましたが特におかしな点は見当たりませんでした。 気になっているのがphpをインストーラで入れた所、ファイル構成がinstall.txtの記述と違っている点です。 以下のフォルダやファイルしかなく、あるはずのsapiフォルダなどがありません。 ---------------------------------------------------------------- ・BACKUPフォルダ ・sessiondataフォルダ ・uploadtempフォルダ ・IISConfig.exe ・install.txt ・License ・php4ts.dll ---------------------------------------------------------------- 今気づいたのですが、サーバーをApacheに設定しているのにIISとあるものがあるのも変な気がします。 どうすればphpを使えるようになるか、ご教示お願いします。 情報不足でしたら補足いたします。 本題とはずれますが、error.logは毎回出力されないのでしょうか? 何回か設定を変えては起動、を繰り返したのですが、その分のエラーは追加されていないようです。

    • ベストアンサー
    • PHP
  • PHPからexecを使ってGnuPGを実行できない

    GnuPGをPHPからexec関数を使って実行しようとしていますが、exec関数がエラーになって GnuPGが実行されません。 ただしexec関数に渡すコマンドをコマンドラインから直接打ち込むと正常に実行されます。 具体的には $cmd = "/usr/local/bin/gpg --always-trust --batch --no-secmem-warning -e -a -r ユーザー名 ファイル名のフルパス"; $ret = exec( $cmd, $output, $ret_val ); ここで$retにFALSEが、$ret_valには2が返ってきます。 $cmdのコマンドをコマンドラインから実行すると正常に実行されます。 環境 Apache/1.3.27 (Unix) (Red-Hat/Linux) GnuGP 1.4.6 PHP Version 4.3.11(セーフモードはOff) 以上、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php実行権限以外でのディレクトリ(ファイル)作成方法

    webからphpを起動し、ディレクトリを作る場合、 phpが実行された権限ではない権限で作ることはできますか? 所有者がapacheとなるディレクトリを作りたいのです。 試してみたこと。 ・mkdirでディレクトリ作成後、chownで所有者変更が出来ればいいのですが、 root権限で動いているわけではないので無理でした。 ・シェルを作って、シェルの所有者をapacheにしてphpからコマンドラインで シェルを呼び出してみましたが所有者apacheで作られません。

    • ベストアンサー
    • PHP
  • exec()にで別PHPをバックグラウンドで起動させるには

    どうしたらよいか分からずに困っております…。 例えば次の様な記述が実行できません。 exec("c:\php\php.exe c:\test\test.php"); 次の様にperlファイルを起動しようとすると、それは問題なく動作します。 exec("c:\perl\bin\perl.exe c:\test\test.cgi"); すみませんが、どなたかヒントだけでも頂けたら嬉しいです。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • php-4.2.3が起動しません

    TurboLunux 8.0 Server、Apache1.3.26を使用しています。php-4.2.3をインストールし、httpd.confを設定してphpを起動したのですが、libphp4.soが読み込めないとのエラーメッセージが出てしまいました。 libphp4.soを探してみたのですが、見当たりません。 どうしたら良いですか?

    • 締切済み
    • PHP
  • PHPを用いてサーバー側にインストールしたアプリケーションを起動する

    ubuntu8.1.0 XAMPP for Linux 1.7.1 環境にて、サーバーを稼動させています。 将来的にはvmwareをWeb上から起動させればいいと考えております。 とりあえずは、この環境でgeditを起動させようとしました。 調べたところ、exec関数やsystem関数を用いれば、実行できる関数があるとの事なので、 試しに、フォルダとファイルに全権限を許可した状態で、 exec("/usr/bin/gedit"); と書いたtest.phpにアクセスしてみましたが、サーバー側ではなんの変化もありませんでした。 exec("ls"); を実行してみたところ、フォルダの中身が表示されました。 UNIXコマンドのみしか受け付けない?と考え、今度はシェルコマンドを使って実行してみました。 test.sh #!/bin/sh /usr/bin/gedit というファイルをつくり、 $exec("/bin/sh /opt/lampp/htdocs/test/test.sh") を実行してみたのですが、やはりうんともすんとも動きませんでした。 お手上げ状態となっております。 phpからサーバー上にインストールされたアプリケーションを起動させる事はできないのでしょうか? もし、何か方法などがありましたらご教授お願いします。

    • ベストアンサー
    • PHP
  • 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

専門家に質問してみよう