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
下一篇 2017-02-17

相关推荐

  • 文件通配符与命令行扩展

    * 匹配零个或多个字符 ? 匹配任何单个字符 ~ 当前用户家目录 ~mage 用户mage家目录 ~+ 当前工作目录 ~- 前一个工作目录 [0-9] 匹配数字范围 [a-z] 字母 [A-Z]字母          [a-Z] 会以aAbBcC…小大小大列出,特别要注意 [wang] 匹配列表中的任何的一个字符 [^wang]匹配列表中的所有字…

    2017-11-12
  • 软件包管理

    软件包管理 在linux中有人多的软件使用,比如我们使用的ifconfig,fdisk,btrfs文件系统等。可能这些软件在你原有的linux系统中并不存在,那么我们如何去使用这些工具呢。我们知道windows在需要软件的时候需要安装,当然对于linux系统一样需要安装。在linux下常用的安装工具我们使用的是rpm程序包(当然我们这边是针对CentOS而言…

    Linux干货 2016-08-19
  • Python基础—内置数据类型

    一、简介              如果你用过C或者C++,你该知道你的许多工作集中在实现数据结构上面。你需要管理内存分配,部署内存结构等等。这些东西比较乏味,通常会让你无法集中在真正想实现的目标上面。    …

    Linux干货 2015-11-10
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 1 2  ~]# who |sort -nu root     pts/0        2016…

    Linux干货 2016-12-21
  • Linux运维之路基础学习四

    当文件的权限不能满足某个用户时,ACL是一个好办法

    Linux干货 2017-12-03
  • N22-第二周作业

    一.linux上的文件管理命令都有哪些,其常用的使用方法及其相关示例演示     cp复制命令:     -i:若目标文件存在,提示是否覆盖目标文件,此选项为已写入alias里,使用时为默认选项     [root@localhost ~]# ls /tmp/…

    Linux干货 2016-08-20

评论列表(2条)

  • luoweiro
    luoweiro 2017-02-23 07:31

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

    • N24_shishen
      N24_shishen 2017-02-24 10:58

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