魏蓝

以梦为马

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

第14周作业

简述CGI与FASTCGI的区别

CGI:兼职,一次性的过河拆桥式的服务
FASTCGI:专职,全周期的持续式的服务

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

环境准备

10.0.0.7:centos7.9:httpd+php(fastcgi模式)
10.0.0.17:centos7.9:mariadb 服务器(MariaDB-10.4.22(通用二进制格式))

实现步骤

为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;

编译安装 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

编译安装 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

修改配置 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

修改配置 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

准备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/*

通过 loganalyzer 展示数据库中的日志

一、环境准备

10.0.0.14 数据库centos7
10.0.0.16 rsyslog centos7
10.0.0.22 http+php centos8

二、实现配置

10.0.0.16 rsyslog

安装连接mysql模块相关的程序包

yum install rsyslog-mysql

将sql脚本复制到数据库服库上

scp /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql 10.0.0.14:/data

10.0.0.14数据库centos7

安装数据库

yum install -y mariadb-server

在mariadb数据库服务器上创建相关数据库和表,并授权rsyslog能连接至当前服务器

MariaDB [(none)]> source /data/mysql-createDB.sql
MariaDB [(none)]> create user rsyslog@'10.0.0.%' identified by '123456';
MariaDB [Syslog]> grant all on Syslog.* to rsyslog@'10.0.0.%';

10.0.0.16 配置日志服务器

配置rsyslog的配置文件

[root@rsyslog ~]# vi /etc/rsyslog.conf
....
#### MODULES ####
$ModLoad ommysql
....
#mysql
*.*                                                  :ommysql:10.0.0.14,Syslog,rsyslog,123456

重启rsyslog服务

systemctl restart rsyslog.service

验证:

10.0.0.22httpd+php 服务器

安装php和相关软件包

yum -y install httpd php-fpm php-mysqlnd php-gd
systemctl enable --now httpd php-fpm

安装 LogAnalyzer(从http://loganalyzer.adiscon.com/downloads/ 下载loganalyzer-4.1.10.tar.gz)

wget https://download.adiscon.com/loganalyzer/loganalyzer-4.1.12.tar.gz --no-check-certificate

配置web界面

tar xvf loganalyzer-4.1.12.tar.gz
mv loganalyzer-4.1.12/src/ /var/www/html/log
touch /var/www/html/log/config.php
chmod 666 /var/www/html/log/config.php

浏览器打开10.0.0.22/log


结束

posted on   魏蓝  阅读(22)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示