ホームページ > バックエンド開発 > PHPチュートリアル > Linux バックエンドサーバー開発環境の展開設定と検証 (nginx+apache+php-fpm+FASTCGI)

Linux バックエンドサーバー開発環境の展開設定と検証 (nginx+apache+php-fpm+FASTCGI)

WBOY
リリース: 2016-06-23 13:57:18
オリジナル
968 人が閲覧しました




Linux バックエンド サーバー開発環境の展開構成

はじめに
背景
会社のインターネット ビジネスが拡大し続けるにつれて、サーバー側の開発環境と展開環境の統合を促進するために、開発環境はますます複雑になってきています。 、この設定ドキュメントは特別に作成されています。
使用ソフトウェア
CentOS 6.3 (Linux バージョン 2.6.32-279.el6.x86_64)
gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4)
この構成
Nginx 1.5.8
Apache 2.4。
php 5.3.26

目的
WEBフロントエンドの技術アーキテクチャを構築し、Webフロントエンドの展開構造技術が完全に完成します。
2 つの FASTCGI アーキテクチャ: nginx + apache + FASTCGI(C/C++) および nginx + php-fpm +FASTCGI(PHP) の完全な説明。
nginxのインストール
ソフトウェアの準備
http://nginx.org/ja/download.html
公式サイト ダウンロード版、nginx-1.5.8.tar.gz

http://www.pcre.org/
公式サイトpcre -8.34.tar.gz をダウンロード

http://zlib.net/
公式 Web サイトから zlib-1.2.5.tar.gz をダウンロード

http://www.openssl.org/source/
公式 Web サイトから openssl をダウンロード-1.0.1d .tar.gz

作業ディレクトリの準備
作業ディレクトリ nginx_make を作成し、上記でダウンロードしたすべてのファイルをこのディレクトリに置きます。
すべての .tar.gz ファイルを解凍すると、対応するディレクトリが表示されます。
pcre をインストールする
cd pcre-8.34
./configure --prefix=/usr/local/pcre-8.34
make
make install
zlib をインストールする
zlib が既にローカルにインストールされている場合は、インストールする必要はありません。
インストール手順は上記と似ていますが、コンパイルおよびインストール時にディレクトリとインストール バージョンを指定することを強くお勧めします。
openssl をインストールする
openssl が既にローカルにインストールされている場合は、インストールする必要はありません。
インストール手順は上記と似ていますが、コンパイルおよびインストールするときにディレクトリとインストール バージョンを指定することを強くお勧めします
nginx をインストールします
cd nginx-1.5.8
./configure --user=root --group=root --prefix=/usr/local/nginx-1.5.8 --pid-path=/usr/local/nginx-1.5.8/nginx.pid --error-log-path=/data/logs/nginx/err /nginx --http-log -path=/data/logs/nginx/acc/nginx --with-http_gzip_static_module --with-poll_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-pcre =../pcre-8.34 --with-cc-opt=-O2
make
make install

Apacheのインストール
ソフトウェアの準備
http://httpd.apache.org/
公式サイトのダウンロード版、httpd-2.4。 7.tar.gz

http://apr.apache.org/
公式 Web サイトから apr-1.5.0.tar.gz をダウンロードします

http://apr.apache.org/
apr-util- をダウンロードします公式サイトから 1.5.3.tar.gz

http://www.pcre.org/
公式サイトから pcre-8.34.tar.gz をダウンロード
作業ディレクトリの準備
作業ディレクトリ apache_make を作成し、すべてを配置上記でダウンロードしたファイルをこのディレクトリに保存します。
すべての .tar.gz ファイルを解凍すると、対応するディレクトリが表示されます。
apr をインストールする
cd apr-1.5.0
./configure --prefix=/usr/local/apr-1.5.0
make
make install
apr-util をインストールする
cd apr-1.5.0
./configure - -prefix=/usr/local/apr-util-1.5.3/ --with-apr=/usr/local/apr-1.5.3/bin/apr-1-config
pcre をインストール
cd pcre-8.34
。 /configure --prefix=/usr/local/pcre-8.34/ --with-apr=/usr/local/apr-1.5.3/bin/apr-1-config
上記で既にインストールされている pcre を参照してください。
Apache をインストールする
cd httpd-2.4.7
./configure --prefix=/usr/local/apache2.4.7/ --with-pcre=/usr/local/pcre-8.34/ --with-apr=/usr /local/apr-1.5.0/ --with-apr-util=/usr/local/apr-util-1.5.3/
make
make install

PHP のインストール
ソフトウェアの準備
http://www.php .net/releases/
公式サイトダウンロード版、php-5.3.26.tar.gz
作業ディレクトリの準備
作業ディレクトリ php_make を作成し、このディレクトリに上記でダウンロードしたファイルをすべて置きます。
すべての .tar.gz ファイルを解凍すると、対応するディレクトリが表示されます。
libphp5.so を構築する
php をコンパイルし、Apache が php を解析できるように libphp5.so を構築します。
cd php-5.3.26
クリーンにする
./configure --prefix=/usr/local/php-5.3.26 -with-apxs2=/usr/local/apache2.4.7/bin/apxs --with- curl --with-curlwrappers
make
make install
php-fpm をインストール
php をコンパイルし、php-fpm とソケットをサポートし、NGINX の Curl モジュールが FASTCGI モードで php を解析して実行できるようにします。

cd php-5.3.26
クリーンにする
./configure --prefix=/usr/local/php-5.3.26 --enable-fpm --enable-sockets --with-curl --with-curlwrappers
make
make install

php をインストール
cd php-5.3.26
make install
php.ini インストール
cd php-5.3.26
cp php.ini-development /usr/local/php-5.3.26/lib /php.ini
nginx+php-fpm 設定
php-fpm を開始
/usr/local/php-5.3.26/sbin/php-fpm -y /usr/local/php-5.3.26/etc/php- fpm.conf -c /usr/local/php-5.3.26/lib/php.ini
nginx.conf を設定する
/usr/local/nginx-1.5.8/conf/nginx.conf を変更します。
8090 を聞く
文字セット

location ~ .php$ {
/usr/local/web_umsa/
FASTCGI_pass 127.0.0.1:9000;
#FASTCGI_param SCRIPT_FILENAME $document_root$FASTCGI_script_name;
FASTCGI_params を含む

FASTCGI_params を構成する
変更/ usr/local/nginx-1.5.8/conf/FASTCGI_params。

# PHP のみ、PHP が --enable-force-cgi-redirect でビルドされた場合に必要
FASTCGI_param SCRIPT_FILENAME $document_root$FASTCGI_script_name; を押すと、次の内容が php を作成しますテストファイル。

cat /usr/local/web_umsa/phpinfo.php
echo phpinfo();
?>
FASTCGI モードの php を確認
tcpdump -ilo -XAvs0 port 9000
パケットをキャプチャして実行ブラウザ
http://169.254.10.12:8090/phpinfo.php
ブラウザはPHPのインストール設定情報を出力します。
パケット キャプチャが確認できます。データはポート 9000 に送信されています。送信プロトコルが FASTCGI プロトコルであることが確認できます。
Apache の設定
php5_module モジュールのブート
/usr/local/apache2.4.7/conf/httpd.conf を有効にします。
LoadModule php5_module modules/libphp5.so
ディレクトリの設定 /
/usr/local/apache2.4.7/conf/httpd.conf を変更します。

オプション FollowSymLinks
AllowOverride なし
すべてから許可

DocumentRoot を設定
/usr/local/apache2 を変更します。の。

DocumentRoot "/usr/local/web_umsa"
設定
/usr/local/apache2.4.7/conf/httpd.conf を変更します。

#サポート CGI
ScriptAlias /cgi-bin/ "/usr/local/web_umsa/cgi-bin/"
#サポート FASTCGI
ScriptAlias /fcg-bin/ "/usr/local/web_umsa/fcgi- bin/"

設定
/usr/local/apache2.4.7/conf/httpd.conf を変更します。

AddType application/x-httpd-php .php .phtml .php3 .inc
AddType application/x-httpd-php-source .phps
設定 ;
/usr/local/apache2.4.7/conf/httpd.conf を変更します。

<ディレクトリ "/usr/local/web_umsa/cgi-bin/">
AddHandler cgi-script .cgi .ums
オプション FollowSymLinks
すべての拒否、許可
すべてから許可
オプション +ExecCGI
< ;/Directory>

Apache を起動
/usr/local/apache2.4.7/bin/apachectl start

Apache を確認
http://169.254.10.12/phpinfo.php
http://169.254.10.12/

2すべての訪問結果が表示され、インストールが成功したことが証明されます。

apache-FASTCGI (C/C++) 設定
mod_fcgid の読み込み
ファイルのダウンロード
公式 Web サイト http://httpd.apache.org/mod_fcgid/ ダウンロード
ファイル mod_fcgid-2.3.9.tar.gz を取得

コンパイルしてインストール
mod_fcgid-2.3.9.tar.gz ファイルが Apache オリジナル コード ディレクトリ httpd-2.4.7 に解凍され、ディレクトリ
mod_fcgid-2.3.9 が取得されます。完全な構造は httpd-2.4.7/ になります。 mod_fcgid-2.3.9。
Apache コマンド ../bin/apachectl -k restart を実行して httpd サービスを開始します。
環境変数 APXS を設定し、設定後の効果を確認できます
# echo $APXS
/usr/local/apache2.4.7/bin/apxs
このうち、/usr/local/apache2.4.7/bin/apxsは先ほどのApacheのインストールディレクトリです。
ディレクトリ配下に ./configure.apxs;make;make install を実行
インストール結果を表示
# grep "mod_fcgid.so" /usr/local/apache2.4.7/conf/httpd.conf
LoadModule fcgid_module modules/mod_fcgid.
mod_fcgid モジュールが有効になっていることがわかります。
FASTCGI サポートを構成する
<ディレクトリ "/usr/local/web_umsa/fcgi-bin/"> を構成する
/usr/local/apache2.4.7/conf/httpd.conf を変更する


<ディレクトリ "/usr/local/web_umsa/fcgi-bin">
SetHandler fcgid-script
AddHandler fcgid-script .fcgi .ums
オプション FollowSymLinks
すべてのAllowOverride
注文拒否、許可
すべてから許可
オプション +ExecCGI
Apacheを再起動します。../bin/apachectl -k restart。
FASTCGI (C/C++) をテストする
FASTCGI ライブラリをダウンロードする
公式 Web サイト http://www.FASTCGI.com/ http://www.FASTCGI.com/drupal/node/5 (現在: ダウンロード | ドキュメント | 参照) ) C/C++ 開発パッケージをダウンロードします。最新バージョンは 2.4.1 です。fcgi-2.4.1-SNAP-0910052249.tar.gz ファイルを取得します。

ライブラリをコンパイルする
ファイルを解凍し、ディレクトリに入ります。従来のコマンド
./configure;make
を実行すると、ライブラリが生成されたことを示す
ranlib .libs/libfcgi.a
が表示され、他のコンパイル エラーは無視されます (これは C++ エラーであり、バージョンが古すぎます)。
コマンド ls libfcgi/.libs/ -al を実行すると、libfcgi.a および libfcgi.so.0.0.0 をクエリできます。
動的ライブラリと静的ライブラリの両方が利用可能です。
構築例
exapmleディレクトリに入りコマンド実行(cgiをコンパイルして指定ディレクトリにデプロイ)
# gcc echo.c -o echo.ums ../libfcgi/.libs/libfcgi.a
#cp echo.ums /usr/ local/web_umsa/fcgi-bin/
効果を表示します
http://169.254.10.12/fcgi-bin/echo.ums
次のページ出力を確認できます:
リクエスト番号 8、プロセス ID: 28256
継続的ページを更新します。プロセス番号は変化せず、シリアル番号は増加し続けます。同時にサーバー側でチェックした結果、
# ps aux|grep echo.ums
プロセスが常に存在しており、プロセス番号がページと一致していることがわかりました。

開発環境の検証 (内部検証のみ)
nginx 転送を構成し、.ums 解析をサポートする必要があります。

#TCP 長い接続、プロキシとしての nginx
アップストリーム tcp_keepalive {
サーバー 127.0.0.1:8080;
keepalive 256
}

php-fpm で実装された #fastcgi デプロイメントメソッド
location ~ .php$ {
ルート data/ php_project;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
#fastcgi_params を変更してください
# PHP のみ。PHP がビルドされた場合に必要です。 --enable-force-cgi-redirect
#fastcgi_param REDIRECT_STATUS 200;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
}


#Thought.fcgi,.um s で終わるリクエストは http プロトコルを使用して tcpend に転送されます。
場所~* . (FCGI | UMS) $ {
#ROOT ROOT
#バックエンドサーバーへのリクエストを開始するとき、指定されたヘッダーヘッド情報を追加します -Real-IP $remote_addr
# php などのバックエンドが変数を介して直接実際の IP
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header ホスト $ http_host; $server_addr 別:$サーバーポート;
proxy_set_header proxy_read_timeout 10 秒;
proxy_send_timeout 5 秒;

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート