编译安装基于fastcgi模式的多虚拟主机的wordpress和discuz的LAMP架构

实现CentOS 7 编译安装基于 fastcgi 模式的多虚拟主机的wordpress和discuz的LAMP架构

1 实验架构

在这里插入图片描述

2 环境准备

两台主机:

  • 一台主机:httpd+php(fastcgi模式)
  • 一台主机:mariadb 服务器

软件版本:

  • CentOS 7.9
  • mariadb-10.2.44-linux-systemd-x86_64.tar.gz通用二进制格式
  • apr-1.7.0.tar.bz2
  • apr-util-1.6.1.tar.bz2
  • httpd-2.4.46.tar.bz2
  • php-7.4.29.tar.gz
  • wordpress-6.0-zh_CN.tar.gz
  • Discuz_X3.4_SC_UTF8_20210926.zip
3 实现步骤
3.1 二进制安装 mariadb
1.修改主机名
[root@centos8:~]#
hostname mariadb && exit

2.下载解压程序包
[root@mariadb:~]#
wget https://mirrors.bkns.vn/mariadb//mariadb-10.2.44/bintar-linux-systemd-x86_64/mariadb-10.2.44-linux-systemd-x86_64.tar.gz
[root@mariadb:~]#
tar xvf mariadb-10.2.44-linux-systemd-x86_64.tar.gz  -C /usr/local

3.创建软连接,并新建对应目录和修改文件夹主组
[root@mariadb:~]#
cd /usr/local
[root@mariadb:/usr/local]#
ln -sv mariadb-10.2.44-linux-systemd-x86_64 mysql
[root@mariadb:/usr/local]#
cd /usr/local/mysql
[root@mariadb:/usr/local/mysql]#
chown -R root.root /usr/local/mysql/*
[root@mariadb:/usr/local/mysql]#
mkdir /data/mysql -p
[root@mariadb:/usr/local/mysql]#
chown -R mysql.mysql /data/mysql

4.拷贝配置文件并进行修改路径
[root@mariadb:/usr/local/mysql]#
cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf  #新版mariadb的没有my-huge.cnf文件,自己去下载
[root@mariadb:/usr/local/mysql]#
vim /etc/my.cnf     
datadir =/data/mysql
skip_name_resolve = ON

5.准备环境变量
[root@mariadb:/usr/local/mysql]#
echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/lamp.sh
[root@mariadb:/usr/local/mysql]#
. /etc/profile.d/lamp.sh

6.安装依赖包
[root@mariadb:/usr/local/mysql]#
yum -y install libaio

7.执行安装脚本
[root@mariadb:/usr/local/mysql]#
 /usr/local/mysql/scripts/mysql_install_db  --datadir=/data/mysql --user=mysql

8.设置开机启动
[root@mariadb:/usr/local/mysql]#
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@mariadb:/usr/local/mysql]#
chkconfig --add mysqld
[root@mariadb:/usr/local/mysql]#
systemctl enable --now mysqld

9.启动MySQL          
如果提示mysql: error while loading shared libraries: /lib64/libncurses.so.5: file too short 则安装依赖包
[root@centos8:/usr/local/mysql]#
yum install ncurses-compat-libs

10.为Wordpress和discuz应用创建数据库和账号
MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create database discuz;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on wordpress.* to wordpress@'10.0.0.%' identified by "wppass";
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> grant all on discuz.* to discuz@'10.0.0.%' identified by "dispass";
Query OK, 0 rows affected (0.00 sec)

3.2 编译安装 httpd 2.4
1.修改主机名
[root@centos7:~]#
hostname fastcgi && exit

2.安装相关依赖包
yum install gcc pcre-devel openssl-devel expat-devel -y

3.上传解压源码包,安装lrzsz,直接多送文件到终端界面
[root@fastcgi:~]#
tar xvf apr-1.7.0.tar.bz2
[root@fastcgi:~]#
tar xvf apr-util-1.6.1.tar.bz2
[root@fastcgi:~]#
tar xvf httpd-2.4.46.tar.bz2
[root@fastcgi:~]#
mv apr-1.7.0 httpd-2.4.46/srclib/apr
[root@fastcgi:~]#
mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util

4.编译安装httpd
[root@fastcgi:~]#
cd httpd-2.4.46/
[root@fastcgi:~/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
[root@fastcgi:~/httpd-2.4.46]#
make -j2 && make install

5.准备环境环境变量
[root@fastcgi:~/httpd-2.4.46]#
echo 'PATH=/apps/httpd/bin:$PATH' > /etc/profile.d/httpd.sh
[root@fastcgi:~/httpd-2.4.46]#
. /etc/profile.d/httpd.sh

6.创建和配置用户和组
[root@fastcgi:~/httpd-2.4.46]#
sed -ri -e '/^User/c User apache' -e '/^Group/c Group apache' /apps/httpd/conf/httpd.conf

7.修改event模式,如果编译时已经指定了不需要再修改,未编译指定才需要修改。
vim /apps/httpd/conf/httpd.conf
LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so

8.设置开机启动
[root@fastcgi:~/httpd-2.4.46]#
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
#EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/apps/httpd/bin/apachectl start
#ExecStart=/apps/httpd/bin/httpd $OPTIONS -k start
ExecReload=/apps/httpd/bin/apachectl graceful
#ExecReload=/apps/httpd/bin/httpd $OPTIONS -k graceful
ExecStop=/apps/httpd/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.targe         

9.启动服务
[root@fastcgi:~/httpd-2.4.46]#
apachectl start
3.3 编译安装 fastcgi 方式的 php 7.4
1.安装相关依赖包
[root@fastcgi:~]#
yum -y install gcc libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel oniguruma-devel

2.解压并编译
[root@fastcgi:~]#
wget https://www.php.net/distributions/php-7.4.29.tar.gz
[root@fastcgi:~]#
tar xvf php-7.4.29.tar.gz 
[root@fastcgi:~]#
cd  php-7.4.29
[root@fastcgi:~]#
./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
[root@fastcgi:~]#
make -j 2 && make install

3.准备环境变量
[root@fastcgi:~/php-7.4.29]#
echo 'PATH=/apps/php/bin:/apps/httpd/bin:$PATH' > /etc/profile.d/php.sh
[root@fastcgi:~/php-7.4.29]#
 . /etc/profile.d/php.sh
[root@fastcgi:~/php-7.4.29]#
php --version
PHP 7.4.29 (cli) (built: Jun 10 2022 19:59:37) ( ZTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

4.准备php的配置和启动文件
[root@fastcgi:~/php-7.4.29]#
cp php.ini-production /etc/php.ini
[root@fastcgi:~/php-7.4.29]#
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
[root@fastcgi:~/php-7.4.29]#
cd /apps/php/etc
[root@fastcgi:/apps/php/etc]#
cp php-fpm.conf.default  php-fpm.conf
[root@fastcgi:/apps/php/etc]#
cd php-fpm.d
[root@fastcgi:/apps/php/etc/php-fpm.d]#
cp www.conf.default  www.conf

5.修改进程所有者
[root@fastcgi:/apps/php/etc/php-fpm.d]#
vim /apps/php/etc/php-fpm.d/www.conf
#修改进程所有者,以Apache身份运行。
user = apache
group = apache
#支持status和ping页面
pm.status_path = /fpm_status    #取消注释,并修改fpm_status,与虚拟主机一致
ping.path = /ping

6.支持opcache加速
[root@fastcgi:/apps/php/etc/php-fpm.d]#
mkdir /etc/php.d/
[root@fastcgi:/apps/php/etc/php-fpm.d]#
vim /etc/php.d/opcache.ini
[opcache]
zend_extension=opcache.so
opcache.enable=1

7.启动服务(模块已经编译好了,只用添加配置文件就行)
[root@fastcgi:/apps/php/etc/php-fpm.d]#
systemctl daemon-reload  #配置文件生效
[root@fastcgi:/apps/php/etc/php-fpm.d]#
systemctl enable --now php-fpm.service

3.4 修改配置 httpd 支持 php-fpm
1.修改配置文件
[root@fastcgi:/apps/php/etc/php-fpm.d]#
vim /apps/httpd/conf/httpd.conf
#取消下面两行的注释,从而支持反向代理
LoadModule proxy_module modules/mod_proxy.so	
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

#添加index为主页面,直接添加在index.html之前
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

#结尾加下面两行,支持php后缀文件,开启反向代理
AddType application/x-httpd-php .php
ProxyRequests Off

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

#实现第二个虚拟机discuz
<virtualhost *:80>
servername forum.magedu.org		
documentroot /data/discuz		
<directory /data/discuz/>		
require all granted
</directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/discuz/$1
CustomLog "logs/access_discuz_log" common	
</virtualhost>


3.5 准备wordpress和discuz! 相关文件
1.准备wordpress文件
[root@fastcgi:~]#
mkdir /data/
[root@fastcgi:~]#
tar xvf wordpress-6.0-zh_CN.tar.gz 
[root@fastcgi:~]#
mv wordpress/ /data
[root@fastcgi:~]#
setfacl -R -m u:apache:rwx /data/wordpress/
#或者chown –R apache.apache /data/wordpress

2.装备discuz文件
[root@fastcgi:~]#
unzip Discuz_X3.4_SC_UTF8_20220518.zip
[root@fastcgi:~]#
mv upload/ /data/discuz
[root@fastcgi:~]#
setfacl -R -m u:apache:rwx /data/discuz/

3.6 测试访问

在windows中,修改hosts文件,添加域名解析:

C:\Windows\System32\drivers\etc\hosts
10.0.0.7 forum.magedu.org  blog.magedu.org
1.wordpress测试截图

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述

2.discuz测试截图

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值