てぃーだブログ › システムエンジニアの日々 › 備忘録 › PHP exec関数が実行できない エラーコード 126

2010年11月19日

PHP exec関数が実行できない エラーコード 126

出向先での作業中に出てきた問題と対応策

既存システムの開発環境を開発用サーバに作成することになり
開発環境にはPHP(バージョン5.3)をソースコードからインストールしました。
PHPをソースコードからインストールしたのはサーバOSが古く、対応するrpmが用意されていなかった事と、今後その他の開発環境も同じサーバで整備する予定なので最新版をソースコードからインストールしました。

この環境で既存システムを構築し動作させた所、exec()でのコマンドが実行できません。

ネットで調べてみても、掲示板に同じような質問をしている人は見かけるのですが、明確な解決策までは書かれていませんでした。
php.iniの設定や海外サイトも含めて調査したところ
exec()を使用する際、実行コマンドをフルパス指定しなければいけないようです。

例えば自作の実行ファイルを起動する場合
今までだと
exec('../bin/func.php', $output, $status);
で良かったのですが、今回
exec('/usr/local/bin/php ../bin/func.php', $output, $status);
のように実行コマンドをパス指定しなければ動かないようです。
※コマンドのパスは各自環境で異なると思いますのでちゃんと調べて設定してください。

何かしら環境設定を行えば実行ファイルのみでもできそうですが
こちらの方がセキュリティー上(少しは)良いのかもしれません。



同じカテゴリー(備忘録)の記事

Posted by さんらいおん at 20:59│Comments(0)備忘録
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。