検索
ホームページバックエンド開発PHPの問題exec php が実行できない場合はどうすればよいですか?

exec php が実行できない問題の解決策: 1. yii ファイルの最初の行を変更して、php インタープリターを直接指定します; 2. exec 呼び出しメソッドを変更して、php インタープリターを直接指定します。

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 エラー」を参照してください。
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 どのプログラムを使用すればよいか知っていますか?
nginx user
セキュリティ上の理由から、nginx ユーザーのシェルは通常 /sbin/nologin

関係は何ですか?スケジュールされたタスクと Web 操作の間で?
OSS バックグラウンド管理ページのスケジュールされたタスクとクリック操作の関係がうまく処理されていない;

    yii フレームワークのコンソールと Web の 2 つの処理方法;
  1. crontab のテスト容易性を向上させる方法の問題;
    crontab のユーザー エクスペリエンスを向上させる方法の問題;
    crontab タスクと API (コントローラー/アクション) コードを合理的に再利用する方法の問題;
    # #フォアグラウンドとバックエンド コントローラー/アクションを共有する方法;
  2. または、複数のプロジェクト間でコード ライブラリを便利に共有する問題;

  3. 啓発
php-fpm はexec、system、shell_exec は機能しません。CLI のみ;
  • PHP exec() はすべてのコマンドを実行しません;

以上がexec php が実行できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
酸とベースデータベース:違いとそれぞれを使用するタイミング。酸とベースデータベース:違いとそれぞれを使用するタイミング。Mar 26, 2025 pm 04:19 PM

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

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。Mar 26, 2025 pm 04:18 PM

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

PHP入力検証:ベストプラクティス。PHP入力検証:ベストプラクティス。Mar 26, 2025 pm 04:17 PM

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

PHP APIレート制限:実装戦略。PHP APIレート制限:実装戦略。Mar 26, 2025 pm 04:16 PM

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

PHPパスワードハッシュ:password_hashおよびpassword_verify。PHPパスワードハッシュ:password_hashおよびpassword_verify。Mar 26, 2025 pm 04:15 PM

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

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。Mar 26, 2025 pm 04:13 PM

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

PHP XSS予防:XSSから保護する方法。PHP XSS予防:XSSから保護する方法。Mar 26, 2025 pm 04:12 PM

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

PHPインターフェイスvs抽象クラス:それぞれを使用する時期。PHPインターフェイスvs抽象クラス:それぞれを使用する時期。Mar 26, 2025 pm 04:11 PM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール