ホームページ >バックエンド開発 >PHPチュートリアル >FCGI モードで 3 つのホスト間で LAMP を構築する詳細な説明

FCGI モードで 3 つのホスト間で LAMP を構築する詳細な説明

WBOY
WBOYオリジナル
2016-06-20 12:39:341095ブラウズ

前述:

このビルドでは 3 つの CentOS 7 仮想マシンが使用されます。1 つ目はリクエストを受信する httpd サーバーとして構成され、2 つ目は FCGI モードで php を構成します。これは、独立したサービス プロセスとアイドル プロセスを備えた別個のサーバー ホストであり、httpd サーバーからの動的リソース呼び出し要求を待機し、php スクリプトを実行し、動的に応答します。3 番目のホストは、リレーショナルを格納する MariaDB (Mysql) データベース サーバーとして構成されます。データ。

各仮想ホストの IP 情報は次のとおりです。

httpd 主机

172.16.49.2 , CentOS 7

RPM : httpd-2.4.6-31.el7.centos.x86_64

FCGI 主机

172.16.49.3 , CentOS 7

RPM : php-fpm-5.4.16-23.el7_0.3.x86_64

MariaDB 主机

172.16.49.4 , CentOS   7

RPM : mariadb-5.5.41-2.el7_0.x86_64

httpd host

172.16.49.2、CentOS 7

RPM: httpd-2.4.6-31.el7.centos.x86_64

FCGI ホスト

172.16.49.3、CentOS 7

RPM: php-fpm-5.4.16- 23. el7_0.3.x86_64

MariaDB ホスト

172.16.49.4、CentOS 7

RPM: mariadb-5.5.41-2.el7_0.x86_64

1. FCGI に基づくインストール パッケージ グループmode

1. CentOS 6 シリーズ

PHP-5.3.2 およびそれ以前のバージョン: fpm メカニズムはデフォルトではサポートされていません。自分でパッチを適用し、コンパイルしてインストールする必要があります。

httpd-2.2: デフォルトではサポートされていません。fcgi プロトコルをサポートします。fcgi モジュールを自分でコンパイルする必要があります。

解決策: httpd-2.4、php-5.3.3 以降をコンパイルしてインストールします。

2. CentOS 7 シリーズ

172.16.49.2: [root@localhost ~]# yum install -y httpd

include=/etc/php-fpm.d/*.conf

包含 /etc/php-fpm.d/*.conf 的配置信息

pid =  /run/php-fpm/php-fpm.pid

进程的 PID 文件位置

error_log =  /var/log/php-fpm/error.log

错误日志位置

log_level = notice

日志级别,默认 notice 级别

;emergency_restart_threshold  = 0

紧急重启的临界值

;emergency_restart_interval  = 0

紧急重启的间隔

;process_control_timeout  = 0

进程控制超时时长

daemonize = no

是否运行在后台,运行在前台可方便查看

172.16.49.3: [root@localhost ~]# yum install - y php-fpm php-mmysql 172.16.49.4: [root@localhost ~]# yum install -y mariadb-server 2. php-fpm サーバーの設定 1.php設定ファイル サービスプロセス 設定ファイル:/etc/php-fpm.conf、/etc/php-fpm.d/*.conf 環境設定ファイル(phpが提供) -common): /etc/php.ini、/etc /php.d/*.ini 2. FPM 構成構成: (1) デフォルトの [root@localhost] を使用します。 ~]#cat /etc/php-fpm.conf tr> テーブル>

(2) 接続プールの設定、[root@localhost ~]#cat /etc/php-fpm.d/www.conf

接続プールは、httpd サーバー Web プロキシによって送信された動的リクエストを受け入れることができます

次のパラメータは変更する必要があり、残りはデフォルトのままで構いません:

listen = 172.16.49.3:9000

listen.allowed_clients = 172.16.49.2

include=/etc/php-fpm.d/*.conf include/etc /php-fpm.d/*.conf
pid = /run/ php-fpm/php-fpm.pid プロセスの PID ファイルの場所
error_log = /var/log/php-fpm/error.log エラー ログの場所
log_level = Notice ログ レベル、デフォルトの通知レベル
;emergency_restart_threshold = 0 緊急再起動しきい値
;emergency_restart_interval = 0 緊急再起動間隔
;process_control_timeout = 0 プロセス制御タイムアウト期間
daemonize = no バックグラウンドで実行するか、フォアグラウンドで実行するかを簡単に確認できます

;

表示注释该行信息

listen  = 127.0.0.1:9000

监听端口, 0.0.0.0 表示本机所有地址。

支持远程调用应该监听在本机的远程通信端口

;listen.backlog =  -1

后援等待队列的长度, -1 表示无限制

listen.allowed_clients = 127.0.0.1

授权允许可请求主机,基于 IP 的控制机制,注释表示允许所

;listen.owner =  nobody

监听服务进程的主机默认以什么用户身份运行, nobody 表示普通用户

;listen.group =  nobody

监听服务进程的主机默认以什么用户组身份运行

;listen.mode =  0666

监听服务进程的主机默认以什么权限运行

user = apache

用户, RPM 包制作者修改,编译安装非此结果

group = apache

用户组, RPM 包制作者修改,编译安装非此结果

pm  = static|dynamic

进程控制器生成子进程方式

;pm.status_path =  /status

状态机制

;ping.path = /ping

ping 机制,一般用于提供监控机制

php_admin_value[error_log]  =

连接池错误日志位置

php_admin_flag[log_errors]  = on

是否在错误日志中将于管理相关的标志打开

php_value[session.save_handler]  = files

php 的 session 记录存放形式:文件

php_value[session.save_path]  =

php 的 session 记录存放路径,集群是关键

;

は、この行の情報をコメント化することを意味します

listen = 127.0.0.1:9000

リスニング ポート、0.0.0.0 はこのマシンのすべてのアドレスを表します。

pm.start_servers=

开始启用进程数

pm.min_spare_servers=

最小空闲进程数

pm.max_spare_servers=

最大空闲进程数

;pm.max_requests =

每个子进程自多允许响应多少请求,超过就 kill

リモート呼び出しをサポートするには、ローカルのリモート通信ポートでリッスンする必要があります
;listen.backlog = -1 td> バックアップ待機キューの長さ、-1 は無制限を意味します
listen.allowed_clients = 127.0.0.1 認可によりホスト、IP ベースの制御メカニズムのリクエストが許可されます。コメントは何が許可されているかを示します
;listen.owner = nothing サービスプロセスを監視するホストはデフォルトでどのユーザーとして実行されますか? none は通常のユーザーを表しますか?
;listen.group = none サービスプロセスをリッスンするホストはデフォルトでどのユーザーグループとして実行されますか? td>
;listen.mode = 0666 サービスプロセスをリッスンするホストはデフォルトでどのような権限で実行されますか?
user = apache ユーザー、RPM パッケージプロデューサーによって変更され、コンパイルとインストールは行われません結果
group = apache ユーザーグループ、RPM パッケージプロデューサーの変更、コンパイル、インストールは次のようになります。結果ではありません
pm = static|dynamic プロセス コントローラーが子プロセスを生成する方法
;pm.status_path = / ステータス ステータスメカニズム
;ping.path = /ping ping メカニズム。通常は監視メカニズムを提供するために使用されます
php_admin_value[error_log] = 接続プールのエラー ログの場所
php_admin_flag[log_errors] = on エラーの有無 管理関連のフラグをログにオープンします
php_value[session.save_handler] = files PHP セッションレコードの保存形式: ファイル
php_value[session.save_path] = PHP セッション レコードのストレージ パス、クラスタリングが鍵
注: pm 接続プール モードには 2 つあります。 pm = static|dynamic static: 固定子プロセスの数; 動的: 子プロセス データは動的に管理されます。モード; このオプションを選択するには、次の設定を有効にする必要があります
pm.start_servers= 番号を開始します有効なプロセスの数
pm.min_spare_servers= アイドルプロセスの最小数 td>
pm.max_spare_servers= アイドルプロセスの最大数
;pm.max_requests = 各子プロセスは複数のプロセスを持つことができます 応答するリクエストの数、超過した場合は kill

3. サービスの開始とステータスの表示

[root@localhost~]# systemctl start php-fpm.service

[root@localhost~]# systemctl status php-fpm.service

3. Web サーバーの構成とテスト

1. fcgi モジュールが httpd サービスにロードされていることを確認します

[root@localhost~ ]# httpd - M | grep fcgi

2. httpd 設定ファイルが fcgi モジュール オプション

[root@localhost ~]#cat /etc/ をロードしていることを確認します。 httpd/conf.modules.d /00-proxy.conf

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so がある場合、設定はモジュール

2 をロードできます。仮想ホスト構成モードでサイトを構成します (中央ホストを使用することもできます)

(1) テスト ページを削除します: [root@localhost ~]# mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf. bck

(2) メイン設定ファイルの中央ホストセグメントをコメントします: # Document "/var/www/html"

(3) サイトのルート ディレクトリの場所を作成します: [root@localhost ~]# mkdir /www/fcgi-test -pv

(4) 仮想ホスト構成を作成します: [root@localhost ~]# vim /etc /httpd/conf.d/vritual.conf

サーバー名localhost :80

サーバー名www.fcgi.com

DocumentRoot"/www/fcgi-test"

<ディレクトリ"/www/fcgi-test">

OptionsNone

AllowoverrideNone

Requireall Grant

(5) httpd 構成ファイルの構文を検出します: [root@localhost ~]# httpd -t

3.. 設定ファイルの転送

[root@localhost~]# vim /etc/httpd/conf.d/fcgi.conf

ProxyRequestsOff

ProxyPassMatch ^/(.*.php)$ fcgi://127.16.49.3 :9000/www/fcgi-test/$1

注:

1) 2 番目のステートメントは、マッピング all を定義します。 php サーバーへの 172.16.49.2Web サーバーへのアクセス クエリ実行

2) php サーバー上にマッピング検索ディレクトリを作成します。このディレクトリは Web サーバーのサイト ルート ディレクトリとは異なる場合があります。同じ

[root@localhost~]# mkdir -pv / www/fcgi-test/

4. サービスを開始します

[root@localhost~] # systemctl start httpd.service

[root@localhost~]# systemctl status httpd .service

5.

(1)172.16 をテストします。 49.2/www/fcgi-test/index.html と定義し、ブラウザで 172.16.49.2/index.html

と入力します (2) にindex.phpを作成しますマッピング プロキシ ディレクトリ 172.16.49.3 を指定し、phpinfo() テスト ステートメントを定義し、ブラウザに 172.16.49.2 と入力します。 /index.php

(3) 上記と同様に、index.php を 172.16.49.2 の下に配置し、ブラウザに 172.16.49.2/index.php と入力します

この時点で、サーバーは .php リクエストを送信します

(4) 172.16.49.3 に上記のようにマッピングディレクトリにindex.htmlを置き、172.16.49.2と入力します。ブラウザ内の /index.html

静的ファイルindex.html が 172.16.49.2 で見つからず、エラーが報告されます

4. MariaDB データベース構成テスト

1. ホスト名のデコードを無効にします

[root@localhost~]# vim /etc/my.cnf

[mysqld] セクションに次のステートメントを追加します。 ON

2. サービスを開始します

[root@localhost~]# systemctl start mariadb.server

3. 認可はリモートから実行できます ログインユーザー

[root@localhost~]# mysql

MariaDB モニターへようこそ。コマンドは ; または g で終わります。

MariaDB 接続 ID は 2

サーバーのバージョン: 5.5 .41-MariaDB MariaDB Server

Copyright (c) 2000, 2014,Oracle, MariaDB Corporation Ab およびその他

ヘルプについては、「help;」または「h」を入力してください。現在の inputstatement をクリアします。

MariaDB [(none)]>Grant ALL ON *.* TO 'root'@'172.16.%.%' IDENTIFIED BY 'xuding'

4 .mariadb データベースのリモート接続

172.16.49.3: [root@localhost ~]# mysql -uroot -h172.16.49.4 -pxuding

5.php およびmariadb サービス接続テスト

172.16.49.3php ホスト上にindex.php テスト ページを作成し、次のコードを記述します:

$conn = mysql_connect ('172.16.49.4','root','xuding');

if($conn)

echo "OK";

else

echo "Failure";

?>

ブラウザに 172.16.49.2/index.php と入力してテストします。OKZ が表示されれば、php と mysql は接続できます

LAMP に関連する次のコンテンツもお勧めです:

LAMP プラットフォームは Web サイトの運用を高速化するために Xcache と Memcached をインストールします http://www.linuxidc.com/Linux/ 2015-06/ 118835.htm

CentOS 7 での LAMP プラットフォーム環境の構築 http://www.linuxidc.com/Linux/2015-06/118818.htm

CentOS 6.5 システムのインストール構成 LAMP (Apache) +PHP5+MySQL) サーバー環境 http://www.linuxidc.com/Linux/2014-12/111030.htm

Ubuntu 14.04 LAMP+phpMyAdmin の構成 PHP (5.5.9) 開発環境 http://www.linuxidc.com/Linux/2014-10/107924.htm

Ubuntu 14.10 での LAMP サービスのインストール 画像とテキスト 詳細な説明 http://www.linuxidc.com/Linux/2014-12/110082.htm

LAMP と NFS を組み合わせて小規模なブログ サイトを構築しました http://www.linuxidc.com/Linux/ 2015-08/121029 .htm

この記事の永久更新リンク アドレス : http://www.linuxidc.com/Linux/2016-01/127608.htm

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。