如何基于安装FASTCGI模式LAMP架构多虚拟主机WEB应用(blog和forum)

我们的目标
实现CentOS 7 安装基于 fastcgi 模式的多虚拟主机的wordpress和discuz的LAMP架构

架构大概是下面图的样子:
在这里插入图片描述
实验前先设置

在windows里配置: C:\Windows\System32\drivers\etc
10.0.0.7 blog.magedu.org forum.magedu.org
在这里插入图片描述
在这里插入图片描述
确认可以ping通
在这里插入图片描述
实验开始

第一步:安装

首先,在8上安装mysql 8.0版本

[root@Centos8 ~]#yum -y install mysql-server

(具体安装步骤,请参考我另一篇博客https://blog.csdn.net/Lcongming/article/details/117390545)
个人建议,编译和二进制安装固然可以提醒高水平,但是适合自己的才是最好的,拐弯抹角拒绝承认我很菜~
在这里插入图片描述
安装启动mysql后
创建两个用户blog和forum (配图是因为我水平一般,没有图,我也看不懂!)

create database blog;
create database forum;

在这里插入图片描述
创建账号

create user blog@'10.0.0.%' identified by '123456';
create user forum@'10.0.0.%' identified by '123456';

在这里插入图片描述
授权:

grant all on blog.* to blog@'10.0.0.%';
grant all on forum.* to forum@'10.0.0.%';

在这里插入图片描述
然后需要在7上安装apache

听说7的情况比较特殊,在这,用编译安装 httpd 2.4.46
首先安装相关的包; yum install gcc pcre-devel openssl-devel expat-devel -y
然后解压相关的三个包;
tar xf apr-1.7.0.tar.gz
tar xf apr-util-1.6.1.tar.gz
tar xvf httpd-2.4.46.tar.bz2
友情提醒:解压bz2还需要安装yum -y install lbzip2
在这里插入图片描述
将两个文件转移到2.4.46下

mv apr-1.7.0 httpd-2.4.46/srclib/apr
mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util

在这里插入图片描述
切换到2.4.46
进入目录开始编译;

cd httpd-2.4.46/
[root@centos7 httpd-2.4.46]#./configure \
> --prefix=/apps/httpd \
> --enable-so \
> --enable-ssl \
> --enable-cgi \
> --enable-rewrite \
> --with-zlib \
> --with-pcre \
> --with-included-apr \
> --enable-modules=most \
> --enable-mpms-shared=all \
> --with-mpm=event

脚本原件(可直接复制使用)
–prefix=/apps/httpd
–enable-so
–enable-ssl
–enable-cgi
–enable-rewrite
–with-zlib
–with-pcre
–with-included-apr
–enable-modules=most
–enable-mpms-shared=all
–with-mpm=event
在这里插入图片描述
按回车后 执行完毕了 再执行

 make && make install

接着准备httpd2.4.46PATH变量
执行vim /etc/profile.d/lamp.sh
输入PATH=/apps/httpd/bin:$PATH
然后执行变量 (以下两种方法都可以)

source /etc/profile.d/lamp.sh
. /etc/profile.d/lamp.sh

#创建和配置用户和组
useradd -s /sbin/nologin -r -u 88 apache 创建这一步基本可以忽略,因为开头都有安装,检查一下也是可以
配置用户和组
在httpd.conf下需要做一下修改 vim /apps/httpd/conf/httpd.conf

user apache
group apache

在这里插入图片描述
检查#修改为event模式,编译时已指定,此项不再需修改,可选项
在这里插入图片描述
注释掉ServerName www.example.com:80
在这里插入图片描述
保存退出后执行执行 httpd -M |grep mpm 检查
在这里插入图片描述
在这里插入图片描述
到这一步可以执行启动服务 apachectl start
执行vim /usr/lib/systemd/system/httpd.service 输入以下配置内容

[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[Service]
Type=forking
ExecStart=/apps/httpd/bin/apachectl start
ExecReload=/apps/httpd/bin/apachectl graceful
ExecStop=/apps/httpd/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target

脚本可以直接复制:
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[Service]
Type=forking
ExecStart=/apps/httpd/bin/apachectl start
ExecReload=/apps/httpd/bin/apachectl graceful
ExecStop=/apps/httpd/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target

执行apachectl restart
这会在网页查看10.0.0.7可以看到
在这里插入图片描述
接着,继续安装:安装 fastcgi 方式的 php 7.4

#php 7.4 相关包 执行:

yum -y install gcc libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel oniguruma-devel

(提醒,这一步安装是一定要确认epel源有打开,不然下载的不全;)
在这里插入图片描述
ph7.4.19进行编译
要先将上传的软件解压tar xvf php-7.4.19.tar.gz 步骤如下图:
在这里插入图片描述
步骤如下:

[root@centos7 ~]#tar xvf php-7.4.19.tar.gz
[root@centos7 ~]#cd php-7.4.19/
[root@centos7 php-7.4.19]#./configure \
--prefix=/apps/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-zlib \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-mbstring \
--enable-xml \
--enable-sockets \
--enable-fpm \
--enable-maintainer-zts \
--disable-fileinfo

执行结果如图
在这里插入图片描述
然后执行安装:make -j 8 && make install这里的数字是自己设置的cpu数,我设置的是8 按自己设置大小操作
执行完最好查看一下是否成功,避免遗漏了哪一步导致最后功亏一篑
在这里插入图片描述
#准备PATH7.4.19变量
执行 vim /etc/profile.d/lamp.sh
编辑 这一行 PATH=/apps/php/bin:/apps/httpd/bin:$PATH 后保存退出
执行变量 source /etc/profile.d/lamp.sh
变量是否设置的区别
设置之前查看软件版本是这样
在这里插入图片描述
设置变量后查看版本
在这里插入图片描述
接着准备php配置ini文件和启动文件 这一步没什么难度,直接复制粘结回车即可 步骤如下:

[root@centos7 php-7.4.19]#cp php.ini-production /etc/php.ini
[root@centos7 php-7.4.19]#cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
[root@centos7 php-7.4.19]#cd /apps/php/etc
[root@centos7 etc]#cp php-fpm.conf.default php-fpm.conf
[root@centos7 etc]#cd php-fpm.d/
[root@centos7 php-fpm.d]#cp www.conf.default www.conf

到这一步#修改进程所有者 会比较重要 ,要特别留意了:在vim /apps/php/etc/php-fpm.d/www.conf里面
在这里插入图片描述
在这里插入图片描述
然后开启opcache加速 默认有op模块

mkdir /etc/php.d/  
vim /etc/php.d/opcache.ini

输入内容如下:

[opcache]
zend_extension=opcache.so
opcache.enable=1

在这里插入图片描述
然后执行:

systemctl daemon-reload
#systemctl status php-fpm.service  #(这一步可不操作,看个人习惯)
systemctl enable --now php-fpm.service

在这里插入图片描述
查看9000端口已经打开
在这里插入图片描述
能到这一步的小伙伴,已经很nice了。但是后面还有一些设置,耐心一下;
设置apache

修改配置 httpd 支持 php-fpm

vim /apps/httpd/conf/httpd.conf

需要做如下更改:

==============================================================
#取消下面两行的注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
目的是打开反向代理proxy ;如图所示:
在这里插入图片描述
#修改下面行

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

在这里插入图片描述
#在文本最底部先加下面2行

AddType application/x-httpd-php .php
ProxyRequests Off

在这里插入图片描述
再设置blog和forum两个虚拟主机;

<virtualhost *:80>
servername blog.magedu.org
documentroot /data/blog
<directory /data/blog>
require all granted
</directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/blog/$1
#实现status和ping页面
ProxyPassMatch ^/(fpm_status|ping)$ fcgi://127.0.0.1:9000/$1
CustomLog "logs/access_blog_log" common
</virtualhost>

<virtualhost *:80>
servername forum.magedu.org
documentroot /data/forum
<directory /data/forum/>
require all granted
</directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/forum/$1
CustomLog "logs/access_forum_log" common
</virtualhost>

示例如图:在这里插入图片描述
启动 systemctl restart httpd.service
用ss -ntl查看 端口 80 开启了

==================================================================

最后准备wordpress和discuz! 相关文件
准备blog和forum两个文件用来存放网页 要先单独建立两个文件夹:
mkdir blog forum
在这里插入图片描述
将下载好的latest-zh_CN.tar.gz 进行解压 得到WordPress
在这里插入图片描述
将文件移动到data下的blog里:

[root@centos7 ~]#mv wordpress/* /data/blog/

还有一个是论坛:Discuz
而由于该软件文件过多,放在单独一个文件夹

root@centos7 ~]#mv Discuz_X3.4_SC_UTF8_20210320.zip  /opt
[root@centos7 ~]#cd /opt
[root@centos7 opt]#ls
Discuz_X3.4_SC_UTF8_20210320.zip  

zip文件执行用unzip进行解压

[root@centos7 opt]#unzip Discuz_X3.4_SC_UTF8_20210320.zip 

进行解压 解压后文件在这里插入图片描述
然后将upload移动到forum中

[root@centos7 opt]#mv upload/* /data/forum

设置所有data下的数据权限

[root@centos7 ~]#chown -R apache.apache /data/*

第二步:测试访问

在网页输入http://blog.magedu.org
在这里插入图片描述
提交后填写个人信息
在这里插入图片描述
在这里插入图片描述
登录界面
在这里插入图片描述
在这个界面可以开始写文章等操作了
在这里插入图片描述
写了文章就可以直接发表了
在这里插入图片描述
继续测试 http://forum.magedu.org/
在这里插入图片描述
这个界面直接下一步:
在这里插入图片描述
在这里插入图片描述至此安装完成
在这里插入图片描述
结果如图
在这里插入图片描述
论坛界面如下在这里插入图片描述
谢谢观赏!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值