exec php が実行できない問題の解決策: 1. yii ファイルの最初の行を変更して、php インタープリターを直接指定します; 2. exec 呼び出しメソッドを変更して、php インタープリターを直接指定します。
#この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、Dell G3 コンピューター。
php exec が実行できないのはなぜですか?
Origin
スケジュールされたタスクがあります。OSS バックグラウンド管理ページでクリックして開始したいのですが、いくつかの方法を試しましたが、システムやシステムに関係なく、うまくいきません。 exec (シェルコマンドラインで手動で実行しても問題ありません) ); 最初は、Web サーバーの nginx ユーザーの権限の問題を疑いましたが、後で環境変数が php 実行可能ファイルを見つけることができないことがわかりました (nginx ユーザーが原因で、は制限付きユーザーです);
問題箇所
exec("/home/app/example/api/app/yii demand/virtual {$id}", $output); print_r($output);
以上 スクリプト実行後はArray()
のみが出力されます当然業務コードは実行されません(ビジネスコードの1行目が出力されます);
// http://oss.example.com/index.php?r=demand/demand-ip/msg&id=1929 点击后执行 exec("/home/app/example/api/app/yii demand/virtual {$id} 2>&1", $output); print_r($output);
上記のスクリプトを実行するとエラーが出力されます: Array ([0] => /usr/bin/env: php : そのようなファイルまたはディレクトリはありません )
;
/usr/bin/env: php
この文は yii ファイル #!/usr の最初の行から来ています/bin/env php
、これは yii ファイルを実行する php スクリプト インタプリタの場所を示すことを目的としていますが、エラー出力は /usr/bin /env: php: No such file or directory## です。 # php が見つからないことを意味します;
PHP ビデオ チュートリアル "]
解決策- 解決策 1 : yii ファイルの最初の行を変更して、php インタープリターを直接指定します。
- は
#!/usr/bin/env phpから
# !/usr/local/bin/ に変更されます。 php、つまり、php インタープリターの場所を直接指定します (コードがリリースされたときに変更することもできます);
オプション 2: exec 呼び出しメソッドを変更し、php インタープリターを直接指定します。
exec("/usr/local/bin/php /home/app/example/api/app/yii demand/virtual {$id} 2>&1", $output); print_r($output);
- 注: 実際の実行では、exec コマンドにはまだ問題がいくつかあります。以下の「504 エラー」を参照してください。
- 実行時間が長すぎる場合 (60 秒以上など)、ページに 504 エラー (ゲートウェイ タイムアウト) が表示されます;
- 標準出力と標準エラーをリダイレクトする必要があります, するとバックグラウンドプロセスがコマンドを実行し、処理プロセス番号がページに出力されます;
$cmd = '/usr/local/bin/php /home/app/example/yapp/yii demand/finish 2057'; $pid_file = 'msgrepeat.pid'; $exec_cmd = sprintf("%s > /dev/null 2>&1 & echo $! > %s & cat %s", $cmd, $pid_file, $pid_file); exec($exec_cmd);/usr/bin/envについて(移植性が高い?)
- シバンとして「#!/path/to/NAME」ではなく「#!/usr/bin/env NAME」を使用する方が良いのはなぜですか?
- /usr/bin/ はどのように機能しますか? env どのプログラムを使用すればよいか知っていますか?
- yii フレームワークのコンソールと Web の 2 つの処理方法;
- crontab のテスト容易性を向上させる方法の問題;
crontab のユーザー エクスペリエンスを向上させる方法の問題;
crontab タスクと API (コントローラー/アクション) コードを合理的に再利用する方法の問題;
# #フォアグラウンドとバックエンド コントローラー/アクションを共有する方法; または、複数のプロジェクト間でコード ライブラリを便利に共有する問題;
- PHP exec() はすべてのコマンドを実行しません;
以上がexec php が実行できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版
便利なJavaScript開発ツール
