我们的目标
实现CentOS 7 安装基于 fastcgi 模式的多虚拟主机的wordpress和discuz的LAMP架构
架构大概是下面图的样子:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/35c98998c70ed8ca1af7f5b654272f0a.png)
实验前先设置
在windows里配置: C:\Windows\System32\drivers\etc
10.0.0.7 blog.magedu.org forum.magedu.org
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a8bf12ff0f30c0f5bed6e96bd2c181e1.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5ed1823e851b2680a377618b52e2bd5a.png)
确认可以ping通
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a0eab098dbb8e80b3ea6a489410fbc8e.png)
实验开始
第一步:安装
首先,在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.%';
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b57475197da6957aee09c17a96c25c32.png)
然后需要在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可以看到
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7d292cde839d23641f51d160abb5de11.png)
接着,继续安装:安装 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
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/07ce3af361f48845bc717ce279bbb3f7.png)
查看9000端口已经打开
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/44fe5e45d80f63de44c50100f1ef47ea.png)
能到这一步的小伙伴,已经很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/
这个界面直接下一步:
至此安装完成
结果如图
论坛界面如下
谢谢观赏!