第十四周作业
1、简述CGI与FASTCGI区别
CGI收到请求时会fork一个新进程,处理完成后销毁这个进程。FastCGI启动时生成若干个进程,等待收处理请求,处理完后不销毁,继续等待下一个请求。FastCGI减少了创建和销毁进程的开销,处理效率比较高。
2、 编译安装基于fastcgi模式的多虚拟主机的wordpress和discuz的LAMP架构
本内容采用两台服务器一台Centos7 安装mariadb,另一台centos8安装web相关组件(CentOS8yum的php版本比较高免去编译安装的麻烦)
准备数据库服务器
yum -y install mariadb-server
# systemctl enable --now mariadb
mysql_secure_installation 安全设置
生产环境需要根据自己情况配置数据存放路径
进入mysql
准备wordpress的数据库和用户并授权
> create databases wordpress;
> create user wordpress@'10.0.0.%' identified by '123456';
> grant all on wordpress.* to wordpress@'10.0.0.%';
准备discuz的数据库和用户并授权
> create database discuz;
> create user discuz@'10.0.0.%' identified by '123456';
> grant all on discuz.* to discuz@'10.0.0.%';
进入WEB服务器完成以下配置
下载安装包
浏览器下载https://www.dismall.com/thread-73-1-1.html
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
安装
yum -y install httpd php php-fpm php-mysqlnd
检查php版本,确认与wordpress、discuz环境要求一致,最新版本的wordpress要求php7.4比Centos8 yum带的包高,需要其他方式安装php才行,我采用wordpress5.2版本。
# php --version
vim /etc/php-fpm.d/www.conf
listen = 9000
# unzip Discuz_X3.4_SC_UTF8_20211124.zip
# chown apache:apache /var/www/html/discuz -R
# tar -xzf wordpress-5.2.13-zh_CN.tar.gz
# cp wordpress /var/www/html/ -R
# chown apache:apache /var/www/html/wordpress -R
# cat > /etc/httpd/conf.d/wordpress.conf
<VirtualHost *:80>
servername wordpress.testcompany.local
DocumentRoot /var/www/html/wordpress
<Directory /var/www/html/wordpress >
require all granted
</Directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/wordpress/$1
</VirtualHost>
# cat /etc/httpd/conf.d/discuz.conf
<VirtualHost *:80>
servername discuz.testcompany.local
DocumentRoot /var/www/html/discuz
<Directory /var/www/html/discuz>
require all granted
</Directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/discuz/$1
</VirtualHost>
准备测试,浏览器测试的主机配置host文件,如果是windows在c:\windows\system32/drives/hosts
$ cat /etc/hosts
10.0.0.8 wordpress.testcompany.local
10.0.0.8 discuz.testcompany.local
打开浏览器开始部署
访问:http://wordpress.testcompany.local/
http://discuz.testcompany.local/
3、通过loganalyzer展示数据库中的日志
先把日志存入mysql数据库
安装包
# yum -y install rsyslog-mysql rsyslog
找到安装包中的sql脚本复制到数据库服务器并导入
# rpm -ql rsyslog-mysql | grep sql
# scp /usr/share/doc/rsyslog/mysql-createDB.sql root@10.0.0.17:/data
[root@centos7_17 ~]# mysql -u root -p < /data/mysql-createDB.sql
进入mysql先在准备好的mysql数据库服务器中创建日志数据库、用户、授权
MariaDB [(none)]> create user loguser@'10.0.0.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all on Syslog.* to loguser@'10.0.0.%' ;
安装loganalyzer 及web组件
[root@centos8 ~]#yum -y install httpd php-fpm php-mysqlnd php-gd
[root@centos8 ~]#systemctl enable --now httpd php-fpm
[root@centos8 data]# tar xzf loganalyzer-4.1.12.tar.gz
[root@centos8 data]# mv loganalyzer-4.1.12/src /var/www/html/log
[root@centos8 data]# chown apache:apache /var/www/html/log
[root@centos8 data]# touch /var/www/html/log/config.php
[root@centos8 data]# chmod 666 /var/www/html/log/config.php
配置httpd站点配置文件也可又不使用配置,走根目录
[root@centos8 conf.d]# cat loganalyzer.conf
<VirtualHost *:80>
servername log.testcompany.local
DocumentRoot /var/www/html/log
<Directory /var/www/html/log>
require all granted
</Directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/log/$1
</VirtualHost>
配置完成后重启服务
systemctl restart httpd
访问页面
http://log.testcompany.local 点击here安装,截图关键页面,其他页面直接next即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通