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

相关推荐

  • vi /etc/fstab开机挂载及使用教程分享-学派吧

    某些时候当Linux系统下划分了新的分区后,需要将这些分区设置为开机自动挂载,否则,Linux是无法使用新建的分区的。 /etc/fstab 文件负责配置Linux开机时自动挂载的分区。 Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C,D,E,F等。Linux的文件结构是单个的树状结构。最顶部的为根目录,即/。在根目录下,…

    服务器运维 2019年4月20日
    4.5K00
  • 幻兽帕鲁windows腾讯云服务器快捷部署教程

    想要部署属于自己的幻兽帕鲁服务器(Dedicated Server),您首先需要拥有一台服务器,服务器是幻兽帕鲁运行的基础。部署完成后,您和您的朋友便可以登入专属的游戏服进行体验。使用云服务器搭建幻兽帕鲁服务器,便可以让您与您的朋友在一个相对独立且私密的空间中进行游戏,确保获得更加畅快的游戏体验。 您可以选择腾讯云轻量应用服务器作为游戏服务器,并按照下面教程…

    2024年1月24日
    4.0K10
  • Apache如何禁止访问目录-Linux运维-学派吧

    有需要服务器方面的需求和咨询,可以联系博主 QQ 7271895 本文将详细介绍如何操作禁止显示apache网站根目录 进入apache的配置文件 httpd.conf 找到: vim /etc/httpd/conf/httpd.conf Options Indexes FollowSymLinks 修改为: Options FollowSymLinks 其…

    服务器运维 2018年9月30日
    2.2K00
  • 如何处理cenots,linux服务器负载高问题排除方法-学派吧

    前言 这几天碰到几个负载过高的情况、今天整理下排除方法。供大家参考、如果有需要服务器、切不懂运维的可以找我们。QQ7271895linux服务器出现高负载的情况下,一般都有一些具体的症状,比如cpu、内存等被耗尽,磁盘IO或者网络等出现问题,下面通过具体命令去分析解决高负载的问题 工具 centos6.5_x64htop 、collectl、 iotop、 …

    2018年10月23日
    2.5K00
  • 腾讯云linux系统 initramfs 或 initrd 损坏/丢失

    现象描述 执行命令或系统启动的过程中,出现 VFS: Unable to mount root fs on unknow-block 或者 error:file ‘/boot/initramfs-`uname -r`.img’ not found 等报错信息。 可能原因 1. 系统启动失败,输出 VFS: Unable to moun…

    2024年10月11日
    2.5K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

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

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