過去 2 日間、Ubuntu14.04 で nginx と php 環境をセットアップする必要があり、fastcgi の問題に多くの時間を費やしました。 , そこで、プロセス全体を記録してみんなに共有することにしました。
準備:
apt-get update
apt-get install nginxsudo /etc/init.d/nginx start
sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql
を実行する前にこれを行う必要があります。 FastCGI については、C/S 構造を採用しており、HTTP サーバーが動的リクエストを受信したときに、HTTP サーバーとスクリプト解析サーバーを分離することができます。リクエストは FastCGI プロセスに転送され、FastCGI プロセスは動的スクリプトを実行し、結果を HTTP サーバーに返します。これにより、HTTP サーバーは最終的に結果をブラウザに返します。これにより、リクエストの応答速度が大幅に向上します。
FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI を実装するにはいくつかの方法があります
PHP-CGI は、PHP に付属する FastCGI マネージャーです。次のコマンドを使用して PHP-CGI を開始できます。
php- cgi -b 127.0.0.1:9000
PHP-CGI には 2 つの問題があります。1 つは、php.ini を変更した後、有効にするために php-cgi を再起動する必要があることです。もう 1 つは、php.ini を変更した後に php を実行できないことです。 php-cgi プロセスがクラッシュするか強制終了されます。
PHP-FPM は、PHP 5.3.3 以降に追加された新しい CGI マネージャーです。PHP の設定変更後の再起動の必要がなく、デーモンの追加により強制終了してもすぐに再起動できます。
Spawn-FCGI は、単なる PHP 用のスクリプト言語ではなく、汎用の FastCGI マネージャーです。ただし、効率と CPU 使用率の点では PHP-FPM より劣ります。
PHP-FPM が最良の方法なので、今すぐ設定しましょう。 PHP-FPM は独立したプロセスであるため、Nginx と通信する必要があります。現在、通信方式には tcp とソケットの 2 つがあります。 2 つの方法の違いと設定方法については、次の 2 つの記事を参照してください:
nginx と php-fpm の通信は Unix ソケットまたは TCP を使用し、その設定
Php-fpm TcpSocket と UnixSocket
ここで設定方法を見てみましょう。どちらの方法も主に nginx 設定ファイル (/etc/nginx/sites-available/default) と fpm 設定ファイル (/etc/php5/fpm/pool.d/www.conf) を変更します。 )。
TCP 構成方法では、nginx 構成ファイル内の対応するリバース プロキシの fastcgi_pass パラメーターを 127.0.0.1:9000 に変更し、fpm 構成ファイル内の listen パラメーターを 127.0.0.1:9000 に変更する必要があります。
ソケット構成方法では、nginx 構成ファイル内の対応するリバース プロキシの fastcgi_pass パラメーターを unix:/dev/shm/fpm-cgi.sock に変更し、fpm 構成ファイル内の listen パラメーターを / に変更する必要があります。 dev/shm/fpm-cgi.sock で、高い同時実行性を考慮する場合は、listen.backlog パラメータを -1 に変更すると、メモリ バックログが無限になります。さらに、/etc/sysctl.conf を変更してカーネル レベルで同時接続の数を増やすこともできます。
sudo echo 'net.core.somaxconn = 2048' >> /etc/sysctl.confsudo sysctl -p
両方の設定方法を変更した後、php-fpm と nginx を再起動する必要があります。
sudo service php5-fpm restartsudo /etc/init.d/nginx reload
上記の設定が完了したら、テストするための簡単な PHP ページを作成できます。
Web サイトのディレクトリを作成します:
sudo mkdir /var/www/
nginx 構成ファイルのルート ディレクトリを root /var/www に変更します。
テスト ページを追加します:
sudo vi /var/www/test.php
次のコードを追加します。リーリー
この時、ブラウザにアドレス http://localhost/test.php を入力すると、phpの情報が表示されます。
一般的に使用されるコマンド:
1. nginx の起動エラーを確認します
<?php phpinfo();?>
役に立ったと思われる場合は、助けていただければ幸いです、ありがとう:)
この記事のアドレス:
転載の際は出典を明記してください、よろしくお願いします!