ホームページ php教程 php手册 PHP.INI 設定ファイルツアー(2)

PHP.INI 設定ファイルツアー(2)

Jun 21, 2016 am 09:14 AM
path php post windows

この記事の最初の部分では、php.ini ファイルの構造を説明し、PHP 検索パス、エラー処理、およびパーサー関連のオプションを変更する方法を説明しました。 2 番目の部分では、PHP 拡張オプションを有効にする方法、PHP スクリプトのリソース制限を設定する方法、PHP スクリプトを使用して構成変数を動的に変更する方法など、構成ファイルについて詳しく説明します。

拡張オプションを有効にする


PHP にはさまざまな拡張オプションが利用可能です。 UNIX システムでは、コンパイル時に拡張オプションを作成する必要があります。Windows では、バイナリ DLL ファイル自体が PHP ディストリビューションに含まれます。変数 extension_dir には、PHP が関連する拡張オプションを検索するディレクトリの名前が含まれています。

extension_dir = "C:Program FilesInternet ToolsApachebinphp4extensions"

Windows の PHP には 20 の異なる拡張オプションが含まれており、それらはすべて php.ini ファイルにリストされています (コメント経由)。特定の拡張オプションをアクティブにするには、対応する行の先頭からセミコロンを削除し、サーバーを再起動するだけです。拡張オプションを無効にする場合 (たとえば、システムのパフォーマンスを向上させる必要がある場合)、行の先頭にセミコロンを再度追加します。

拡張子オプションが php.ini ファイルにリストされていない場合は、変数拡張子を使用して、対応する DLL ファイル名をこの変数に渡すことができます。

extension=php_domxml.dll

extension=php_dbase.dll

拡張機能固有の変数を設定する
拡張機能固有の変数は、構成ファイルの別の領域に保存されます。たとえば、MySQL 拡張機能に関連するすべての変数は、php.ini の [MySQL] 領域に保存する必要があります。

PHPのmail()関数を使用する必要がある場合は、次の3つの変数を設定する必要があります。 PHP mail() 関数を通じて電子メール メッセージを送信する場合は、SMTP と変数 sendmail_from (Windows システム) または変数 sendmail_path (UNIX システム) を使用する必要があります。 Windows の場合、これらの変数は使用する SMTP サーバーと電子メール メッセージに表示される「From:」アドレスを設定します。UNIX の場合、変数 sendmail_path はメール転送用の MTA (メール転送エージェント) のパスを設定します。

SMTP = myserver.localnet.com

sendmail_from = me@localhost.com

sendmail_path = /usr/sbin/sendmail

変数 java.class.path、java.home、java.library、および java.library.pathすべては、Java クラスとライブラリを検索するためのパスを設定するために使用されます。これらの値は Java 拡張機能によって使用されるため、PHP を Java プログラムと正しく統合したい場合は、これらの変数が正しく設定されていることを確認する必要があります。

java.class.path = .php_java.jar

java.home = c:jdk

java.library = c:jdkjrebinhotspotjvm.dll

java.library.path= .

変数 session.save_path は、 save セッション情報に必要な一時ディレクトリ。通常、このディレクトリのデフォルトは /tmp ですが、このデフォルトのディレクトリは Windows システムには存在しないため、正しい Windows 一時ディレクトリにリセットする必要があります。そうしないと、セッション ハンドラーが session_start() 関数を呼び出します。迷惑なエラー メッセージがポップアップ表示されます。同時に、セッション Cookie の有効期間は変数 session.cookie_lifetime を通じて制御できます。

session.save_path = c:windowstemp

session.cookie_lifetime = 1800
セキュリティ設定
php.ini には、PHP インストールのセキュリティ問題に関連する変数が多数あります。最も興味深いのは、safe_mode 変数です。この変数は、ユーザーによる PHP の使用を制限するため、ISP および共有ホスティング サービスに設定することが推奨されます。



safe_mode = Off

セーフ モードがオンの場合、変数safe_mode_include_dirを介して関連ファイルを検索するディレクトリを指定できます。バイナリ プログラムを特定のディレクトリに配置し、safe_mode_include_dir 変数を使用してそのディレクトリを PHP に伝えることで、PHP は exec() コマンドを使用して PHP スクリプトを実行できるプログラムの種類を制限します。 exec() コマンドを使用してアクセスできるのは、このディレクトリ内のバイナリ ファイルのみです。

safe_mode_include_dir = /usr/local/lib/php/safe-include

safe_mode_exec_dir = /usr/local/lib/php/safe-bin

変数 open_basedir を使用してファイル操作を制限することもできます。この変数は、ファイル操作のルートとしてディレクトリ名を設定します。この変数を設定すると、このディレクトリ ツリーの外に保存されたファイルには PHP からアクセスできなくなります。これは、ユーザーを共有システム上のホーム ディレクトリまたは Web ディレクトリに制限する優れた方法です。

open_basedir = /home/web/

変数 max_execution_time は、スクリプトを強制終了する前に PHP がスクリプトの完了を待機する時間を設定します。この時間は秒単位で計算されます。この変数は、スクリプトが無限ループに入った場合に役立ちます。ただし、完了までに時間がかかる正当なアクティビティ (大きなファイルのアップロードなど) がある場合、この機能により操作が失敗する可能性もあります。このような場合、重要なプロセスの実行中に PHP がスクリプトをシャットダウンしないように、この変数の値を増やすことを検討する必要があります。

max_execution_time = 90

アップロードについては先ほど説明しましたが、次に、uploads 変数と form 変数の設定方法を見てみましょう。
設定ファイルのアップロードとフォーム変数
この記事の前半で説明したセキュリティ構成によって提供されるセキュリティ強度が要件を満たさない場合は、ファイルのアップロードをオフにするか、アップロードごとに最大ファイル サイズ制限を設定することで、セキュリティ強度をさらに向上させることができます。上記の 2 つの関数は、それぞれ変数 file_uploads および Upload_max_filesize を通じて実装されます。一般に、システムにファイルを受信するように設計されたアプリケーション (Web FTP サービスに基づくフォト アルバムなど) がない限り、ファイル サイズの制限を比較的小さい値に設定する必要があります。



file_uploads = On

upload_max_filesize = 2M

ファイルのアップロードは気にしないが、PHP アプリケーションで多くのフォームを使用する場合は、非常に興味深い 2 つの変数を次に示します。 1 つ目は変数 register_globals で、PHP 開発者の長年の問題点を解決します。 PHP 3.x では、この変数のデフォルトは On です。こうすることで、フォームの送信時にフォーム変数が自動的に PHP 変数に変換されます。

PHP 4.x では、セキュリティ上の理由から、この変数はデフォルトでオフに設定されています。その結果、フォーム変数には特定の $_GET および $_POST を介してのみアクセスされます。また、これにより、PHP 3.x で書かれた多くのスクリプトに実行時の問題が発生し、開発者はスクリプトを書き直して再テストする必要がありました。たとえば、フォーム フィールド に入力された値は、PHP 3.x スクリプトでは $email として認識されますが、PHP では $email として解釈されます。 4.x スクリプト。$_POST['email'] または $_GET['email']。

通常、この変数はオフに設定でき、フォームを介したスクリプト攻撃に対するより安全な保護を提供できます。以前の PHP 3.x スクリプトとの互換性を考慮する必要がある場合は、オンに設定する必要があります。

register_globals = Off

フォーム送信に関連する変数は post_max_size で、PHP が POST メソッドを使用したフォーム送信で受信できるデータの最大量を制御します。デフォルトの 8 MB をより大きなサイズに変更する必要があるとは考えられません。代わりに、より現実的な値に適切に減らす必要があります。ただし、PHP ファイルのアップロード機能を使用する場合は、この値を Upload_max_filesize よりも大きくする必要があります。

post_max_size = 8M

PHP 5 に max_input_time 変数を追加しました。この変数は、POST、GET、および PUT メソッドを介してデータを受信する時間を秒単位で制限できます。アプリケーションが低速リンクで実行されている場合は、データの受信に必要な追加時間に対応するために、この値を増やす必要がある場合があります。

max_input_time = 90
パフォーマンス チューニング
いくつかの変数値を調整することで、PHP パーサーのパフォーマンスを向上させることもできます。スクリプトの実行によって利用可能なシステム メモリが大量に消費されるのを避けるために、PHP ではメモリ使用量の制限を定義できます。単一のスクリプトが使用できる最大メモリ容量を指定するには、memory_limit 変数を使用します:



memory_limit = 8M

変数memory_limitの値は、post_max_sizeの値より適切に大きくする必要があります。

パフォーマンスを向上させるために使用できるもう 1 つの方法は、変数 $argc と $argv を無効にすることです。これら 2 つの値は、コマンド ラインでアプリケーションに渡されるパラメーターの数と実際のパラメーター値を保存するために使用されます。 。

register_argc_argv = false

同様に、$HTTP_GET_VARS と $HTTP_POST_VARS を無効にすることもできます。$_GET と $_POST が使用されている現在、最初の 2 つのメソッドを使用する可能性は低いからです。この機能を無効にするとパフォーマンスが向上する可能性がありますが、これは PHP 5 の変数 register_long_arrays を介してのみ可能です。

register_long_arrays = false

function ini_set()

最後に、ini_set() 関数に注意する必要があります。 PHP は、php.ini 構成ファイル内のすべての設定情報を読み取るときに、ini_set() 関数を使用してスクリプトごとの原則に従ってこれらの設定を変更する機能も提供します。この関数は、調整する必要がある構成変数の名前と、変数の新しい値の 2 つのパラメーターを受け取ります。たとえば、スクリプトが表示されるときの最大実行時間を増やすには:


ini_set('max_execution_time', 600)

// more code

?>

このような設定は、スクリプトが設定されています。スクリプトの実行が完了すると、変数は自動的に元の値に復元されます。

PHP アプリケーションが共有サーバー上で実行されている場合、メインの php.ini 設定ファイルにアクセスできる可能性はほとんどありません。このとき、関数 ini_set() を使用すると、特別な要件に応じて PHP 構成を動的に変更できるため、非常に便利です。




このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Windows 7にMySQLをインストールできますか? Windows 7にMySQLをインストールできますか? Apr 08, 2025 pm 03:21 PM

はい、MySQLはWindows 7にインストールできます。MicrosoftはWindows 7のサポートを停止しましたが、MySQLは引き続き互換性があります。ただし、インストールプロセス中に次のポイントに注意する必要があります。WindowsのMySQLインストーラーをダウンロードしてください。 MySQL(コミュニティまたはエンタープライズ)の適切なバージョンを選択します。インストールプロセス中に適切なインストールディレクトリと文字セットを選択します。ルートユーザーパスワードを設定し、適切に保ちます。テストのためにデータベースに接続します。 Windows 7の互換性とセキュリティの問題に注意してください。サポートされているオペレーティングシステムにアップグレードすることをお勧めします。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 Apr 07, 2025 am 12:05 AM

PHPの厳格なタイプは、declare(strict_types = 1)を追加することで有効になります。ファイルの上部に。 1)関数パラメーターのタイプチェックと戻り値を強制して、暗黙の型変換を防ぎます。 2)厳格なタイプを使用すると、コードの信頼性と予測可能性を改善し、バグを減らし、保守性と読みやすさを向上させることができます。

特定のシステムバージョンでMySQLが報告したエラーのソリューション 特定のシステムバージョンでMySQLが報告したエラーのソリューション Apr 08, 2025 am 11:54 AM

MySQLのインストールエラーのソリューションは次のとおりです。1。システム環境を慎重に確認して、MySQL依存関係ライブラリの要件が満たされていることを確認します。異なるオペレーティングシステムとバージョンの要件は異なります。 2.エラーメッセージを慎重に読み取り、依存関係のインストールやSUDOコマンドの使用など、プロンプト(ライブラリファイルの欠落やアクセス許可など)に従って対応する測定値を取得します。 3.必要に応じて、ソースコードをインストールし、コンパイルログを慎重に確認してみてください。これには、一定量のLinuxの知識と経験が必要です。最終的に問題を解決する鍵は、システム環境とエラー情報を慎重に確認し、公式の文書を参照することです。

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

MySQLはダウンロード後にインストールできません MySQLはダウンロード後にインストールできません Apr 08, 2025 am 11:24 AM

MySQLのインストール障害の主な理由は次のとおりです。1。許可の問題、管理者として実行するか、SUDOコマンドを使用する必要があります。 2。依存関係が欠落しており、関連する開発パッケージをインストールする必要があります。 3.ポート競合では、ポート3306を占めるプログラムを閉じるか、構成ファイルを変更する必要があります。 4.インストールパッケージが破損しているため、整合性をダウンロードして検証する必要があります。 5.環境変数は誤って構成されており、環境変数はオペレーティングシステムに従って正しく構成する必要があります。これらの問題を解決し、各ステップを慎重に確認して、MySQLを正常にインストールします。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

See all articles