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

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

环境准备:

IP服务器及操作系统描述
10.0.0.7CentOS-7.9httpd+php(fastcgi模式)
10.0.0.17MariaDB-10.4.22(通用二进制格式)mariadb 服务器

软件版本:

  • apr-1.7.0.tar.bz2
  • apr-util-1.6.1.tar.bz2
  • httpd-2.4.46.tar.bz2
  • php-7.4.28.tar.gz
  • wordpress-5.4.1-zh_CN.tar.gz
  • Discuz_X3.4_SC_UTF8_20210630.zip

实现步骤

1、为wordprss和discuz应用准备数据库和用户帐号

[root@centos7 ~]#vim /etc/my.cnf
skip_name_resolve = ON
[root@centos7 ~]#systemctl restart mysqld

MariaDB [mysql]> create database wordpress;
MariaDB [mysql]> create database discuz;
MariaDB [mysql]> grant all on wordpress.* to wordpress@'10.0.0.%' identified by "wppass";
MariaDB [mysql]> grant all on discuz.* to discuz@'10.0.0.%' identified by 'dispass';
MariaDB [mysql]> FLUSH PRIVILEGES;

2、编译安装 httpd 2.4

#安装相关包
[root@centos7 ~]#yum install gcc pcre-devel openssl-devel expat-devel -y

#编译安装httpd
[root@centos7 ~]#tar xvf apr-1.7.0.tar.bz2
[root@centos7 ~]#tar xvf apr-util-1.6.1.tar.bz2
[root@centos7 ~]#tar xf httpd-2.4.46.tar.bz2
[root@centos7 ~]#mv apr-1.7.0 httpd-2.4.46/srclib/apr
[root@centos7 ~]#mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util

[root@centos7 ~]#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

[root@centos7 httpd-2.4.46]#make && make install

#准备PATH变量
[root@centos7 httpd-2.4.46]#vim /etc/profile.d/lamp.sh
#!/bin/bash
PATH=/apps/httpd/bin:$PATH
[root@centos7 httpd-2.4.46]#. /etc/profile.d/lamp.sh

#创建和配置用户和组
[root@centos7 httpd-2.4.46]#useradd -s /sbin/nologin -r -u 88 apache
[root@centos7 httpd-2.4.46]#vim /apps/httpd/conf/httpd.conf
User apache
Group apache

#修改为event模式,编译时已指定,此项不再需修改,可选项
[root@centos7 httpd-2.4.46]#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

[root@centos7 httpd-2.4.46]#httpd -M |grep mpm
 mpm_event_module (shared)

[root@centos7 httpd-2.4.46]#apachectl start

[root@centos7 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=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecStart=/apps/httpd/bin/apachectl start
#ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
ExecReload=/apps/httpd/bin/apachectl graceful
ExecStop=/apps/httpd/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[root@centos7 httpd-2.4.46]#systemctl daemon-reload
[root@centos7 httpd-2.4.46]#systemctl restart httpd.service

3、编译安装 fastcgi 方式的 php 7.4

#安装相关包,依赖EPEL源
#php 7.4 相关包
[root@centos7 httpd-2.4.46]#yum -y install gcc libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel oniguruma-devel

#php7.4 编译
[root@centos7 httpd-2.4.46]#cd
[root@centos7 ~]#tar xvf php-7.4.28.tar.gz
[root@centos7 ~]#cd php-7.4.28/
[root@centos7 php-7.4.28]#./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@centos7 php-7.4.28]#make -j 2 && make install

#准备PATH变量
[root@centos7 php-7.4.28]#vim /etc/profile.d/lamp.sh
PATH=/apps/php/bin:/apps/httpd/bin:$PATH
[root@centos7 php-7.4.28]#. /etc/profile.d/lamp.sh
[root@centos7 php-7.4.28]#php --version
PHP 7.4.28 (cli) (built: Mar 12 2022 14:55:19) ( ZTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

#准备php配置文件和启动文件
[root@centos7 php-7.4.28]#cp php.ini-production /etc/php.ini
[root@centos7 php-7.4.28]#cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
[root@centos7 php-7.4.28]#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

#修改进程所有者
[root@centos7 php-fpm.d]#pwd
/apps/php/etc/php-fpm.d
[root@centos7 php-fpm.d]#vim www.conf
user = apache
group = apache

#支持status和ping页面
pm.status_path = /fpm_status
ping.path = /ping

#支持opcache加速
[root@centos7 php-fpm.d]#mkdir /etc/php.d/
[opcache]
zend_extension=opcache.so
opcache.enable=1

[root@centos7 php-fpm.d]#systemctl daemon-reload
[root@centos7 php-fpm.d]#systemctl enable --now php-fpm.service

4、修改配置 httpd 支持 php-fpm

[root@centos7 php-7.4.28]#vim /apps/httpd/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
</IfModule>

#加下面两行
AddType application/x-httpd-php .php
ProxyRequests Off

#实现第一个虚拟主机
<virtualhost *:80>
servername blog.linux2022.com
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.linux2022.com
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>

[root@centos7 php-7.4.28]#systemctl restart httpd.service

5、准备wordpress和discuz 相关文件

[root@centos7 php-fpm.d]#cd /data/
[root@centos7 data]#mkdir blog forum
[root@centos7 ~]#tar xf latest-zh_CN.tar.gz
[root@centos7 ~]#mv wordpress/* /data/blog/
[root@centos7 ~]#mv Discuz_X3.4_SC_UTF8_20210630.zip /opt
[root@centos7 ~]#cd /opt
[root@centos7 opt]#unzip Discuz_X3.4_SC_UTF8_20210630.zip
[root@centos7 opt]#mv upload/* /data/forum/
[root@centos7 opt]#chown -R apache.apache /data/*

6、测试访问

[root@centos7 ~]#vim /etc/hosts
10.0.0.7 blog.linux2022.com forum.linux2022.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直在努力学习的菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值