exec - PHP システム関数は簡単なコマンドを呼び出すことができますが、オクターブ スクリプトを実行することはできません。

WBOY
リリース: 2016-08-29 08:50:49
オリジナル
1130 人が閲覧しました

問題の説明:

octave は、MATLAB 構文と互換性のある GNU オープンソース科学計算ソフトウェアです。オクターブスクリプトを書き、最初にインタプリタとしてオクターブを指定しました#!/usr/bin/octave
在命令行下直接执行这段脚本,是可以生成我想要的图片的。即使用 ./octavedemo.m arg1 arg2...

ここで、shell_exec() などの PHP システム関数を使用してこのコマンドを実行したいのですが、機能しません。
権限に問題があるかどうかをテストするために、shell_exec() を使用して単純な ls -l およびその他のコマンドを実行しようとしましたが、成功しました。 リーリー

js は結果を受信して​​コンソールに出力できるため、システム関数の実行権限に問題はありません。

それでは、他にどのような状況が原因となる可能性があるのか​​お聞きしたいのですが?

画像の生成が遅いので時間がかかりすぎていませんか? php.ini で max_excution_time を 600 に設定しましたが、これで十分です
それとも、単純なテキストとは異なり、画像が大きすぎるため、そのような大きなサイズで生成できないのでしょうか?

経験談など教えていただけるととても嬉しいです!

更新(解決済み):

もともと、Apache のデフォルトの HTML ディレクトリに新しいデモンストレーション ディレクトリを作成し、このディレクトリに php とその他のファイルを配置しました。次に、このディレクトリに入り、その中のすべてのファイルに対して chmod 777 操作を実行しました。

ここで、demo ディレクトリに 777 権限を付与してみます。そうすれば、問題は解決します。これが、読み取りおよび書き込み権限を付与しないとこのディレクトリにファイルを生成できない理由です。
時間を無駄にしないためには、各ステップのロジックをより明確に考える必要があることが事実で証明されました。

返信内容:

問題の説明:

octave は、MATLAB 構文と互換性のある GNU オープンソース科学計算ソフトウェアです。オクターブスクリプトを書き、最初にインタプリタとしてオクターブを指定しました

#!/usr/bin/octave
在命令行下直接执行这段脚本,是可以生成我想要的图片的。即使用 ./octavedemo.m arg1 arg2...

ここで、shell_exec() などの PHP システム関数を使用してこのコマンドを実行したいのですが、機能しません。

権限に問題があるかどうかをテストするために、shell_exec() を使用して単純な ls -l およびその他のコマンドを実行しようとしましたが、成功しました。 リーリー
js は結果を受信して​​コンソールに出力できるため、システム関数の実行権限に問題はありません。

それでは、他にどのような状況が原因となる可能性があるのか​​お聞きしたいのですが?

画像の生成が遅いので時間がかかりすぎていませんか? php.ini で max_excution_time を 600 に設定しましたが、これで十分です

それとも、単純なテキストとは異なり、画像が大きすぎるため、そのような大きなサイズで生成できないのでしょうか?

経験談など教えていただけるととても嬉しいです!

更新(解決済み):

もともと、Apache のデフォルトの HTML ディレクトリに新しいデモンストレーション ディレクトリを作成し、このディレクトリに php とその他のファイルを配置しました。次に、このディレクトリに入り、その中のすべてのファイルに対して chmod 777 操作を実行しました。

ここで、demo ディレクトリに 777 権限を付与してみます。そうすれば、問題は解決します。これが、読み取りおよび書き込み権限を付与しないとこのディレクトリにファイルを生成できない理由です。

時間を無駄にしないためには、各ステップのロジックをより明確に考える必要があることが事実で証明されました。

PHP の shell_exec メソッドは Web ユーザー権限を使用します。スクリプトに Web ユーザーとしての実行権限があることを確認してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート