两台主机:
- 一台主机: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
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 start3.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.service3.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之前3.5 准备wordpress和discuz! 相关文件DirectoryIndex index.php index.html #结尾加下面两行,支持php后缀文件,开启反向代理 AddType application/x-httpd-php .php ProxyRequests Off #实现第一个虚拟机wordpress,servername blog.magedu.org documentroot /data/wordpress #实现第二个虚拟机discuzrequire 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" commonservername 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
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.org1.wordpress测试截图



