lnmpにphpMyAdminを配備する
前言:
以前、lampアーキテクチャにwordpressブログシステムを導入することを実現しました.httpdサービス自体はモジュール化とfastcgiの2つの形式でphpアプリケーションに接続することをサポートしています(他の方法はブロガーが使ったことがないので言わない).一方nginxはwebサーバとしてfastcgiでphpアプリケーションに接続するしかありません.もちろん、nginxには逆エージェントとしてよく使われる用途がありますが、これは後述します.
本文:
Webサービスが担持するユーザーの数がますます大きくなると、lnmp全体を1台のホストに配置すると、問題があるに違いありません.そこで、今日はnginx、fpm、mysqlをそれぞれ異なるサーバに配置することを直接実現します.私たちの環境はcentos 7ホストが3台あり、172.16.53.100にnginxサービスを配置し、172.16.53.101にfpmを配置し、172.16.53.102にmysqlを配置します.3つのホストに対応するプログラムをインストールします.
構成中に最も多くの問題が発生したのはファイアウォールです...
dangがすべて構成されたら、phpMyAdminのページを表示できるかどうかをテストし、データベースに接続できるかどうかをテストします.50 xエラーならlocation~.phpこれが構成されていないか、php-fpm側iptablesルールがアクセスを制限しているか、404エラーであればphp-fpm側のディレクトリに問題があると推定される.
私たちの構成のように、静的ファイルとphpファイルを2つのサーバに配置すると、いくつかのphpプログラムで問題があります.例えば、ブロガーはwordpressをインストールするとき、私たちがインストールするとき、または画像などの静的ファイルをアップロードするときにphp-fpmのあるサーバにこれらの静的リソースを転送します.したがって、nginxサーバにない静的リソースにアクセスする必要がある場合、多くの問題が発生します.
以前、lampアーキテクチャにwordpressブログシステムを導入することを実現しました.httpdサービス自体はモジュール化とfastcgiの2つの形式でphpアプリケーションに接続することをサポートしています(他の方法はブロガーが使ったことがないので言わない).一方nginxはwebサーバとしてfastcgiでphpアプリケーションに接続するしかありません.もちろん、nginxには逆エージェントとしてよく使われる用途がありますが、これは後述します.
本文:
Webサービスが担持するユーザーの数がますます大きくなると、lnmp全体を1台のホストに配置すると、問題があるに違いありません.そこで、今日はnginx、fpm、mysqlをそれぞれ異なるサーバに配置することを直接実現します.私たちの環境はcentos 7ホストが3台あり、172.16.53.100にnginxサービスを配置し、172.16.53.101にfpmを配置し、172.16.53.102にmysqlを配置します.3つのホストに対応するプログラムをインストールします.
#172.16.53.100
yum install nginx -y
vim /etc/nginx/nginx.conf ~ 。
# server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location = /40x.html {
# root /var/nginx;
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
vim /etc/nginx/
server {
listen 80; 80
server_name
location / {
root /var/nginx/phpMyAdmin;
index index.php; index.php
}
location ~ \.php$ { php 172.16.53.101
fastcgi_pass 172.16.53.101:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/nginx/phpMyAdmin/$fastcgi_script_name;
include fastcgi_params;
}
}
systemctl start nginx
iptable -vnL
#172.16.53.101
yum install php-fpm php php-mysql php-mbstring -y
fastcgi ,php mysql
vim /etc/php-fpm.d/
listen 0.0.0.0:9000
listen.allowed_clients = 172.16.53.100 100
mkdir /var/nginx php , phpMyAdmin
cd /var/nginx
unzip phpMyAdmin-4.4.14.1-all-languages.zip
mv phpMyAdmin-4.4.14.1-all-languages phpMyAdmin
cp config.sample.inc.php config.inc.php
vim config.inc.php , 。
$cfg['Servers'][$i]['host'] = '172.16.53.102'; ip 。
systemctl start php-fpm
iptable -vnL
#172.16.53.102
yum install mariadb-server
systemctl start mariadb
mysql mysql
mysql>grant all on *.* to 'root'@'172.16.%.%' identified by '1234'; ip, 。
iptable -vnL
構成中に最も多くの問題が発生したのはファイアウォールです...
dangがすべて構成されたら、phpMyAdminのページを表示できるかどうかをテストし、データベースに接続できるかどうかをテストします.50 xエラーならlocation~.phpこれが構成されていないか、php-fpm側iptablesルールがアクセスを制限しているか、404エラーであればphp-fpm側のディレクトリに問題があると推定される.
私たちの構成のように、静的ファイルとphpファイルを2つのサーバに配置すると、いくつかのphpプログラムで問題があります.例えば、ブロガーはwordpressをインストールするとき、私たちがインストールするとき、または画像などの静的ファイルをアップロードするときにphp-fpmのあるサーバにこれらの静的リソースを転送します.したがって、nginxサーバにない静的リソースにアクセスする必要がある場合、多くの問題が発生します.