CentOS下主机分离搭建基于FCGI的LAMP

时间:2022-05-16 12:53:26


一、要求

 CentOS 7, lamp (php-fpm);
(1) 三者分离于三台主机;
(2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;
(3) xcache


规划

第一台 192.168.1.112 httpd-2.4.6-40.el7.centos.x86_64 httpd服务器
第二台 192.168.1.113 php-fpm-5.4.16-36.el7_1.x86_64 php-fpm服务器
第三台 192.168.1.114 mariadb-5.5.47-1.el7_2.x86_64

mariadb服务器

全部关闭selinux,iptables


实践

基于FCGI模式安装包组

 1.CentOS 6系列

          PHP-5.3.2及以前版本:默认不支持fpm机制;需要自行打补丁并编译安装

   httpd-2.2:默认不支持fcgi协议,需要自行编译fcgi模块;

            解决方案:编译安装httpd-2.4, php-5.3.3及以上版本;

 2.CentOS 7系列

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

    192.168.1.113:[root@localhost ~]# yum -y install php-fpm php-mysql

    192.168.1.114:[root@localhost ~]# yum -y install mariadb-server


3.配置修改

3.1 httpd服务器

    3.1.1打开浏览器192.168.1.112可以看到apache测试页面

    

    3.1.2配置修改

      配置文件/etc/httpd/conf/httpd.conf    /etc/httpd/conf.d/*.conf

      这里在httpd.conf或在conf.d下新建一个.conf结尾的配置文件均可。

      vim /etc/httpd/conf.d/fcgi.conf

DirectoryIndex index.php #主页为index.phpProxyRequests Off #关闭正向解析
ProxyPassMatch ^/(.*\.php)$  fcgi://192.168.1.113:9000/var/www/html/$1  #以.php结尾的都转发至php-fpm服务器下的/var/www/html下

        /var/www/html可以自己定义,前提是在php-fpm服务器上要创建相应的目录           


3.2 php-fpm服务器与httpd服务器连接

           3.2.1配置文件 /etc/php-fpm.d/www.conf

  listen = 192.168.1.113:9000 #监听的本机的地址和端口  listen.allowed_clients = 192.168.1.112 #允许httpd服务器转发过来

        此时就将httpd和php-fpm服务器建立连接了

     3.2.2测试一下

      在php-fpm服务器的/var/www/html目录下新建一个index.php内容如下 

<?php       phpinfo();    ?>

        此时再进入192.168.1.112即可看到php-fpm的详细信息

CentOS下主机分离搭建基于FCGI的LAMP


    3.3将mariadb与php-fpm连接

    3.3.1配置mariadb服务器

     在mariadb服务器上为php-fpm服务器添加一个可以访问的用户

 MariaDB>grant all on *.* to test@'192.168.%.%' identified by 'test';  MariaDB> flush privileges;

        编辑/etc/my.cnf

    在 [mysqld]下方添加

 skip_name_resolve = ON

        3.3.2配置php-fpm服务器

    安装php-mysql驱动

yum install php-mysql -y

        测试一下php-fpm服务器和mariadb服务器

    编辑php-fpm服务器下的/var/php/index.php

 <?php    $con = mysql_connect('192.168.1.114','test','test');    if ($con)        echo "OK";    else        echo "failed";        phpinfo();      ?>

再次打开192.168.1.112网址可以看到

CentOS下主机分离搭建基于FCGI的LAMP

至此,已经连接完毕。


接下来搭建wordpress、phpmyadminxcache


规划

第一台192.168.1.112 httpd服务器
第二台192.168.1.113 php-fpm服务器
第三台192.168.1.114 mariadb服务器

 1、安装xcache(在epel源中)

[root@localhost html]# yum install -y php-xcache[root@localhost html]# systemctl reload php-fpm

 

  2、安装phpMyAdmin(在php-fpm服务器中)

      下载地址为https://www.phpmyadmin.net/downloads/

       下载好后解压

[root@localhost html]# unzip phpMyAdmin-4.0.5-all-languages.zip -d pma

为phpmyadmin创建数据库和数据库用户名(在数据库服务器中执行)

mysql>create database pma;  # 创建一个名为pma的数据库,后面的;号不能省略 mysql> grant all on pma.* to 用户名@localhost identified by '密码';

 

   配置

[root@localhost html]# cd pma[root@localhost pma]# cp config.sample.inc.php config.inc.php[root@localhost pma]# vim config.inc.php    $cfg['blowfish_secret'] = 'a8b7c6d';    $cfg['Servers'][$i]['host'] = '192.168.1.106'    [root@localhost pma]# yum -y install php-mbstring #若提示mbstring错误,安装即可。

3、安装wordpress(在PHP服务器中)

        下载地址为https://cn.wordpress.org/wordpress-4.5.1-zh_CN.zip


为wordpress创建数据库和数据库用户名(数据库服务器操作)

mysql>create database wordpress;  # 创建一个名为wordpress的数据库,后面的;号不能省略 mysql> grant all on wordpress.* to 用户名@localhost identified by '密码';

接下来就是将下载的wordpress包解压到/var/www/html/目录下

tar xf /path/to/wordpress.tar.gz /var/www/html/


进入此目录,将wp-config-sample.php 复制一份并命名为wp-config.php。(这是wordpress的配置模版)

修改wp-config.php文件

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** ///** WordPress数据库的名称 */define('DB_NAME', 'wordpress'); /** MySQL数据库用户名 */define('DB_USER', '用户名'); /** MySQL数据库密码 */define('DB_PASSWORD', '密码');



本文出自 “我的学习笔记” 博客,请务必保留此出处http://zhaoyongtao.blog.51cto.com/10955972/1765813