栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

编译安装基于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之前

DirectoryIndex index.php index.html


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

#实现第一个虚拟机wordpress,

servername blog.magedu.org		
documentroot /data/wordpress	
		
require all granted

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	


#实现第二个虚拟机discuz

servername forum.magedu.org		
documentroot /data/discuz		
		
require all granted

ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/data/discuz/$1
CustomLog "logs/access_discuz_log" common	



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:WindowsSystem32driversetchosts
10.0.0.7 forum.magedu.org  blog.magedu.org
1.wordpress测试截图




2.discuz测试截图





转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974450.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号