ホームページ バックエンド開発 PHPの問題 php execが実行できない場合の対処法

php execが実行できない場合の対処法

Nov 22, 2022 am 10:16 AM
php exec

php exec が実行できない問題の解決策: 1. php 設定ファイル php.ini を見つけ、ファイル内で「disable_functions」を検索し、「exec」と「shell_exec」を削除します。 ;3. 設定内のセーフ モードを「safe_mode=On」に変更します。

php execが実行できない場合の対処法

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。

php exec が実行できない場合はどうすればよいですか?

PHP exec がシステム命令の実行に失敗する理由の分析

問題の背景:

原因プロジェクトの要件に応じて、HTML ページから画像を生成し、phantomjs (クリックして学習) ツールを使用してページのスクリーンショットを撮り、cmd ウィンドウで問題なく実行する必要があります。しかし、php で exec 操作が失敗し、phantomjs が内部命令ではないことがわかりました。

#問題解決策:#Baidu でさまざまな解決策を見つける:

オプション 1:

1. php.ini を変更する

php 設定ファイル php.ini を見つけます。php 自動インストール プログラムを使用して php 環境を設定する場合、このファイルは C:\WINDOWS\ ディレクトリにあります。

ファイル内で「disable_functions」を検索して見つけ、「exec」と「shell_exec」を削除して、ファイルを保存します。

## 2. cmd.exe ファイルのプロパティを変更します。php execが実行できない場合の対処法

C:\WINDOWS\system32 と入力し、cmd.exe ファイルを見つけて右クリックし、[プロパティ] を選択します。 , [セキュリティ] 設定にインターネット ゲスト アカウント (IUSR_****** アカウント) を追加し、[読み取りと実行] と [読み取り] 権限を付与します。

オプション 2:

これはアクセス許可の問題であるという人もいます。

解決策:

https://www.php.cn/php-weizijiaocheng-498092.html

オプション 3:

PHPの組み込み関数execやsystemはシステムコマンド(シェルコマンド)を呼び出すことができ、もちろんpassthruやescapeshellcmdなどの関数もあります。

多くの場合、PHP の exec、system、およびその他の関数を使用してシステム コマンドを呼び出すと、作業をより適切かつ迅速に完了できます。たとえば、2 日前に .rar ファイルをバッチ処理していたとき、exec は非常に役に立ちました。

今日は、よく使われる通話システムの機能を整理し、私の経験を皆さんと共有します。

注: これら 2 つの関数を使用する場合は、php.ini のセーフ モードをオフにする必要があります。オフにしないと、セキュリティ上の理由から、PHP ではシステム コマンドの呼び出しが許可されません。

まず、PHP マニュアルでこれら 2 つの関数の説明を見てみましょう:

exec --- 外部プログラムの実行

语法 : string exec ( string command [, array &output [, int &return_var]] )
ログイン後にコピー

説明:

exec ( ) 指定されたコマンドを実行しますが、何も出力されません。コマンドの結果から最後の行が返されるだけです。コマンドを実行してコマンドからすべての情報を取得する必要がある場合は、 passthru() を使用できます。この機能。

パラメータ配列が指定されている場合、指定された配列には、コマンドによって出力された各行が埋め込まれます。 注: 配列に既に要素が含まれている場合は、exec() がそれを配列に追加します。この関数で要素を追加したくない場合は、配列を exec() に渡す前に unset() を呼び出すことができます。

パラメータ array と return_var が指定されている場合、実行に戻されたステータス コマンドがこの変数に書き込まれます。

注: ユーザー入力からのデータをこの関数に渡すことを許可する場合は、ユーザーがシステムを騙して任意のコマンドを実行できないように、escapeshellcmd() を使用する必要があります。

注: この関数を使用してプログラムを開始し、バックグラウンドで実行中にそのプログラムを残しておきたい場合は、プログラムの出力がファイルまたは他の出力データ ストリームにリダイレクトされていることを確認する必要があります。そうしないと、プログラムの実行が終了するまで PHP がハングします。

system --- 外部プログラムを実行し、出力を表示します。

语法 : string system ( string command [, int &return_var] )
ログイン後にコピー

説明:

system() は、指定されたコマンド command を実行し、結果を出力します。パラメータ return_var が指定されている場合、実行されたコマンドのステータス コードがこの変数に書き込まれます。

注: ユーザー入力からのデータをこの関数に渡すことを許可する場合は、ユーザーがシステムを騙して任意のコマンドを実行できないように、escapeshellcmd() を使用する必要があります。

注: この関数を使用してプログラムを開始し、バックグラウンドで実行中にそのプログラムを残しておきたい場合は、プログラムの出力がファイルまたは他の出力データ ストリームにリダイレクトされていることを確認する必要があります。そうしないと、プログラムの実行が終了するまで PHP がハングします。

PHP がサーバー モジュールとして実行されている場合、system() は各行を出力した後に Web サーバーの出力バッファを自動的にクリアしようとします。

成功した場合はコマンドの最後の行を返し、失敗した場合は false を返します。

コマンドを実行し、コマンドからすべてのデータを取得する必要がある場合は、 passthru() 関数を使用できます。

这二个都是用来调用系统shell命令,

不同点:

exec可以把执行的结果全部返回到$output函数里(数组),$status是执行的状态 0为成功 1为失败

systerm不需要提供$output函数,他是直接把结果返回出来,同样$return_var是执行的状态码 0为成功 1为失败

exec示例:

以下为引用的内容:

<?php  
$a = exec("dir",$out,$status);  
print_r($a);  
print_r($out);  
print_r($status);  
?>
ログイン後にコピー

system示例:

以下为引用的内容:

<?php  
$a = system("dir",$out);  
print_r($a);  
print_r($out);  
?>
ログイン後にコピー

总结:

以上三个解决方案都是从百度搜索到的。

第一个解决方案我查看了配置,不存在这种情况,pass。

第二个解决方案由于需要改服务器权限,情况不允许,没试。

第三个解决方案参考了一下,修改了配置中的安全模式,safe_mode=On;然后问题迎刃而解。

OK,以上是我解决问题的过程。希望可以帮到广大像我一样的小白。

推荐学习:《PHP视频教程

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

See all articles