msyql5.5x+php5.x+nginx0.8 インストール
元のリンク: http://blog.s135.com/nginx_php_v6/
?
はじめに: この記事は、「Nginx + PHP (FastCGI)」Web サーバーの構築について書いた 6 回目の記事です。このシリーズの記事は、Nginx + PHP のインストール、構成、使用方法を詳細に紹介する中国で最も早い資料の 1 つとして、中国での Nginx の開発を促進する上で積極的な役割を果たしています。この記事は小さいバージョンで常に更新される可能性があります。元のリンク「」を覚えておいてください。
http://blog.s135.com/nginx_php_v6/
" から最新のコンテンツを入手してください。 6 番目の記事では、主に Nginx 0.8.x の新しいスムーズな再起動方法を紹介し、PHP を 5.2.14 にアップグレードし、PEAR の問題を修正します。 さらに、MySQL 5.1.x が 5.5 にアップグレードされます。 .xシリーズでは、設定ファイルが大幅に変更されました。
リンク: "
初版、2007 年 9 月
》、《
第 2 版、2007 年 12 月
》、《
第 3 版、2008 年 6 月
》、《
第 4 版、2008 年 8 月
》、《
第 5 版、2009 年 5 月
》
Nginx
?
(「エンジン x」) は、高性能 HTTP サーバー、リバース プロキシ サーバー、および IMAP/POP3/SMTP プロキシ サーバーです。 Nginx は、ロシアで 2 番目にアクセス数の多い Rambler.ru サイト用に Igor Sysoev によって開発され、3 年以上運営されています。 Igor は、BSD のようなライセンスに基づいてソース コードをリリースします。
Nginx はパフォーマンスと安定性の点で Apache を上回り、 を含め、Web サーバーとして Nginx を使用する国内 Web サイトが増えています。
新浪ブログ
、
新浪ポッドキャスト
、
NetEaseニュース
、
テンセントコム
、
捜狐ブログ
ポータル チャネルを待ちます。
6つの部屋
、
56.com
およびその他のビデオ共有 Web サイト、
公式フォーラム
、
水夢コミュニティ
およびその他の有名なフォーラム、
シャンダオンライン
、
金山Xiaoyao.com
およびその他のオンライン ゲーム Web サイト、
豆板
、
れんれん
、
ユプー写真集
、
キングソフト ラブワード
、
サンダーオンライン
およびその他の新興 Web 2.0 Web サイト。
Nginx の公式中国語 wiki:
http://wiki.nginx.org/NginxChs
同時接続が多い場合、Nginx は Apache サーバーの良い代替手段となります。 Nginx は、レイヤー 7 負荷分散サーバーとしても使用できます。私のテスト結果によると、
Nginx 0.8.46 + PHP 5.2.14 (FastCGI) は 30,000 を超える同時接続に耐えることができます。これは、同じ環境における Apache の 10 倍に相当します
。
私の経験によると、4GB メモリ サーバー + Apache (プリフォーク モード) は、通常、3000 個の同時接続しか処理できません。これは、これらが 3GB 以上のメモリを占有し、システム用に 1GB を予約する必要があるためです。 。 メモリ。以前、2 台の Apache サーバーを使用していましたが、構成ファイルに設定された MaxClients が 4000 だったため、Apache の同時接続数が 3800 に達すると、サーバーのメモリとスワップ領域がいっぱいになり、クラッシュしてしまいました。
そして、この Nginx 0.8.46 + PHP 5.2.14 (FastCGI) サーバーには 30,000 の同時接続があり、開始された 10 個の Nginx プロセスは 150M のメモリ (15M*10=150M) を消費します。 CGI プロセスは 1280M のメモリ (20M*64=1280M) を消費し、これにシステム自体が消費するメモリを加えれば、合計消費量は 2GB 未満になります。サーバーのメモリが小さい場合は、25 個の php-cgi プロセスしか開くことができないため、php-cgi によって消費される合計メモリはわずか 500M になります。
同時接続が 30,000 未満でも、Nginx 0.8.46 + PHP 5.2.14 (FastCGI) サーバーにアクセスする PHP プログラムは依然として非常に高速です。以下の図は、Nginx のステータス監視ページを示しています。表示されているアクティブな接続の数は 28457 です (Nginx の監視ページの構成は、この記事の次に示す Nginx 構成ファイルに記載されています):
私の運用環境では、2 つの Nginx + PHP5 (FastCGI) サーバーが複数の一般的に複雑な純粋な PHP 動的プログラムを実行し、1 つの Nginx + PHP5 (FastCGI) サーバーが PHP 動的プログラムを実行します。その能力は「」を超えています。
700 リクエスト/秒
"、これは 1 日あたり 6,000 万 (700*60*60*24=60480000) の訪問に耐えることに相当します (
詳細はこちら
)、サーバーのシステム負荷は高くありません:
2009年9月3日午後2時30分より、Kingsoft Gamesの『ソードマンオンライン バージョン3』が1時間一時メンテナンスされます(
http://kefu.xoyo.com/gonggao/jx3/2009-09-03/750438.shtml
)、多くのプレイヤーが Nginx サーバー クラスターの公式 Web サイト、フォーラム、コメント、カスタマー サービス、その他の動的アプリケーションにアクセスし、サーバーあたりの Nginx アクティブ接続数は 28,000 に達し、これは Nginx 本番環境の最高の同時実行値です。著者が遭遇した環境。
以下は、同じサービスを提供する実稼働環境の同じロード バランサー VIP の下にある 2 つのサーバーをそれぞれ 100 個の同時接続を使用して抑制することです。 1 秒あたりに処理されるリクエストの数は Apache の 2 倍以上です。Nginx サーバーのシステム負荷と CPU 使用率は、Apache よりもはるかに低いです。
Nginx および Apache で phpinfo.php を抑制するには、接続数を 10,000 ~ 30,000 に開くことができます。これは、ブラウザを使用して Nginx で phpinfo.php にアクセスする場合、すべてが正常であることを意味します。しかし、Apache サーバー phpinfo.php にアクセスすると、ページが表示されません。 4G メモリを搭載したサーバーの場合、最適化されていても、Apache が「webbench -c 30000 -t 60?」を実行するのは困難です。
http://xxx.xxx.xxx.xxx/phpinfo.php
" はプレッシャー下でも通常通りアクセスでき、Nginx はパラメータを調整して最適化するとアクセスできるようになります。
ウェブベンチのダウンロード アドレス:
http://blog.s135.com/post/288/
注: Webbench がストレス テストを行う場合、ソフトウェア自体も CPU とメモリ リソースを消費します。正確なテストを行うには、Webbench を別のサーバーにインストールしてください。
テスト結果: ##### Nginx + PHP #####
测试结果:###??Apache + PHP #####
必要な Nginx のパフォーマンスは Apache よりも多く得られますか? これにより、Nginx は最新の epoll (Linux 2.6 内核) と kqueue (freebsd) ネットワーク I/O モデルを使用し、Apache を使用して利益を得ています現在、Linux では、Squid と Memcached の両方を受け入れることができ、epoll ネットワーク I/O モデルが採用されています。
大量の接続の書き込みを処理し、Apache で採用されたセレクト ネットワーク I/O モデルは非常に効率が低い。以下では、Apache で採用された select モデルと Nginx で採用された epoll モデルを比較して解析します。间的区:
在大学读书、住的宿舍楼有很多房房間,你的友要来找。select 版宿管大妈就会带着你的友友近傍房間去找,在したがって、epoll 版宿管大楼は、各位の同質の房番号、友人の友人を事前に確認し、その友人が 1 つの房の間に居住していることを報告するだけでよく、自分で着ている友人の友人を報告する必要はありません。 10000 人がこのようなタワーに同時に住んでいる場合、バージョンとエポール バージョンのゲストハウスを選択すると、より高い効率が得られます。 /O は最も時間がかかる操作の 1 つであり、同様に十分に説明されているように、select および epoll のパフォーマンスがより優れています。
安装步骤:
(システム要件:Linux 2.6+ 内核、ここで説明する Linux オペレーティングシステムは CentOS 5.3、RedHat AS4 上でもインストール成功)
一、获取相关开源程序:
1、【CentOSオペレーティングシステム】CentOS Linuxシステムの自带のyumコマンドを利用してインストール、升级に必要なプログラム库(RedHat等その他Linux発行版可以登装光盘中找到这これらプログラム库のRPMパケット) ,行安装):
2. [RedHat オペレーティング システムに適用可能] RedHat およびその他の Linux ディストリビューションは、インストール CD からこれらのライブラリの RPM パッケージを見つけることができます (「rpm -qa | grep などを使用できます)」事前に libjpeg" " コマンドを使用して、必要な RPM パッケージが存在するかどうかを確認します。通常、「xxx-devel」は存在しないため、インストールする必要があります)。 RedHat は、CentOS の RPM パッケージを使用して直接インストールできます。RPM パッケージのダウンロード URL は次のとおりです:
①、RedHat AS4 & CentOS 4
http://mirrors.163.com/centos/4/os/i386/CentOS/RPMS/
http://mirrors.163.com/centos/4/os/x86_64/CentOS/RPMS/
②、RedHat AS5 & CentOS 5
http://mirrors.163.com/centos/5/os/i386/CentOS/
http://mirrors.163.com/centos/5/os/x86_64/CentOS/
③、RPMパッケージ検索サイト
http://rpm.pbone.net/
http://www.rpmfind.net/
④、RedHat AS4 システム環境、通常はサポート パッケージのインストールが欠落しています:
Ⅰ、i386系
Ⅱ、x86_64系
3. [CentOS、RedHat、その他の Linux オペレーティング システムに適用可能] プログラム ソース コード パッケージをダウンロードします:
この記事で言及されているすべてのオープンソース ソフトウェアは 時点のものです。
2010 年 7 月 26 日
の最新の安定バージョン。
①. ソフトウェアの公式サイトからダウンロードします:
②、从
blog.s135.com
ダウンロード(比较稳定、只允许本站、または Linux/Unix 経由 Wget、Curl 等コマンド下ダウンロード以下软件):
二、インストールPHP 5.2.14(FastCGIモード)
1、インストールPHP 5.2.14に必要なサポート:
2、MySQL 5.5.3-m3 のインストール
付: 以下は追加の手順で、この台のサーバーで MySQL データベースを実行する場合は、以下の手順を実行します。PHPMySQL サポート展開を希望する場合のみ、他のサーバーに接続できます。 MySQL データベースの場合は、以下の 2 つの手順を実行する必要はありません。
①、创建MySQLデータベース库存放目录
②、以mysql用户帐号の身份建立データベース表:
③、创建my.cnf構成文件:
以下の内容を入力します:
④、创建管理MySQLデータベース库のシェルスクリプト:
以下の内容を入力します(ここの用户名adminと密解12345678次の步骤会创建):
⑤、赋予シェルスクリプト可执行权制限:
⑥、启アニメーションMySQL:
⑦. コマンド ラインから MySQL サーバーにログインし、管理します (パスワードの入力を求められたら、直接 Enter キーを押します):
⑧. 次の SQL ステートメントを入力して、root 権限とパスワード (12345678) を持つユーザー (admin) を作成します。
⑨ (オプション) MySQL を停止します:
3. PHP のコンパイルとインストール (FastCGI モード)
4. PHP5 拡張モジュールをコンパイルしてインストールします
5. php.ini ファイルを変更します
手動変更:
/usr/local/webserver/php/etc/php.ini で extension_dir = "./" を探します
extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/" に変更します
この行の後に次の行を追加して保存します。
拡張子 = "memcache.so"
拡張子 = "pdo_mysql.so"
拡張子 = "imagick.so"
次に、output_buffering = Off を探します
Output_buffering = On に変更されました
cgi.fix_pathinfo=0 再検索します。
Nginx ファイル タイプ エラー解析の脆弱性を防ぐために、cgi.fix_pathinfo=0 に変更します。
自動変更:
手動での変更が面倒な場合は、次のシェル コマンドを実行して、php.ini ファイルを自動的に変更できます。
6. PHP を高速化するように eAccelerator を設定します:
Shift+G を押して構成ファイルの末尾にジャンプし、次の構成情報を追加します。
7. www ユーザーとグループを作成し、blog.s135.com と を提供します。
www.s135.com
2 つの仮想ホストによって使用されるディレクトリ:
8. php-fpm 構成ファイルを作成します (php-fpm は、php-cgi を再起動せずに php.ini 構成をスムーズに変更できる PHP 用の FastCGI 管理パッチです)。 🎜>
/usr/local/webserver/php/etc/ ディレクトリに php-fpm.conf ファイルを作成します。
以下の内容を入力します (プログラムのデバッグ用に Nginx + PHP をインストールする場合は、次の
9、启アニメーションphp-cgi进程、监听127.0.0.1の9000端口、进程数は128(如果服务器内保存3GB未満、可能只启64个进程)、用户はwww:
注:/usr/local/webserver/php/sbin/php-fpm にはその他のパラメータが含まれます:start|stop|quit|restart|reload|logrotate、修正php.ini後不php-cgi を再ロードし、reload を使用して構成ファイルを再追加します。
三、インストールNginx 0.8.46
1、Nginxのインストールに必要なpcre库:
2、インストールNginx
3、创建Nginx日志目录
4、创建Nginx構成文件
①、在/usr/local/webserver/nginx/conf/目录中创建nginx.conf文件:
以下の内容を入力します:
②、在/usr/local/webserver/nginx/conf/目录中创建fcgi.confファイル:
以下の内容を入力します:
5、启アニメーションNginx
四、配置开机自動启动Nginx + PHP
在末尾增以下内容:
五、优化Linux内核パラメータ
在末尾增以下内容:
使用配置立即生效:
六、Nginx サービスを停止しない状況下平滑変更Nginx 構成
1、修正/usr/local/webserver/nginx/conf/nginx.conf 構成文件後、请执以下命令检查構成文件是否正确:
画面に次の 2 行の情報が表示される場合、構成ファイルは正しいです:
設定ファイル /usr/local/webserver/nginx/conf/nginx.conf の構文は問題ありません
構成ファイル /usr/local/webserver/nginx/conf/nginx.conf は正常にテストされました
2. スムーズな再起動:
①. Nginx 0.8.x バージョンの場合、次のコマンドを実行するだけで、Nginx 設定をスムーズに再起動することが非常に簡単になりました。
②. Nginx 0.8.x より前のバージョンの場合、スムーズな再起動は少し面倒です。次のコマンドを入力して、Nginx メイン プロセス番号を表示します:
画面に表示されるのは、Nginx のメインプロセス番号です。例:
6302
この時点で、次のコマンドを実行して、変更した Nginx 構成ファイルを有効にします:
または、そんな面倒なことをせずに、Nginx Pid ファイルを見つけます:
7. Nginx ログを毎日定期的にカットするスクリプトを作成します
1. script/usr/local/webserver/nginx/sbin/cut_nginx_log.sh を作成します
次のように入力します:
2. crontab を設定し、毎朝 00:00 に nginx のアクセスログをカットします
次のように入力します: