web-dev-qa-db-ja.com

トラフィックが少ないWordPress ApacheのWebサイトがサーバーをクラッシュさせ続ける

最近、低中程度のトラフィック(1000 UAU、忙しい日には5000ページビュー)のWebサイトを、共有ホスティングから、4つのクアッドコアプロセッサ(売られ過ぎの可能性が高い)と3GBのメモリで実行されるApacheとcPanelを備えたCentos 664ビットVPSに移動しました。 (Xen)。

私たちは最初から問題を抱えていました。サーバーがクラッシュし続けます。 PHPは、すべてのメモリを消費してサーバーをクラッシュさせるまで拡張し続けるようです。

一部の人々は、Apache/cPanel/PHP/mySQLを放棄し、nginX/Varnish/PHP-FPM/SQLiteを使用するべきだと提案しています。しかし、私は技術にあまり精通しておらず、ありふれた管理タスクを管理できるようにするためにcPanelのようなシンプルなGUIが必要なので、それは私には不可能です(システム管理者を雇ったり、完全に管理されたホスティングを取得する余裕はありません)。

私はWordPress用のApacheの最適化について議論しているいくつかの投稿に出くわしました。しかし、これらはすべて、2009年1月のこの4年前の記事のように、かなり古い記事につながります http://thethemefoundry.com/blog/optimize-Apache-wordpress/

記事はかなり詳細で役立つようですが、最初のステップでもつまずきます。私のhttpd.confには2つのloadmoduleコマンドしかありません

LoadModule fastinclude_module modules/mod_fastinclude.so  
LoadModule bwlimited_module modules/mod_bwlimited.so

だから私はすぐそこに完全なバストに行きます。さらに、私のhttpd.confは言います

Apache構成ファイルへの直接の変更は、その後の構成ファイルの再生成時に失われる可能性があります。変更を保持するには、/ usr/local/cpanel/bin/Apache_conf_distillerを実行して、すべての変更を構成システムにチェックインする必要があります。

WHMのモジュールを変更する場所を見つけるのに問題があります。

誰かがWordPress用にApacheを最適化する方法に関する最新のガイドラインを手伝ってくれませんか?どうもありがとう!

P.S. WordPressインストールにはWPスーパーキャッシュもインストールされています。
P.P.S。また、phpBB、OpenCart、MenaltoGalleryもインストールしています。

更新:
最終的にはPHP 5.3.3メモリリークです。まったく偶然に発見されました。当初はApacheが原因だと考えられていました。nginxへの移行やVarnishをインストールします。RAM全体を使用するのに時間がかかりましたが、必然的にそこにたどり着きました。最後に、NewRelicの助けを借りて、PHPアプリは時間の経過とともにメモリ使用量を増やしていました。 .processesが強制終了されることはありませんでした。PHPを5.4.16にアップグレードし、それ以来、すべてがひどい状態になっています。

3
OC2PS

私の経験から、Apache/PHPを再コンパイルしていないようです。私はこれを想定しています。その場合は、次のようにしてください。

WHMにログインし、Main >> Software >> EasyApache (Apache Update)に移動します

  1. 任意の構成を選択し、_Start customization based on profile_をクリックします
  2. Apacheの最新バージョンを選択します
  3. ベータ版または非推奨ではないPHPの最新バージョンを選択してください(サポート終了は問題なく安定しています)
  4. ステップ5で、下にスクロールして_Exhaustive Options List_を選択し、メモを取ります
    1. _mod_fcgid_- PHPとsuPHPのインストールをスピードアップするのに役立ちます。メタスレッドに残しておくことができるので、どちらが優れているかについては詳しく説明しません。グーグル。
    2. _Mod SuPHP_- PHPスクリプトをユーザーではなくユーザーとして実行するように強制することにより、PHP)を保護するのに役立ちますnobody
    3. DISABLE frontpage-役に立たず、非推奨で、数か月前までは、cPanelのデフォルトとして選択されていました。
    4. IonCubeを使用するスクリプトを使用する場合は、便宜上、_IonCube Loader for PHP_を選択してください。
    5. _Mod Security_を選択してセキュリティを確保します。これにより、ボットやその他の厄介なことが発生するのをhelp防止しますwordpress install 。Google _Mod Security_について詳しく知りたい場合は、.
    6. _Zend Optimizer for PHP_を選択すると、PHPの一部が最適化され、Zendフレームワークで便利になります。
    7. PHPのオペコードをメモリに保存するため、_Xcache for PHP_を選択します。これにより、ページのパフォーマンスが向上します。
    8. インストールするPHPモジュールのいずれかを選択します。本番サーバーには次のものがあります。詳細を知りたい場合は、どのモジュールがどのモジュールを実行するかをグーグルで検索してください(またはこれを参照ポイントとして使用できます。ほとんどの場合、モジュールを追加してもパフォーマンスは低下しませんが、Apache/PHPを再コンパイルせずにサーバーにアプリケーションをさらにインストールする場合にのみ便利です。
      • Bcmath, Bz2, CGI, Calendar, Curl, CurlSSL, Curlwrappers, Dbase, Exif, FTP, Fastcgi, Force CGI Redirect, Gd, Gettext, Iconv, Imap, MM, Magic Quotes, MailHeaders, Mbregex, Mbstring, Mcrypt, Mhash, Mime Magic, Mysql , Mysql of the system , MySQL "Improved" extension. , Openssl, PDO, PDO MySQL, POSIX, Path Info Check, Pear, Pspell, Sockets, TTF (FreeType), Tidy, Wddx, XSL, XmlRPC, Zend Multibyte, Zip, Zlib
    9. 構成を保存して、Apacheをビルドします。
    10. 終了したら、必ず---これが重要な部分です --_Main >> Service Configuration >> Configure PHP and SuExec_の下で_PHP 5 Handler_を_suPHP._に選択します

うまくいけば、これはあなたのパフォーマンスを向上させるでしょう。より具体的な情報がなければ、これが私たちにできる最善のことです。これが引き続き発生する場合、または詳細情報を提供する場合は、専門家を雇うことをお勧めします。

3
Adam