CentOS 7 部署LAMP架构(独立服务模式)

细节要求:(1) 三者分离于三台主机,Httpd与PHP以FastCGI模式通讯;

(2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;

(3) 部署PHP加速器:xcache;

一、准备CentOS 7主机环境以及Repo仓库提供基于rpm安装包方式的程序包安装源

安装主机程序包规划:

主机1:web-server(192.168.1.132)  –安装httpd(2.4.6)

主机2:php-server(192.168.1.200)  –安装php-fpm(5.4.16),php-mysql,xcache,第三方软件wordpress.phpMyAdmin

主机3:db-server(192.168.1.201)    –安装mariadb-server(5.5.52)

3台主机均关闭selinux进程

二、web-server主机服务包与程序安装过程

#yum install httpd  -y                                                        –安装httpd服务

#systemctl enable httpd.service                                        –设置httpd服务开机自动运行

#systemctl start httpd.service                                            –启动httpd服务进程

#systemctl status httpd.serice                                            –查看httpd服务进程状态

#firewall-cmd –permanent –add-service=http               –设置防火墙允许http服务策略

#firewall-cmd –reload                                                      –加载防火墙策略

#ss -tnl | grep 80                                                               –查看httpd服务监听状态

#httpd -M | grep fcgi                                                        –查看httpd服务是否运行fastCGI调用模块

image.png

三、php-server主机安装过程

#yum install php-fpm php-mysql php-xcache  -y          –安装php-fpm服务

#yum install wordpress phpMyAdmin -y                        –安装第三方软件

#vim /etc/php-fpm.d/www/conf                                     –配置php-fpm服务参数

listen = 192.168.1.200:9000                                             –设置本机的socket监听服务

listen.allowed_clients = 192.168.1.132                             –设置允许访问php-fpm服务的客户端地址

#systemctl enable php-fpm.service                                 –启用php-fpm开机自动运行

#systemctl start php-fpm.service                                    –启动php-fpm服务进程

#systemctl status php-fpm.service                                  –查看服务进程状态

#firewall-cmd –permanent –add-port=9000/tcp          –设置防火墙允许php-fpm端口策略

#firewall-cmd –reload                                                     –加载防火墙策略

#ss -tnl | grep 9000                                                          –查看php-fpm服务的9000端口是否已启动并监听

#mkdir -pv /var/www/http/www                                     –创建测试web-server与php-server代理转发

#vim /var/www/http/www/index.php                              –创建测试页面

This is php-server

<?php

     phpinfo();

?>

测试结果

image.pngCentOS 7 部署LAMP架构(独立服务模式)

针对wordpress第三方软件的配置

#vim /etc/httpd/conf.d/wordpress.conf

<Directory /usr/share/wordpress>

  AllowOverride Options

  <IfModule mod_authz_core.c>

    # Apache 2.4

   Require all granted                                                   ##允许远程网络浏览访问资源

  </IfModule>

  <IfModule !mod_authz_core.c>

    # Apache 2.2

    Order Deny,Allow

    Deny from All

    Allow from 127.0.0.1

    Allow from ::1

</IfModule>

</Directory>

#vim /etc/wordpress/wp-config.php                                                  –定义访问远程mariadb数据的信息

// ** MySQL settings – You can get this info from your web host ** //

/** The name of the database for WordPress */

define('DB_NAME', 'test');

/** MySQL database username */

define('DB_USER', 'wordpress');

/** MySQL database password */

define('DB_PASSWORD', 'redhat');

/** MySQL hostname */

define('DB_HOST', '192.168.1.201');

/** Database Charset to use in creating database tables. */

define('DB_CHARSET', 'utf8');

针对phpMyAdmin第三方软件的配置

#vim /etc/httpd/conf.d/phpMyAdmin.conf

<Directory /usr/share/phpMyAdmin/>

   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>

     # Apache 2.4

     <RequireAny>

       Require all granted                                                         ##允许远程网络浏览访问资源

       Require ip ::1

     </RequireAny>

   </IfModule>

   <IfModule !mod_authz_core.c>

     # Apache 2.2

     Order Deny,Allow

     Deny from All

     Allow from 127.0.0.1

     Allow from ::1

   </IfModule>

</Directory>

#vim /etc/phpMyAdmin/config.inc.php                              –仅指定远程mariadb数据库IP地址即可,其他保留默认

// The $cfg['Servers'] array starts with $cfg['Servers'][1].  Do not use

// $cfg['Servers'][0]. You can disable a server config entry by setting host

// to ''. If you want more than one server, just copy following section

// (including $i incrementation) serveral times. There is no need to define

// full server array, just define values you need to change.

$i++;

$cfg['Servers'][$i]['host']          = '192.168.1.201'; // MySQL hostname or IP address

$cfg['Servers'][$i]['port']          = '';          // MySQL port – leave blank for default port

$cfg['Servers'][$i]['socket']        = '';          // Path to the socket – leave blank for default socket

$cfg['Servers'][$i]['connect_type']  = 'tcp';       // How to connect to MySQL server ('tcp' or 'socket')

$cfg['Servers'][$i]['extension']     = 'mysqli';    // The php MySQL extension to use ('mysql' or 'mysqli')

$cfg['Servers'][$i]['compress']      = FALSE;       // Use compressed protocol for the MySQL connection

                                                    // (requires PHP >= 4.3.0)

$cfg['Servers'][$i]['controluser']   = '';          // MySQL control user settings

                                                    // (this user must have read-only

$cfg['Servers'][$i]['controlpass']   = '';          // access to the "mysql/user"

                                                    // and "mysql/db" tables).

                                                    // The controluser is also

四、db-server主机安装过程

#yum install mariadb-server -y                                        –安装mariadb数据库服务

#firewall-cmd –permanent –add-service=mysql           –设置防火墙允许mysql服务端口3306

#firewall-cmd –reload                                                     –加载防火墙策略

#vim /etc/my.cnf                                                              –修改mariadb配置文件

skip_name_resolve = ON                                                  –禁用数据库主机名解析

#systemctl enable mariadb.service                                  –启用mariadb服务开机自动运行

#systemctl start mariadb.service                                      –启动mariadb服务

#systemctl status mariadb.service                                    –查看服务进程状态

#ss -tnl | grep 3306                                                           –查看mysql端口监听状态

#/usr/bin/mysql_secure_install                                         –进行数据库初始化安装,设置root密码,是否允许远程访问管理等

#mysql -uroot -hlocalhost -p                                           –设置第三方程序访问数据库的账户权限

Mariadb[(none)]>grant all privileges on test.* to 'wordpress'@'192.168.1.%' identified by 'redhat';       –授予wordpress远程访问test数据库的权限

Mariadb[(none)]>grant all privileges on *.* to 'pmauser'@'192.168.1.%' identified by 'redhat';              –授予pmauser远程管理mariadb所有数据库的权限

五、web-server主机上创建虚拟主机,并设置php转发过程

#mkdir -pv /var/www/http/{www,wordpress,pma}                    –创建不同虚拟主机的主目录

#touch /var/www/http/{www,wordpress,pma}/index.php         –创建空的.php文件,提供FastCGI转发

#vim /etc/httpd/conf.d/virtualhost.conf                                    –创建并编辑针对虚拟主机的配置文件

<VirtualHost *:80>                                                                      ##测试FastCGI连通性

   ServerName www.test.com

   DocumentRoot /var/www/http/www

   DirectoryIndex index.php

   ProxyPassMatch "^/(.*\.php)$" "fcgi://192.168.1.200:9000/var/www/html/$1"

</VirtualHost>

<VirtualHost *:80>                                                                       ##测试phpMyAdmin

   ServerName pma.test.com

   DocumentRoot /var/www/http/pma

   DirectoryIndex index.php

   ProxyPassMatch "^/(.*\.php)$" "fcgi://192.168.1.200:9000/usr/share/phpMyAdmin/$1"

</VirtualHost>

<VirtualHost *:80>                                                                        ##测试wordpress

   ServerName wordpress.test.com

   DocumentRoot /var/www/http/wordpress

   DirectoryIndex index.php

   ProxyPassMatch "^/(.*\.php)$" "fcgi://192.168.1.200:9000/usr/share/wordpress/$1"

</VirtualHost>

六、验证虚拟主机访问

访问http://pma.test.com/phpmyadmin  虚拟主机

image.png

输入运行数据库远程访问的账户信息,打开图形化管理数据库的页面

image.png

访问http://wordpress.test.com 虚拟主机

image.png

原创文章,作者:N24_shishen,如若转载,请注明出处:http://www.178linux.com/69017

(0)
N24_shishenN24_shishen
上一篇 2017-02-17 08:48
下一篇 2017-02-17 16:42

相关推荐

  • linux用户权限管理

    用户: 管理员–root= 0 普通用户–(1-65535) 系统用户–(1-499),(1-999) 登录用户–(500+),(1000+) 用户和组的配置文件位置: /etc/passwd– 存储系统用户所有信息 /etc/group– 存储用户组的所有信息 /etc/shadow&…

    2017-04-02
  • 防火墙之iptables使用

    一、防火墙简介           Firewall:防火墙,隔离工具;工作于主机或网络边缘,对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测,对于能够被规则匹配到的报文作出相应处理的组件;        软件防火墙(软件逻辑):一般寄生在操作系统…

    2017-06-18
  • 马哥教育网络班22期第二周课程练习1-未闻花名

    1、Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touch 创建文件 mv 移动文件 rm 删除文件 rmdir 删除目录 1.1 pwd命令 该命令的英文解释为print working directory(打…

    Linux干货 2016-08-22
  • Linux基础知识之IO重定向

    该博文以CentOS6.8_x86_64系统为基础,Xshell 5远程连接CentOS系统,以root身份登录系统。  什么是I/O重定向?       所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块(codeblock)的输出,然后把捕捉到的输出,作为输入发送给…

    Linux干货 2016-07-26
  • class9 bash编程基础(一)

    一、编程基础 程序:指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令; 编程语言: 低级:汇编 高级: 编译:高级语言–> 编译器–> 目标代码   &n…

    Linux干货 2016-08-15
  • TCP 的那些事儿(上)

       TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另…

    Linux干货 2015-04-01

评论列表(2条)

  • luoweiro
    luoweiro 2017-02-23 07:31

    对于分开部署,后期学到nginx的时候,也可以多采用这种方式,但是要注意如果是多台机器如何做负载均衡,负载均衡的策略是怎样的?

    • N24_shishen
      N24_shishen 2017-02-24 10:58

      @luoweiro
      好的。有待后期继续学习新的知识点以后,在来更新。