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)
打赏 微信扫一扫 微信扫一扫
nginx+php-fpm报错故障解决方法-及排查流程
上一篇 2018年10月11日 下午2:30
下一篇 2018年10月16日 下午9:18

相关推荐

  • centos(linux)系统盘硬盘扩容的方法教程-阿里云-景安云

    今天抽了时间。准备搞了一台服务器、做一个cenots 硬盘无损数据的扩容测试-感谢商祺云提供的云服务器测试 本文提供了如何使用growpart和resize2fs工具完成Linux系统盘分区扩容及文件系统扩展的操作指导。 适用范围 本文的操作步骤适用于以下分区和文件系统格式的云盘: 分区格式支持mbr、gpt 文件系统支持ext*、xfs、btrfs 准备工…

    服务器运维 2019年7月2日
    6.1K00
  • 阿里云磁盘扩容 unexpected output in sfdisk解决方法

    现在使用阿里云 腾讯云的服务器用户越来越多,很多用户只有系统盘一个磁盘。时间长了以后,会造成系统盘不够使用的情况。然后进行扩容 参考阿里云扩容教程 有时会进行报错 :unexpected output in sfdisk –version [sfdisk,来自 util-linux 2.23.2] 扩容教程:https://www.xp8.net…

    2021年1月14日
    4.3K00
  • linux共享上网设置的实例教程分析

    这篇文章主要介绍了linux共享上网设置实例详解的相关资料,需要的朋友可以参考下 如果您有服务器咨询问题、购买问题、可以联系我们客服 7271895 690624商祺云-阿里代理、景安代理、西部代理 linux共享上网设置 1、打开内核ip转发 vi /etc/sysctl.conf net.ipv4.ip_forward = 1 执行sysctrl -p生…

    服务器运维 2019年1月4日
    3.2K00
  • win2008R2安装server2008 不能打开1433端口的解决方法教程-windows教程-学派吧

    这篇文章主要介绍了win2008 r2安装SQL SERVER 2008 R2 不能打开1433端口设置方法,需要的朋友可以参考下 服务器:WINDOWS SERVER 2008 R2 SQL:SQL SERVER 2008 R2 背景:同一个公司同一个局域网 网络可以ping通 但是不能连接服务器数据库 提示错误1326 前期设置: 经过前期设置都不行 t…

    服务器运维 2018年12月2日
    5.7K00
  • Linux学习一之虚拟机和镜像文件安装配置教程方法

    这篇文章主要为大家详细介绍了Linux学习第一篇,虚拟机和镜像文件安装配置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 如果您有服务器咨询问题、购买问题、可以联系我们客服 7271895 690624商祺云-阿里代理、景安代理、西部代理 一、安装虚拟机(本文以vmware workstation 12为例) 1.在网上所有虚拟机并下载。 2.找到下载文…

    2019年1月4日
    2.6K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

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

添加微信
添加微信
分享本页
返回顶部