• 締切済み

phpで外部ファイルの実行方法を教えて下さい。

現在、linux、phpでアプリケーションの開発をしているのですが、まだまだ素人で、外部ファイルの実行がうまくできません。 どなたかご教授していただけますでしょうか。 【やりたいこと】 ・phpファイルで同じサーバー内にあるphpファイルを実行する。 以前は実行するファイルがperlであり、phpファイルで、 exec("perl /var/www/test/encoder/test.pl"); を記述することで、うまくtest.plが実行されていました。 今回、test.plをphpに書き直し、tet.phpを実行したいのですが、 なかなかうまくいきません。 exec、systemなどを色々試み、ネットでも調べてみたのですがうまくいかないので、どなたかご教授いただけますでしょうか。 よろしくお願いいたします。

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

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>今回、test.plをphpに書き直し、tet.phpを実行したいのですが、 引数はともかく、コマンドはperlの代わりにphp(pathが通っていなければフルパス)を書くことになります。ただしCLIですので動作が若干違ってきます。けっこうソースを書き替えないといけなくなるハズです(以下のURLを熟読してください)。   http://www.php.net/manual/ja/features.commandline.php また、モジュール版動作からCLI起動して問題ないかどうかは不知です。 個人的には、どうせソースを書き替えるなら(execじゃなくて)includeで実行して問題ないように書き替えた方が楽だと思います。

engalmiyu
質問者

お礼

ご回答ありがとうございます。 phpのパスをフルパスで書いたらうまく動作しました。

関連するQ&A

  • phpで外部phpを稼働させる方法について

    初心者です、宜しくお願いします。 外部でメールを送信するプログラムを利用者にストレスが無いようにバックグラウンドで稼働させたいと考えています、   自分なりに調べて、exec関数でテストプログラムを作ってみましたが記述の方法に誤りがあるのか動きません、 sampleプログラム (test.php) <?php exec("nohup php -c '' 'sendmail.php' > /dev/null &"); ?> sendmail.phpは自分宛に送信するよう簡単に作ったプログラムで test.phpと同じディレクトリに設置してあります、 単独で実行するときちんと届きます、 パーミッションは双方とも、604に設定してあります。 どなたかご教授いただけると助かります。 宜しくお願い致します。

    • 締切済み
    • PHP
  • [cakePHP]外部ファイルの実行方法

    過去の質問や他サイトを参考にしても実行できなかったので、ここに質問させていただきます。 cakePHPを用いてa.ctpからb.ctpにredirectする処理の裏で別の処理を実行させるという、いわゆる非同期処理を試しています。 具体的に言うと、DBを更新する処理を書いたhoge.phpを外部ファイル実行しているものです。 その外部ファイル実行時のコマンドで悩んでいます。 「exec("php C:/hoge/hoge.php > /dev/null 2>&1")」  や 「popen('start /B cmd /c "C:/pleiades/xampp/php.exe C:/hoge/hoge.php > /dev/null 2>&1"',"r")」 などいくつか試してみたのですが実行されていません。 DB更新処理自体は、hoge.phpを単体で動かして動作確認が取れたので問題無しと考えます。 質問としては、 ・execないしpopenのコマンドの書き方はこれでいいのか。 ・そもそも外部ファイル(hoge.php)は上記のように自由な場所に置いていいのか。 となります。 どうかご教授ください。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPからバッチファイルの実行

    PHPのファイルから、特定のPDFファイルを印刷するコマンドが書かれたバッチファイルを実行したいと考えています。 exec(\'test.bat\');みたいな感じでやってはみたものの、Web画面が止まってしまってうまくいきませんでした。 どなたかご存知の方、ご教授ください。よろしくお願いいたします。

    • 締切済み
    • PHP
  • phpからlinuxコマンドを実行したい

    CentOS6で test.phpを作成しました。 <?php $buf = ''; exec("yum list installed | grep php | cut -d' ' -f1", $buf);   var_dump($buf[0]); ?> コマンド:php test.php を実行したのですが、実行結果が帰ってきません。 (当然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の exec() や system() 関数(もしくは他のコマンド実行関数)を用いて実行した外部プログラムで生成した配列等を取得する方法をご存知の方はおられませんでしょうか。 詳しい方がおられましたらご教授頂ければと思います。 宜しくお願い致します。

    • 締切済み
    • PHP
  • 外部プログラム実行について

    PerlからMifesのマクロを動かしたいのですが、外部プログラムを実行させるにはsystem関数とexec関数があるみたいですが、どっちを使えばいいのでしょうか? また、PerlからVBAを操作したりすることはできるんですか?どのように書いたらいいか、詳しい方法を教えて頂きたいです。

    • ベストアンサー
    • Perl
  • 外部コマンドの実行結果の取得

    こんばんは。 PHPで開発を行っているのですが、外部コマンドを実行した際に、期待した結果が返ってこなくて困っています。 echo exec('grep 検索文字 ファイル名'); と書いて実行すると、最後の検索結果しか表示されません。 上記を$cmd変数に入れ、 exec($cmd,$status,$result); echo $result; と書くと、int(0)が表示されます。 何か、根本的に間違えているのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPのexecで別PHPの実行

    「エックスサーバー」というレンタルサーバーを使用しています。 PHPファイルの中で[exec()]関数を用いて、別ファイルのPHPを実行させたいと考えております。  ・PHPバージョン:5.3.3  ・ドメイン:XXXXX.xsrv.jp 以下の内容(ProgramA)を実行すると、 [exec()]関数で呼び出している処理(ProgramB)が実行されていないように思います。 どのように修正したら、(ProgramB)が実行されるのでしょうか? どうかご教示くださいませ。 ---ProgramA.php (起動する側)---------------------- <?php exec('/usr/bin/php5.3 /home/XXXXX(ユーザー名)/xsrv.jp(ドメイン)/public_html/AAA/BBB/ProgramB.php'); echo "test!"; ?> ※ProgramA.phpを実行すると、ブラウザには「test!」という文字列が表示されます。 ※ProgramA.phpのパーミッションは755に設定されています。 ---ProgramB.php (起動される側)---------------------- <?php echo"HelloWorld"; ?> ※ProgramB.phpのパーミッションは755に設定されています。

    • 締切済み
    • PHP
  • 外部ファイルの関数を使うには?

    phpで include_once('okok'); なら、そこで定義した関数や変数は使えるのですが、 perlで require "dame.pl"; として、dame.plで定義した変数を使おうとすると、 Global symbol "%hash_hensuu" requires explicit package name at test.pl line 16. となります。 パッケージや変数の輸出?など片言の言葉が思い浮かぶのですが、実際どのように書けば、外部ファイルの関数を使えるようになるのでしょうか?

    • ベストアンサー
    • Perl

専門家に質問してみよう