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つのホストに対応するプログラムをインストールします.
#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サーバにない静的リソースにアクセスする必要がある場合、多くの問題が発生します.