レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

php および APC の設定を行う

2010年7月17日 2015年5月17日
php apc

前回までの
あえてphp5.2系をインストールする(CentOS 5,CentOS 6,Scientific Linux 6)
php 5.2系で APC (Alternative PHP Cache) をインストールする
などの記事で、php と APC のインストールについて書きました。ここでは、その php および APC の初期設定について簡単に解説してみます。

ここで記載する php および APC の初期設定の内容は、php のバージョンにかかわらず同じです。

phpの初期設定ファイルを編集する

phpの初期設定は、初期設定ファイル(php.ini)を編集して行います。
以下の箇所を、それぞれ編集します。

RedHat系(CentOS,Scientific Linux)では、php.iniファイルは、/etc/php.ini にあります。
Debian系(Debian,Ubuntu)では、php.iniファイルが、それぞれの用途によって別れて存在します。
  • CGI用 : /etc/php5/cgi/php.ini
  • CLI用 : /etc/php5/cli/php.ini
  • FPM用 : /etc/php5/fpm/php.ini
それぞれのファイルを編集する必要があります。

[ php.ini ]

[PHP]
...
;# phpのバージョンを表示しないように変更します。
;#expose_php = On
expose_php = Off
...
;# phpの実行時間を3000秒までにしています。
;# 必要に応じて設定しましょう。
;#max_execution_time = 30
max_execution_time = 3000
...
;# phpの最大メモリ量を128Mまでにしています。
;# 必要に応じて設定しましょう。
;#memory_limit = 16M
memory_limit = 128M
...
;# phpのアップロードの最大容量を20Mまでにしています。
;# 必要に応じて設定しましょう。
;#upload_max_filesize = 2M
upload_max_filesize = 20M
...
;# phpで使用するタイムゾーンを指定します。
;date.timezone =
date.timezone = Asia/Tokyo
...

[mbstring]
;# phpで取り扱うマルチバイト文字列は、どこの言語にするかを設定します。
;# ここでは日本を指定しています。
; language for internal character representation.
mbstring.language = Japanese
...
;# phpで取り扱うマルチバイト文字列のエンコードの文字コードを設定します。
;# ここではUTF8を指定しています。
;mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8
...
;# phpで取り扱うマルチバイト文字列をhttpから入力された文字コードをエンコードする文字コードを設定します。
;# ここでは自動を指定しています。
; http input encoding.
mbstring.http_input = auto
...
;# phpで取り扱うマルチバイト文字列をhttpへ出力される際のエンコードする文字コードを設定します。
;# ここでは変換しないを指定しています。
;mbstring.http_output = SJIS
mbstring.http_output = pass
...
;# phpで取り扱うマルチバイト文字列をhttpから入力された文字コードをエンコードするかを設定します。
;# ここでは変換するを指定しています。
;# ここをONにしておくと、mbstring.internal_encodingで指定した文字コードへ変換します。
;mbstring.encoding_translation = Off
mbstring.encoding_translation = On
...
;# phpで取り扱うマルチバイト文字列をどの文字コードから判断していくか順番を指定します。
;# ここでは自動を指定しています。
; auto means
mbstring.detect_order = auto
...
;# phpで取り扱うマルチバイト文字列の無効な文字を代替する文字を指定します。
;# ここでは変換なしを指定しています。
;# 下手に変換すると混乱しますから、ここでは、変換なしが無難だと思います。
; one from another
mbstring.substitute_character = none;
...

上記内容を編集して保存します。

memory_limitは、メモリの上限値であって、メモリ確保値ではありません。そのため、ここの値が大きくても必要以上にメモリが常に確保されるわけではありません。

ここでの設定は、あくまで上限値を設けることで、プログラムの暴走によるリソース喰いをなくすための設定になります。
また、仮にこの値を上回ってメモリを必要とするphpのスクリプトがあった場合、そのスクリプトは直ちに強制終了されます。

php-APCの初期設定ファイルを編集する

phpのエクステンションの初期設定は、各エクステンション毎に初期設定ファイル(保存ディレクトリ : /etc/php.d/ (RedHat系) , /etc/php5/conf.d/ (Debian系) )を各エクステンション名前.iniのファイル名で用意してあげます。
ここでは、APCなので apc.ini というファイルを用意します。

RedHat系(CentOS,Scientific Linux)では、apc.ini ファイル は、/etc/php.d/apc.ini にあります。
Debian系(Debian,Ubuntu)では、apc.ini ファイル は、/etc/php5/conf.d/apc.ini にあります。

[ apc.ini ]

;# apc extension module を有効にします。
extension = apc.so
apc.enabled=1

;# apc extension module のオプションを設定します。

;## コンパイラキャッシュのために割り当てる共有メモリセグメントの数。
apc.shm_segments=1

;## 個々の共有メモリセグメントの大きさを MB 単位で指定します。
;#apc.shm_size=32
apc.shm_size=128M

;## 最適化レベル。ゼロは最適化を無効にし、 値を大きくするほど最適化のレベルが高くなります。
apc.optimization=0

;## キャッシュされているエントリが、 他のエントリに割り当てられるまでスロットに残っていることの可能な秒数。
;#apc.ttl=7200
apc.ttl=86400
;#apc.user_ttl=7200
apc.user_ttl=86400

;## Web サーバで読み込まれるソースファイルの総数についての 「ヒント」。よくわからない場合はゼロを指定するか、 単に無視してください。
apc.num_files_hint=1024

;## --enable-mmap を用いて MMAP サポートつきでコンパイルされている場合、ここで mktemp 形式のファイルマスクを指定します。
apc.mmap_file_mask=/tmp/apc.XXXXXX

;## たいていは、テストやデバッグ用に使用します。これを設定すると CLI バージョンの PHP で APC を有効にします。
apc.enable_cli=1

;## デフォルトで On です。しかし、これを Off にして + で始まる apc.filters  とともに使用することで、 フィルタに一致したファイルのみをキャッシュすることが可能です。
apc.cache_by_default=1
phpを実行したときに以下のような警告メッセージが表示されることがあります。
PHP Warning:  PHP Startup: apc.shm_size now uses M/G suffixes, please update your ini files in Unknown on line 0
この場合、
apc.shm_size=128
に単位を設定してあげるとOK。
apc.shm_size=128M
のように。

ここで指定するメモリ量は、apacheのプロセス毎に確保されます。そのため、サーバーの許容メモリを超えてしまうとスワップが発生し、かえってレスポンスが悪くなることがありますので、十分、計算の上、設定しましょう。
※通常、利用可能なハードメモリが2GB以上あれば、環境やアクセス数にもよりますが、128Mでも良いかもしれません。
  • 1GB以上 : 64M
  • 500MB以上 : 32M
概ねこれぐらいが目安かなぁという気はします。あくまで参考程度にお願いします。設定の後、必ず、ログ情報、メモリ消費量などを確認し、調整を行うようにしましょう。

上記内容は、あくまで参考までに。各サーバーの環境によって設定する内容も異なりますから、確認の上、編集しましょう。
編集を終えたら保存します。

とりあえず、apcが動作しているか確認しておきましょう。
確認は、簡単です。phpinfo(); で出力したら apc の項目が確認できるはずです。

$ echo "<?php echo phpinfo(); ?>" > info.php

上記のinfo.phpをウェブサイトから確認できるディレクトリへコピーしてアクセスしてみてください。
以下のようにAPCの項目が出力されればOKです。

APCセッティングイメージ

また、APCのキャッシュ状態を確認することもできます。

$ wget http://svn.php.net/viewvc/pecl/apc/tags/APC_3_1_9/apc.php?view=co -O apc.php

上記でダウンロードしたapc.phpをウェブサイトから確認できるディレクトリへコピーしてアクセスしてみてください。
以下のように現在のキャッシュ情報が出力されるはずです。

APCセッティングイメージ

いずれの設定においても、メモリ関連のリソース情報設定に関しては、格安の共有レンタルサーバーでは、ほとんど意味の無い設定かもしれません。
VPSや専用サーバー、自宅サーバーでは、メモリの管理は大事です。
特に限られたリソースで動作させるには、ここのメモリの設定を誤ると、メモリ不足などに陥り、遅延発生の要因にもなりかねません。十分注意して設定、チューニングしましょう。
ここでの設定によっては、かなりのパフォーマンスを引き出すこともできるようになります。

また、ここに記述のある設定例以外にも、いろいろとパラメータはありますので、試されると良いと思います。
それらの設定によっては、高速になることもありますし、逆に低速になることもあります。あくまでVPSなどリソースを占有できる場合ですが、いろいろと試してみると良いと思います。

こういった設定を自分の思うとおりに設定できるのもVPSの醍醐味ですね。
VPSなら、格安・実績のさくらのVPSがおすすめでしょう。お試し期間14日、まずは、お試し期間で試してみるのも良いと思います。さくらのVPSは、さくらのVPS ページさくらのVPS ページからどうぞ。

ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

FreeBSDでphpをインストール

さて、今回は、phpのインストール手順です。 これができれば、mysqlもインストールできていますから、スクリプトからデータベースを操作できる ...

php 5.2系で APC (Alternative PHP Cache) をインストールする

前回、あえてphp5.2系をインストールする(CentOS 5,CentOS 6,Scientific Linux 6) で php5.2系をイ ...

phpでssh2を使えるようにpecl ssh2をインストールする

一般的に、phpでssh2を使いたい場合、peclライブラリのssh2をインストールする必要があります。 このpeclライブラリのssh2をイ ...

Windowsで(L)AMP(Apache,MySQL,PHP)インストールからWordpressを動かすまで

CentOS,ScientificLinuxでLAMP(Apache+MySQL+PHP)インストールからWordPressを動かすまで(Apa ...

apache の FastCGI(mod_fastcgi) + PHP-FPM で phpを動かしてみる(CentOS,ScientificLinux編)

今回は、apache + FastCGI(mod_fastcgi) + PHP-FPM でphpを動かしてみます。 以前の以下の記事が基本 ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.3002 [s]