fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

lamp架构wordpress和discuzx教程

  • 背景
    • 虚拟主机
    • fastcgi
  • 部署流程
    • 部署架构
      • 环境
      • 架构图
    • 编译软件
      • 安装开发环境和必要的包
      • 编译httpd
      • 编译php
      • 安装mariadb
    • 配置文件修改
      • 修改httpd主机
      • 修改fast-cgi主机
      • 配置mysql
      • 宿主机的hosts文件修改
      • 安装wordpress和Discuzx

背景

虚拟主机

  如今服务器的配置提升明显,单一主机上部署单一网站会对主机造成大量的性能损失,因此web服务虚拟主机的技术应运而生。所谓虚拟主机指的是在一台机器上运行多个网站(如company1.example.com和company2.example.com)的做法 。虚拟主机可以是“ 基于IP的 ”,这意味着每个网站都有不同的IP地址,或者“ 基于名称 ”,这意味着每个IP地址上都有多个名称,或者“基于端口”,这意味着在同一ip的不同端口上提供不同的网站,通过这些方法使得他们在同一台物理服务器上运行的事实对最终用户来说并不明显。
  Apache是第一批支持基于IP的虚拟主机的服务器之一。Apache的版本1.1及更高版本支持基于IP和基于名称的虚拟主机(虚拟主机)。虚拟主机的后一种变型有时也被称为基于主机的或非IP虚拟主机。
  

fastcgi

  FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。
FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。
  
  

部署流程

  

部署架构

  

环境

  
3台主机用于分别部署httpd,php和mysql,实现分离
软件版本

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程
  

架构图

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

编译软件


这里我们需要编译的软件为httpd和php,mysql可以考虑使用二进制包或者直接官方yum安装
  

安装开发环境和必要的包

1.安装centos开发工具包

yum groupinstall "development tools" -y

2.安装编译httpd和php需要的包

#部分包需要epel源 
#yum install epel-release -y
yum install pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel libmcrypt-devel -y

编译httpd

这里在192.168.99.130机器上编译httpd2.4

1.创建apache用户

useradd -r apache -s /sbin/nologin

2.解压httpd,apr,apr-util源码包,这里需要的包均可在httpd官网下到

tar xvf httpd-2.4.33.tar.bz2
tar xvf apr-1.6.2.tar.gz
tar xvf apr-util-1.6.1.tar.gz

3.编译httpd

#移动解压的apr和apr-util到指定的httpd源码目录可以省去分别编译3个程序
 mv apr-1.6.2 httpd-2.4.33/srclib/apr
 mv apr-util-1.6.1 httpd-2.4.33/srclib/apr-util

#编译参数,具体含义可以参考./configure的帮助文档或者官方文档
./configure \
--prefix=/app/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork

make && make install

4.配置环境变量

vim /etc/profile.d/httpd.sh

PATH=/app/httpd24/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

source /etc/profile.d/httpd.sh

编译php

由于这里为了实现多机分离,因此在192.168.99.131主机上进行编译

1.解压PHP源码

tar xvf php-7.1.18.tar.bz2

2.进入目录

#编译参数
./configure \
--prefix=/app/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-openssl \
--with-pdo-mysql=mysqlnd \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--enable-sockets \
--enable-fpm \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-maintainer-zts \
--disable-fileinfo

make && make install

3.配置文件设置

cd php-7.1.18/
cp php.ini-production /etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#给予执行权限
chmod +x /etc/init.d/php-fpm
#添加到服务中
chkconfig --add php-fpm
#设置开机启动
chkconfig php-fpm on

cd /app/php/etc
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
service php-fpm start

安装mariadb

  
这里不再多谈maraidb安装,之前的博客有很详细的mariadb部署细节。这里推荐直接yum安装就好。
  
  

配置文件修改

修改httpd主机

  

1.支持代理模块

vim /app/httpd24/conf/httpd.conf

#取消下面两行的注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

#修改下面行
<IfModule dir_module>
DirectoryIndex index.php index.html

2.编辑虚拟主机配置

<VirtualHost *:80>
  DocumentRoot "/data/web1/wp"
  ServerName www.douma.com
  ErrorLog "logs/a.com.error_log"
  TransferLog "logs/a.com-access_log"
  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps
  ProxyRequests Off
  ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.99.131:9000/app/web1/wp/$1
<directory "/data/web1/wp">
require all granted
</directory>
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "/data/web2/dz"
  ServerName www.fansity.com
  ErrorLog "logs/b.com.error_log"
  TransferLog "logs/b.com-access_log"
<directory "/data/web2/dz">
require all granted
</directory>
  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps
  ProxyRequests Off
  ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.99.131:9000/app/web2/dz/$1
</VirtualHost>

3.创建站点目录

# httpd主机
 mkdir -pv /data/web{1,2}
#wordpress
 tar xvf wordpress-4.9.4-zh_CN.tar.gz
 mv wordpress web1/
 cd web1
 ln -sv wordpress wp
 #修改配置文件
 vim web1/wp/wp-config-sample.php
 mv wp-config-sample.php wp-config.php

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

wordpress基本配置完成,之后复制到fast-cgi机器的对应目录(要先在对应主机创建好目录)

scp -pr wordpress 192.168.99.131:/app/web1/

安装Discuzx

cd /data/web2/
git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git
cp -a DiscuzX/upload web2/
ln -sv upload dz

复制文件到fast-cgi主机(要在另一台主机创建好对应目录)

scp -pr upload 192.168.99.131:/app/web2/

4.启动httpd服务

apachectl start

修改fast-cgi主机

  
1.站点目录修改

#创建对应目录,要在httpd主机复制文件到fast-cgi之前
mkdir -pv /app/web{1,2}

#创建软连接
cd /app/web1
ln -sv wordpress wp

#复制配置文件并且修改
mv wordpress/wp-config-simple.php  wordpress/wp-config.php 
vim  wordpress/wp-config.php 

cd /app/web2
ln -sv upload dz

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

2.php修改,并添加apache用户

useradd -r apache -s /sbin/nologin
vim /app/php/etc/php-fpm.d/www.conf

#修改运行用户为apache
#修改监听ip
#注释掉仅仅允许本机访问

#重新启动php-fpm
service php-fpm restart

#由于论坛安装时候会修改文件所以要给upload目录添加apache的权限

setfacl -R -m u:apache:rwx /app/web2/upload/

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

配置mysql

  
1.创建账号

MariaDB [(none)]> grant all on *.* to admin identified by 'admin';
#刷新权限
MariaDB [(none)]> flush privileges;

2.创建wp数据库,论坛会在安装时候自动创建

MariaDB [(none)]> create database wp;

宿主机的hosts文件修改

  
由于是基于域名的虚拟主机,所以在没有DNS的情况下,要想正常访问,就要在宿主机上修稿hosts文件

#win
C:\Windows\System32\drivers\etc\hosts
#linux
/etc/hosts

#添加如下信息
192.168.99.130  www.douma.com
192.168.99.130  www.fansity.com

安装wordpress和Discuzx

  
1.安装wordpress
在宿主机浏览器上打开www.douma.com
会自动跳转到安装页面
配置好对应信息点击安装wordpress

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

2.安装Discuzx
在宿主机浏览器上打开www.fansity.com
自动跳转到安装页面

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

点击同意

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

点击下一步

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

继续下一步

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

填写完成后点击下一步进行自动安装

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

安装完成

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

点击右下角的跳转到论坛

fastcgi分离和lamp虚拟主机部署wordpress和discuzx教程

正常访问,这里论坛基本配置完成。

总结

技术交流请加入我们QQ群 81885552 关注我们学派吧。

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/server/980.html

(0)
打赏 微信扫一扫 微信扫一扫
云大使的头像云大使
上一篇 2018年10月11日 下午2:30
下一篇 2018年10月16日 下午9:18

相关推荐

  • 阿里云CentOS/linux主机挂载OSS存储服务步骤及教程

    前言 现在很多朋友选择使用了阿里云、如何在阿里云ecs主机上挂载oss存储,在服务器上通过本地文件系统操作OSS 上的对象?阿里云提供一个ossfs的程序,不用我们再次使用api开发, 直接就能使用。步骤比较简单,按照官方文档基本可以完成。 准备条件 您需要有一个ecs云主机,创建Access Key和对应的OSS对象。 安装依赖 yum install a…

    2018年10月10日
    6.0K00
  • 学派吧-详解win2008 IP安全策略下配置一个IP段的写法-windows教程

    这篇文章主要介绍了win2008 IP安全策略下配置一个IP段的写法,需要的朋友可以参考下 可以指定单个 IP 地址或者 IPv4 或 IPv6 地址的子网。若要指定子网,请使用与下面类似的语法输入 IP 地址: 192.168.1.0/24 正斜杠 (/) 后面的数字表示子网掩码中的位数。可能为 32 位。在本示例中,24 表示前三个八进制数是子网地址,最…

    服务器运维 2018年12月10日
    3.0K00
  • 腾讯云跨账号内网互通创建对等连接通信

    VPC 跨地域通信以及跨账号通信都是对等连接的高级功能,本文将通过示例,为您介绍如何实现跨账号通信。 示例说明 网段1:广州的 VPC1 中子网 A 192.168.1.0/24。 网段2:北京的 VPC2 中子网 B 10.0.1.0/24。 通过跨账号创建对等连接,实现网段1和网段2互通,需要三个步骤,具体操作请参见下文。 步骤 1:创建对等连接 登录 …

    2022年3月4日
    3.6K00
  • centos及linux负载过高的解决方法

    linux越来越普及、各种面板的出现。造成了很多新手朋友都在使用linux 但是 出了问题不知道如何处理 今天把负载这块整理出来。仅供大家参考。使用uptime命令查看机器负载。 uptime //输出 up 1 day, 23:14, 2 users, load averages: 1.69 2.21 2.09 平均负载表示1、5、15分钟进程队列中的平均…

    服务器运维 2018年10月21日
    6.4K00
  • 如何准确的对于安全组使用新的限制-linux运维-学派吧

    本篇文章给大家带来的内容是关于如何准确的对于安全组使用新的限制 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 安全组新使用限制 可以调整安全组规则的数量上限吗? 不可以,每个安全组最多可以包含 100 条安全组规则。如果当前数量上限无法满足您的使用需求,建议您按照以下步骤操作: 检查是否存在冗余规则。您也可以提交工单,阿里云技术支持将提供…

    服务器运维 2018年11月21日
    2.6K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部
---------官方优惠叠加渠道折扣:通过我们购买腾讯云/阿里云,价格更低,服务更优。更有专业配置指导与服务。微信同步:18838889666----