ホームページ バックエンド開発 PHPチュートリアル PHP エンジン php.ini および fastcti の最適化

PHP エンジン php.ini および fastcti の最適化

Jun 20, 2016 pm 12:34 PM

1.1 php エンジンのキャッシュ最適化アクセラレーション


1) eaccelerator

2) Zend

3) xcache


1.2 キャッシュ高速化のためのファイル ディレクトリとして tmpfs を使用する

[root@LNMP ~]# mount - t tmpfs /dev/shm -o size=256m

[root@LNMP ~]# mount -t tmpfs /dev/shm/ /tmp/eaccelerator/


ヒント:


1. 画像サムネイル処理をアップロードするためのディレクトリ

2. tmp/eaccelerator などの他のアクセラレータ一時ディレクトリ


1.3 php.iniパラメータチューニング


Apacheでもnginxでもphp.iniが適しています、php-fpm.confはnginx+fcgiの構成に適しています。まず、製品環境の php.ini (php.ini-production) を選択します


/home/oldboy/tools/php-5.3.27/php.ini-development

/home/oldboy/tools/php-5.3.27/php.ini-production


1.3.1 PHP のセーフ モードをオンにする

PHP のセーフ モードは、PHP に組み込まれた非常に重要なセキュリティ メカニズムであり、system() などの PHP の一部の関数の実行を制御し、多くのファイル操作関数のアクセス許可も制御できます。

このパラメータは次のように設定されます:


safe_mode = Off


;セーフモード。

; PHP を開くと、現在のスクリプトの所有者が操作対象のファイルの所有者と同じかどうかを確認します (


1.3.3 危険な機能をオフにする


セーフモードがオンになっている場合、機能の禁止は必要ありませんが、考慮する必要がありますなどの安全上の理由から、system() や phpinfo() などのコマンドを実行できる PHP 関数や、PHP 情報を表示できるその他の関数を実行したくない場合は、次のように禁止できます。 🎜>


disable_functions = system,passthru,exec,shell_exec,popen,phpinfo


ファイルを禁止したい場合は、ディレクトリ操作、オフにすることができます 多くのファイル操作


disable_functions = chdir,chroot,dir,getcwd,opendir,readdir,scandir,fopen,unlink,delete,copy, mkdir,rmdir,rename,file, file_get_contents,fputs,fwrite,chgrp,chmod,chown

上記は、一般的に使用されるファイル処理関数の一部を示しているだけです。上記の実行コマンド関数とこの関数を組み合わせて実行できます。ほとんどの phpshell に抵抗します。このパラメータのデフォルトは disable_functions =



1.3.4 での PHP バージョン情報の漏洩をオフにします。 http ヘッダー


ハッカーがサーバーの PHP バージョン情報を取得するのを防ぐために、http ヘッダーの情報をオフにすることができます。このパラメータのデフォルト設定は次のとおりです:

expose_php = On

; php がサーバーにインストールされていることを公開するかどうか (http ヘッダーにそのタグを追加します)

; セキュリティへの直接的な脅威はありませんが、サーバーに php がインストールされていることをクライアントに知らせることができます。

に設定することをお勧めします。

expose_php = Off


ハッカーが Telnet ucode.blog.51cto.com 80 を実行すると、php 情報を見ることができなくなります


1.3.6 SQL インジェクションを防ぐために magic_quotes_gpc を有効にする

SQL インジェクションは非常に危険な問題です。最悪の場合、Web サイトのバックエンドが侵入され、最悪の場合、サーバー全体が崩壊します。


だから気をつけてください。 php.ini には次の設定があります:

magic_quotes_gpc = Off


これは、デフォルトではオフです。その後、ユーザーが送信した SQL へのクエリは、'to' の変換など、自動的に変換されます。これは SQL インジェクションの防止に重要な役割を果たすため、次のように設定することをお勧めします:


magic_quotes_gpc = Off


1.3.7 エラーメッセージ制御

通常、PHP はデータベースに接続されていない場合、またはその他の状況下でエラーを表示します。一般的なエラー メッセージには、PHP スクリプトまたはクエリの SQL ステートメントの現在のパス情報が含まれます。この種の情報はハッカーに提供されると安全ではないため、サーバーではエラー プロンプトを無効にすることが一般的に推奨されます:


display_errors = Off


1.3.8 エラーログ

サーバーが実行されている理由:


log_errors = On

エラー ログを保存するディレクトリも設定することをお勧めします。 Apache ログと一緒に記録します:

error_log = /app/ logs/php_error.log


注:ファイルは、Apache ユーザーとグループの両方に書き込み権限を許可する必要があります


1.3.9 一部のリソース制限パラメーターの最適化

1.3.9.1 各スクリプトの最大実行時間を設定します

大きなファイルをアップロードできない場合、またはバックグラウンド バックアップ データが頻繁にタイムアウトになる場合は、次の設定を調整する必要があります:


max_exxcution_time = 30


; 各スクリプトの最大許容実行時間 (秒)、0 は制限なしを意味します

; このパラメータは、劣悪なスクリプトがサーバー リソースを無限に占有することを防ぎます。この指示は、スクリプト自体の実行時間にのみ影響します。system()/sleep() 関数の使用、データベース クエリ、ファイルのアップロードなど、スクリプトの実行以外に費やされるその他の時間には影響しません。などは影響を受けません。

;セーフ モードでは、ini_set() を使用して実行時にこの設定を変更することはできません

各スクリプトで使用される 1.3.9.2 最大メモリ

memory_limit = 128M


;到達するメモリバイト数 (単位として K と M を使用できます)


; これを使用できるようにするには、劣ったスクリプトがサーバー上のすべてのメモリを無限に占有するのを防ぎます。ディレクティブは、「--enable-memory-limit」構成オプションを使用してコンパイルする必要があります

; メモリ制限をキャンセルしたい場合は、設定後に -1

に設定する必要があります。このディレクティブを使用すると、memory_get_usage() 関数が使用可能になります

1.3.9.3 各スクリプトが入力データを待機する最大時間


max_input_time = -1


; 各スクリプトが入力データ (POST、GET、アップロード) を解析するために許可される最大時間 (秒)

;-1 は制限なしを意味します

は次のように設定されます:

max_input_time = 60;


1.3.9.4 アップロードされるファイルの最大許容サイズ


アップロードされるファイルが大きい場合は、次のパラメータを調整する必要があります:


upload_max_filesize = 2M;


; 通常、画像フォーラムはアップロードできるファイルの最大サイズを定義できます。この値をより大きな値に変更する必要があります。デフォルトは 2M


さらに、1 回のリクエストでアップロードできるファイル数

max_file_uploads = 20

1.3.10 一部のセキュリティパラメータの最適化

1.リモート アドレスを開くことは禁止されています。最近の PHP インクルードに脆弱性があることを覚えていますか? プログラムに変数が含まれている場合、侵入者はこの制御サーバーを使用してリモート PHP プログラムをローカルで実行できます。たとえば、phpshell なので、これを閉じる必要があります


allow_url_fopen = Off


2. 設定: cgi。 fix_pathinfo = 0

;Nginx ファイル タイプ エラー解析の脆弱性を防ぐ


1.3.11 PHP セッション情報のストレージ タイプと場所を調整する


session.save_handler = files

; セッションに関連付けられたデータを保存および取得するハンドラーの名前。デフォルトは files ("files")


;カスタムプロセッサ (データベースベースのプロセッサなど) を使用したい場合は、「user」

;「memcache」に設定すると、memcache をセッションとして使用できますプロセッサ (「--enable-memcache-session」コンパイル オプションを指定する必要があります)。

; session.save_path = "/tmp"

; ファイル プロセッサの場合、この値はセッション データ ファイルを作成するパスです。

Web クラスターセッションの共有ストレージ設定:

php.ini のデフォルトのセッションタイプと構成パス:


#session.save_handler = files

#session.save_path = "/tmp"


変更


session.save_handler = memcache

session.save_path = "tcp://10.0.0.18:11211"


ヒント:

1) 10.0.0.18:11211 は memcache データベースによってキャッシュされた IP とポートです


2) 上記は LAMP に適していますおよび LNMP 環境

3) ハッシュ

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

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

See all articles