盛年不重来,一日难再晨,及时当勉励,岁月不待人。这篇文章主要讲述编译安装基于FASTCGI模式LAMP架构多虚拟主机WEB应用及loganalyzer图形化日志相关的知识,希望能为你提供帮助。
1 编译安装基于FASTCGI模式LAMP架构多虚拟主机WEB应用
1.1 目标实现CentOS 7 编译安装基于 fastcgi 模式及opcache加速的多虚拟主机的wordpress和discuz的LAMP架构
1.2 环境准备两台主机:
centos7(apache2.4.48+php7.4+fastcgi+opcache)192.168.100.27
centos8(mariadb10.5.9)192.168.100.28
软件版本:
- CentOS 7.9
- mariadb-10.5.9-linux-x86_64.tar.gz 通用二进制格式
- apr-1.7.0.tar.bz2
- apr-util-1.6.1.tar.bz2
- httpd-2.4.48.tar.gz
- php-7.4.23.tar.xz 或 php-7.3.10.tar.bz2
- wordpress-5.8.1-zh_CN.tar.gz
- Discuz_X3.4_SC_UTF8_20210816.zip
#把mariadb-10.5.9-linux-x86_64.tar.gz文件和auto_mariadb1059.sh脚本放在同一目录中,如/data
[root@centos8 data]# ls
auto_mariadb1059.sh mariadb-10.5.9-linux-x86_64.tar.gz
[root@centos8 data]# vim auto_mariadb1059.sh
#!/bin/bash. /etc/init.d/functions
SRC_DIR=`pwd`
mysql=\'mariadb-10.5.9-linux-x86_64.tar.gz\'
COLOR="echo -e \\\\033[01;
31m"
END=\'\\033[0m\'
MYSQL_ROOT_PASSWORD=mageducheck (){
cd$SRC_DIR
if [ !-e $MYSQL ];
then
$COLOR"缺少${MYSQL}文件"$END
$COLOR"请将相关软件放在${SRC_DIR}目录下"$END
exit
elif [ -e /usr/local/mysql ];
then
action "数据库已存在,安装失败" false
exit
else
return
fi
} install_mysql(){
$COLOR"开始安装MySQL数据库..."$END
yum-y -q install libaio libtinfo.so.5 &
>
/dev/null
cd $SRC_DIR
tar xf $MYSQL -C /usr/local/
MYSQL_DIR=`echo $MYSQL| sed -nr \'s/^(.*[0-9]).*/\\1/p\'`
ln -s/usr/local/$MYSQL_DIR /usr/local/mysql
chown -Rroot.root /usr/local/mysql/
id mysql &
>
/dev/null || { groupadd mysql -g336;
useradd -s /sbin/nologin -r mysql -u336 -g mysql;
action "创建mysql用户";
}
#创建数据目录
mkdir /data/mysql -p
chown -R mysql.mysql /data/mysql
[ $? -eq 0 ] &
>
/dev/null &
&
action "创建mysql数据目录"
#准备PATH变量,centos8不能启动
echo \'PATH=/usr/local/mysql/bin/:$PATH\' >
/etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
#准备my.cnf文件
cat >
/etc/my.cnf <
<
-EOF
[mysqld]
datadir=/data/mysql
skip_name_resolve=ON
log-error=/data/mysql/mysql.log
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_on=1
wsrep_provider=none
wsrep_cluster_name="my_wsrep_cluster"
wsrep_slave_threads=1
wsrep_certify_nonPK=1
wsrep_max_ws_rows=0
wsrep_max_ws_size=2147483647
wsrep_debug=0
wsrep_convert_LOCK_to_trx=0
wsrep_retry_autocommit=1
wsrep_auto_increment_control=1
wsrep_drupal_282555_workaround=0
wsrep_causal_reads=0
wsrep_notify_cmd=
wsrep_sst_method=rsync
wsrep_sst_auth=root:
EOFcd /usr/local/mysql;
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqldservice mysqld start
[ $? -ne 0 ] &
&
{ $COLOR"数据库启动失败,退出!"$END;
exit;
}
action "数据库安装完成"
}
check
install_mysql[root@centos8 data]# chmod +x auto_mariadb1059.sh
[root@centos8 data]# . auto_mariadb1059.sh
1.3.2 一键编译安装 httpd 2.4.48
[root@centos7 ~]# cd /data
[root@centos7 data]# ls
apr-1.7.0.tar.bz2apr-util-1.6.1.tar.bz2auto_http24by.shhttpd-2.4.48.tar.bz2
[root@centos7 data]# vim auto_http24by.sh
#!/bin/bash. /etc/init.d/functions
COLOR="echo -e \\\\033[01;
31m"
END=\'\\033[0m\'install_httpd24(){
$COLOR"编译安装httpd2.4.48..."$END
#安装相关包
yum install gcc pcre-devel openssl-devel expat-devel lbzip2 make -y &
>
/dev/null
#编译安装httpd
cd /data
tar xf apr-1.7.0.tar.bz2
tar xf apr-util-1.6.1.tar.bz2
tar xf httpd-2.4.48.tar.bz2
mv apr-1.7.0 httpd-2.4.48/srclib/apr
mv apr-util-1.6.1 httpd-2.4.48/srclib/apr-util
cd httpd-2.4.48/
./configure \\
--prefix=/apps/httpd24 \\
--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 &
>
/dev/null
[ $? -eq 0 ] &
>
/dev/null &
&
action "configure成功"
make &
>
/dev/null ||action "make 失败"
make install &
>
/dev/null || action "make install 失败"
[ $? -eq 0 ] &
>
/dev/null &
&
action "编译成功"
#准备PATH变量
echo \'PATH=/apps/httpd24/bin:$PATH\' >
/etc/profile.d/http24by.sh
source /etc/profile.d/http24by.sh
#创建和配置用户和组
useradd -s /sbin/nologin -r -u 88 apache
sed -ri \'s/^User.*/User apache/\' /apps/httpd24/conf/httpd.conf
sed -ri \'s/^Group.*/Group apache/\' /apps/httpd24/conf/httpd.conf
#启动
apachectl start
[ $? -eq 0 ] &
>
/dev/null &
&
action "apache启动成功"
#设置启动脚本
cat >
/usr/lib/systemd/system/httpd.service <
<
EOF
[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/httpd24/bin/apachectl start
#ExecStart=/apps/httpd24/bin/httpd $OPTIONS -k start
ExecReload=/apps/httpd24/bin/apachectl graceful
#ExecReload=/apps/httpd24/bin/httpd $OPTIONS -k graceful
ExecStop=/apps/httpd24/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl start httpd
systemctl enable --now httpd
[ $? -eq 0 ] &
>
/dev/null &
&
action "httpd开机自启动添加成功"
}
install_httpd24[root@centos7 data]# chmod +x auto_http24by.sh
[root@centos7 data]# . auto_http24by.sh
1.3.3 一键编译安装 fastcgi 方式的 php 7.4.23
[root@centos7 ~]# cd /data
[root@centos7 data]# ls
auto_http24by.sh php-7.4.23.tar.xz
[root@centos7 data]# vim auto_php74by.sh
#!/bin/bash. /etc/init.d/functions
COLOR="echo -e \\\\033[01;
31m"
END=\'\\033[0m\'install_php74(){
$COLOR"编译安装php7.4.23..."$END
#安装相关包,依赖EPEL源
RELEASE=`awk -F\' \' \'{print $4}\' /etc/redhat-release|awk -F. \'{print $1}\'`
[ $RELEASE -eq 8 ] &
&
yum -y install gcc libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel pcre-devel openssl-devel autoconf automake libtool php-opcache make &
>
/dev/null
[ $RELEASE -eq 7 ] &
&
yum -y install gcc libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel oniguruma-devel pcre-devel openssl-devel libtool php-opcache make &
>
/dev/null#centos8编译安装oniguruma
[ $RELEASE -eq 8 ] &
&
{ tar xf oniguruma-6.9.4.tar.gz;
cd oniguruma-6.9.4/;
./autogen.sh &
&
./configure --prefix=/usr &
>
/dev/null;
make &
>
/dev/null;
make install &
>
/dev/null;
action "centos8编译安装oniguruma成功";
}#php7.4 编译
cd /data
tar xf php-7.4.23.tar.xz
cd php-7.4.23/
./configure \\
--prefix=/apps/php74 \\
--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 &
>
/dev/null
[ $? -eq 0 ] &
>
/dev/null &
&
action "configure成功"
make &
>
/dev/null ||action "make 失败"
make install &
>
/dev/null || action "make install 失败"
[ $? -eq 0 ] &
>
/dev/null &
&
action "编译成功"#php7.4准备PATH变量
echo \'PATH=/apps/php74/bin:$PATH\' >
/etc/profile.d/php74.sh
source /etc/profile.d/php74.sh#准备php配置文件和启动文件
cp php.ini-production /etc/php.ini
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
cd /apps/php74/etc
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
cp www.conf.default www.conf
#修改进程所有者
sed -ri \'s/^user.*/user = apache/\' /apps/php74/etc/php-fpm.d/www.conf
sed -ri \'s/^group.*/group = apache/\' /apps/php74/etc/php-fpm.d/www.conf
#支持status和ping页面
sed -ri \'s#^;
(pm.status_path.*)#pm.status_path = \\/fpm_status#\' /apps/php74/etc/php-fpm.d/www.conf
sed -ri \'s/^;
(ping.path.*)/\\1/\' /apps/php74/etc/php-fpm.d/www.conf#支持opcache加速
mkdir /etc/php.d/ -p
cat >
/etc/php.d/opcache.ini <
<
EOF
[opcache]
zend_extension=opcache.so
opcache.enable=1
EOFsystemctl daemon-reload
systemctl start php-fpm || action "php-fpm启动失败"
systemctl enable --now php-fpm
[ $? -eq 0 ] &
>
/dev/null &
&
action "php-fpm开机自启动添加成功"
}
install_php74[root@centos8 data]# chmod +x auto_php74by.sh
[root@centos8 data]# . auto_php74by.sh
1.3.4 centos7系统一键修改配置httpd 支持php-fpm
#安装好php7后,当前目录是[root@centos7 php-fpm.d],执行以下命令,配置http支持php-fpm#修改配置文件中的行,实现http支持php页面
sed -ri \'s@#(LoadModule proxy_module modules/mod_proxy.so)@\\1@\' /apps/httpd24/conf/httpd.conf
sed -ri \'s@#(LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so)@\\1@\' /apps/httpd24/conf/httpd.conf
sed -ri \'s@^([[:space:]]+DirectoryIndex) (index.html)@\\1 index.php \\2@\' /apps/httpd24/conf/httpd.confcat >
>
/apps/httpd24/conf/httpd.conf <
<
EOF
#加下面三行
AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
ProxyRequests Off#实现第一个虚拟主机
<
virtualhost *:80>
servername blog.magedu.org
documentroot /data/wordpress
<
directory /data/wordpress>
require all granted
<
/directory>
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
<
/virtualhost>
#第二个虚拟主机
<
virtualhost *:80>
servername forum.magedu.org
documentroot /data/discuz
<
directory /data/discuz/>
require all granted
<
/directory>
ProxyPassMatch ^/(.*\\.php)$ fcgi://127.0.0.1:9000/data/discuz/$1
CustomLog "logs/access_discuz_log" common
<
/virtualhost>
EOFsystemctl restart httpd
1.3.5 centos7系统一键准备wordpress和discuz! 相关文件
#准备wordpress程序文件
cd /data/
tar xf wordpress-5.8.1-zh_CN.tar.gz -C /data
setfacl -R -m u:apache:rwx /data/wordpress/
#或者chown -R apache.apache /data/wordpress
#准备discuz!程序文件
cd /data/
rpm -q unzip || yum install unzip -y &
>
/dev/null
unzip -d Discuz Discuz_X3.4_SC_UTF8_20210816.zip &
>
/dev/null
mv Discuz/upload/ /data/discuz
setfacl -R -m u:apache:rwx /data/discuz/
1.3.6 centos8创建wordpress和discuz数据库
[root@centos8 ~]# mysql
create database wordpress;
create database discuz;
grant all on wordpress.* to wpuser@\'192.168.100.%\' identified by "wppass";
grant all on discuz.* to disuser@\'192.168.100.%\' identified by "dispass";
1.3.7 测试访问
[root@centos7 data]# echo "192.168.100.27 blog.magedu.org forum.magedu.org" >
>
/etc/hostswindows10的windows/system32/drivers/etc/hosts文件中也要添加,这样浏览器中输入域名就可以访问了
192.168.100.27 blog.magedu.org forum.magedu.org
1、打开浏览器访问 http://blog.magedu.org 进行初始化安装,并创建首个博客文章。
文章图片
文章图片
文章图片
文章图片
#图片上传的目录
[root@c7-pxc2 data]# tree wordpress/wp-content/uploads/
wordpress/wp-content/uploads/
└── 2021
└── 09
└── CachedImage_1920_1080_POS2.jpg2 directories, 1 file
2、浏览器打开http://forum.magedu.org,初始化安装并创建版块。
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
2 rsyslog日志服务 2.1 利用mysql存储日志信息 2.1.1 目标
利用rsyslog日志服务,将收集的日志记录于MySQL中
2.1.2 环境准备
三台主机,两台日志服务器,一台数据库服务器
c8log192.168.100.48
c7log192.168.100.47
c8mariadb192.168.100.28
2.1.3 实现步骤
2.1.3.1 在rsyslog服务器上安装连接mysql模块相关的程序包1、centos8安装rsyslog-MySQL模块
[root@c8log ~]# yum install rsyslog-mysql#查看sql脚本文件内容
[root@c8log ~]# cat /usr/share/doc/rsyslog/mysql-createDB.sql
CREATE DATABASE Syslog;
USE Syslog;
CREATE TABLE SystemEvents
(
ID int unsigned not null auto_increment primary key,
CustomerID bigint,
ReceivedAt datetime NULL,
DeviceReportedTime datetime NULL,
Facility smallint NULL,
Priority smallint NULL,
FromHost varchar(60) NULL,
Message text,
NTSeverity int NULL,
Importance int NULL,
EventSource varchar(60),
EventUser varchar(60) NULL,
EventCategory int NULL,
EventID int NULL,
EventBinaryData text NULL,
MaxAvailable int NULL,
CurrUsage int NULL,
MinUsage int NULL,
MaxUsage int NULL,
InfoUnitID int NULL ,
SysLogTag varchar(60),
EventLogType varchar(60),
GenericFileName VarChar(60),
SystemID int NULL
);
CREATE TABLE SystemEventsProperties
(
ID int unsigned not null auto_increment primary key,
SystemEventID int NULL ,
ParamName varchar(255) NULL ,
ParamValue text NULL
);
#将sql脚本复制到数据库服库上
[root@c8log ~]# scp /usr/share/doc/rsyslog/mysql-createDB.sql 192.168.100.28:/data
2、centos7安装rsyslog-mysql
[root@c7log ~]# yum install rsyslog-mysql#由于和centos8下安装的rsyslog-mysql中的数据库名一样,修改为Syslog_c7,而且数据库名称不能使用-,只能用下划线_
[root@c7log ~]# cat /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
CREATE DATABASE Syslog_c7;
USE Syslog_c7;
CREATE TABLE SystemEvents
(
ID int unsigned not null auto_increment primary key,
CustomerID bigint,
ReceivedAt datetime NULL,
DeviceReportedTime datetime NULL,
Facility smallint NULL,
Priority smallint NULL,
FromHost varchar(60) NULL,
Message text,
NTSeverity int NULL,
Importance int NULL,
EventSource varchar(60),
EventUser varchar(60) NULL,
EventCategory int NULL,
EventID int NULL,
EventBinaryData text NULL,
MaxAvailable int NULL,
CurrUsage int NULL,
MinUsage int NULL,
MaxUsage int NULL,
InfoUnitID int NULL ,
SysLogTag varchar(60),
EventLogType varchar(60),
GenericFileName VarChar(60),
SystemID int NULL
);
CREATE TABLE SystemEventsProperties
(
ID int unsigned not null auto_increment primary key,
SystemEventID int NULL ,
ParamName varchar(255) NULL ,
ParamValue text NULL
);
[root@c7log ~]# scp /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql 192.168.100.28:/data/c7-mysqlcreateDB.sql
2.1.3.2 准备mariadb数据库服务器使用1.3.1例中的“centos8一键安装mariadb10.5.9二进制脚本”安装mariadb数据库
#安装好数据库后,在mariadb数据库服务器上创建相关数据库和表,并授权rsyslog能连接至当前服务器
[root@c8mariadb data]# mysql <
mysql-createDB.sql
[root@c8mariadb data]# mysql <
c7-mysqlcreateDB.sql
[root@c8mariadb data]# mysql
Server version: 10.5.9-MariaDB Source distribution
MariaDB [(none)]>
show databases;
+--------------------+
| Database|
+--------------------+
| Syslog|
| Syslog_c7|
| information_schema |
| mysql|
| performance_schema |
| test|
+--------------------+
6 rows in set (0.001 sec)#授权账号,centos8使用Syslog库,用户名rsyslogc8,密码mageduc8
MariaDB [(none)]>
grant all on Syslog.* to rsyslogc8@\'192.168.100.%\' identified by \'mageduc8\';
#授权账号,centos7使用Syslog_c7库,用户名rsyslogc7,密码mageduc7
MariaDB [(none)]>
grant all on Syslog_c7.* to rsyslogc7@\'192.168.100.%\' identified by \'mageduc7\';
2.1.3.3 在日志服务器上分别配置,将日志发送至指定数据库
1、centos8系统下的日志配置
#配置rsyslog将日志保存到mysql中
[root@c8log ~]# vi /etc/rsyslog.conf
####MODULES####
#在 MODULES 语言下面,如果是 CentOS 8 加下面行
module(load="ommysql")
#在RULES语句块加下面行的格式
#facility.priority :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD
*.info:ommysql:192.168.100.28,Syslog,rsyslogc8,mageduc8[root@c8log ~]# systemctl restart rsyslog2、centos7系统下的日志配置
[root@c7log ~]# vi /etc/rsyslog.conf
#在 MODULES 语言下面,如果是 CentOS 7,6 加下面行
$ModLoad ommysql
#在RULES语句块加下面行的格式
*.info:ommysql:192.168.100.28,Syslog_c7,rsyslogc7,mageduc7
[root@c7log ~]# systemctl restart rsyslog
2.1.3.4 测试
#数据库服务器中,在日志服务器配置好重启服务之前,查看表是空的。
MariaDB [none]>
select * from Syslog.SystemEvents;
Empty set (0.001 sec)MariaDB [Syslog]>
select * from Syslog_c7.SystemEvents;
Empty set (0.001 sec)#日志服务器配置好后,并重启服务,在日志服务器上生成日志
[root@c8log ~]#logger "This is a centos8 log"
[root@c7log ~]#logger "This is a centos7 log"#在数据库上查询到上面的测试日志
MariaDB [none]>
select * from Syslog.SystemEvents\\G;
*************************** 8. row ***************************
ID: 8
CustomerID: NULL
ReceivedAt: 2021-09-15 10:36:30
DeviceReportedTime: 2021-09-15 10:36:30
Facility: 1
Priority: 5
FromHost: c8-slave04
Message: This is a centos8 log
NTSeverity: NULL
Importance: NULL
EventSource: NULL
EventUser: NULL
EventCategory: NULL
EventID: NULL
EventBinaryData: NULL
MaxAvailable: NULL
CurrUsage: NULL
MinUsage: NULL
MaxUsage: NULL
InfoUnitID: 1
SysLogTag: root[37867]:
EventLogType: NULL
GenericFileName: NULL
SystemID: NULLMariaDB [none]>
select * from Syslog_c7.SystemEvents\\G;
*************************** 9. row ***************************
ID: 9
CustomerID: NULL
ReceivedAt: 2021-09-15 10:34:27
DeviceReportedTime: 2021-09-15 10:34:27
Facility: 1
Priority: 5
FromHost: centos7
Message: This is a centos7 log
NTSeverity: NULL
Importance: NULL
EventSource: NULL
EventUser: NULL
EventCategory: NULL
EventID: NULL
EventBinaryData: NULL
MaxAvailable: NULL
CurrUsage: NULL
MinUsage: NULL
MaxUsage: NULL
InfoUnitID: 1
SysLogTag: root:
EventLogType: NULL
GenericFileName: NULL
SystemID: NULL
2.2 通过 loganalyzer 展示数据库中的日志loganalyzer是用 php 语言实现的日志管理系统,可将MySQL数据库的日志用丰富的WEB方式进行展示
官网:https://loganalyzer.adiscon.com
2.2.1 目标
通过 loganalyzer 展示数据库中的日志
2.2.2 环境准备
#三台主机
c8log192.168.100.48#一台日志服务器,利用上一个案例实现
c8mariadb192.168.100.28#一台数据库服务器,利用上一个案例实现
c7loganalyzer192.168.100.17#yum安装httpd+php,并安装loganalyzer展示web图形
2.2.3 步骤
2.2.3.1 在192.168.100.17主机上yum安装http及php和相关软件包
[root@c7loganalyzer ~]# yum -y install httpd php-fpm php-mysqlnd
[root@c7loganalyzer ~]# systemctl start httpd php-fpm
[root@c7loganalyzer ~]# ss -nlt
StateRecv-Q Send-QLocal Address:PortPeer Address:Port
LISTEN0128127.0.0.1:9000*:*
LISTEN0128*:22*:*
LISTEN0128[::]:80[::]:*
LISTEN0128[::]:22[::]:*
[root@c7loganalyzer ~]# ps aux |grep apache
apache70440.00.5 2787965060 ?S21:500:00 php-fpm: pool www
apache70450.00.5 2787965060 ?S21:500:00 php-fpm: pool www
apache70460.00.5 2787965060 ?S21:500:00 php-fpm: pool www
apache70470.00.5 2787965060 ?S21:500:00 php-fpm: pool www
apache70480.00.5 2787965060 ?S21:500:00 php-fpm: pool www
apache70490.00.7 3610847128 ?S21:500:00 /usr/sbin/httpd -DFOREGROUND
apache70500.00.7 3610847128 ?S21:500:00 /usr/sbin/httpd -DFOREGROUND
apache70510.00.7 3610847128 ?S21:500:00 /usr/sbin/httpd -DFOREGROUND
apache70520.00.7 3610847128 ?S21:500:00 /usr/sbin/httpd -DFOREGROUND
apache70530.00.7 3610847128 ?S21:500:00 /usr/sbin/httpd -DFOREGROUND
root71590.00.0 112808972 pts/0S+21:510:00 grep --color=auto apache
2.2.3.2 在192.168.100.17主机上安装LogAnalyzer
#从http://loganalyzer.adiscon.com/downloads/ 下载loganalyzer-4.1.10.tar.gz
[root@c7loganalyzer ~]# tar xf loganalyzer-4.1.12.tar.gz
[root@c7loganalyzer ~]# ls
anaconda-ks.cfgloganalyzer-4.1.12loganalyzer-4.1.12.tar.gz
[root@c7loganalyzer ~]# mv loganalyzer-4.1.12/src /var/www/html/log
2.2.3.3 基于 web 页面初始化访问http://192.168.100.17/log 实现初始化
文章图片
文章图片
注意:如果没有安装php-gd包,会如下错误
文章图片
创建了config.php文件并授权后,recheck即可
[root@c7loganalyzer ~]# touch /var/www/html/log/config.php
[root@c7loganalyzer ~]# chmod 666 /var/www/html/log/config.php
文章图片
文章图片
未安装gd包,效果如下
文章图片
安装gd包并重启服务,实现图形化
[root@c7loganalyzer ~]# yum -y install php-gd
[root@c7loganalyzer ~]# systemctl restart httpd
文章图片
2.2.3.4 安全加强
[root@c7loganalyzer ~]# chmod 644 /var/www/html/log/config.php
2.3 centos8编译安装httpd2.4和php7.4.23,实现loganalyzer图形化日志 2.3.1 初始化
#三台主机
c8log192.168.100.48#一台日志服务器,利用上一个案例实现
c8mariadb192.168.100.28#一台数据库服务器,利用上一个案例实现
c8loganalyzer192.168.100.18#一键编译安装httpd+php,并增加gd模块,再安装loganalyzer展示web图形
centos8系统编译安装httpd2.4和php7.4.23,但未添加gd模块,需要使用phpize命令。当需要添加一些模块,但是又不想重新编译php时,就可以使用phpize命令。
2.3.2 未安装gd模块,不能实现图形化界面
文章图片
2.3.3 添加gd模块
1、先进入php源码包的/ext/gd/目录下,如下:
[root@c8loganalyzer ~]# cd /data/php74/php-7.4.23/ext/gd/
[root@c8loganalyzer gd]# ls
config.m4config.w32CREDITSgd.cgd_compat.cgd_compat.hgd_ctx.clibgdphp_gd.htests2、显示如下说明执行成功
[root@c8loganalyzer gd]# /apps/php74/bin/phpize #编译安装后文件放在/apps/php74目录下,所以/usr/local/sbin/不一定有这个链接文件
Configuring for:
PHP Api Version:20190902
Zend Module Api No:20190902
Zend Extension Api No:3201909023、配置、安装
[root@c8loganalyzer gd]# ./configure--with-php-config=/apps/php74/bin/php-config
......
checking for libpng... no
configure: error: Package requirements (libpng) were not met:
Package \'libpng\', required by \'virtual:world\', not found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables PNG_CFLAGS
and PNG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.#出现上述丢失包的错误,安装其libpng-level库即可
[root@c8loganalyzer gd]# yum install libpng-devel
[root@c8loganalyzer gd]# make &
&
make install
。。。。。。
Installing shared extensions:/apps/php74/lib/php/extensions/no-debug-zts-20190902/
Installing header files:/apps/php74/include/php/gd库安装成功后会在/apps/php74/lib/php/extensions/no-debug-zts-20190902/目录下生成gd.so文件,如下:
[root@c8loganalyzer gd]# ll /apps/php74/lib/php/extensions/no-debug-zts-20190902/
total 11452
-rwxr-xr-x 1 root root 1550496 Sep 15 22:47 gd.so
-rwxr-xr-x 1 root root 6934580 Sep 11 14:35 opcache.a
-rwxr-xr-x 1 root root 3234768 Sep 11 14:35 opcache.so4、可以通过查看php --ini查看添加的模块
[root@c8loganalyzer gd]# php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File:/etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:/etc/php.d/10-opcache.ini,
/etc/php.d/20-bz2.ini,
/etc/php.d/20-calendar.ini,
/etc/php.d/20-ctype.ini,
/etc/php.d/20-curl.ini,
/etc/php.d/20-exif.ini,
/etc/php.d/20-fileinfo.ini,
/etc/php.d/20-ftp.ini,
/etc/php.d/20-gd.ini,
/etc/php.d/20-gettext.ini,
/etc/php.d/20-iconv.ini,
/etc/php.d/20-phar.ini,
/etc/php.d/20-sockets.ini,
/etc/php.d/20-tokenizer.ini,
/etc/php.d/opcache.ini6、或者php -m过滤查看有无gd
[root@c8loganalyzer gd]# php -m|grep gd
gd
[root@c8loganalyzer gd]# cat /etc/php.d/20-gd.ini
;
Enable gd extension module
extension=gd
7、重启服务,即可看到图形界面
[root@c8loganalyzer gd]# systemctl restart httpd php-fpm
【编译安装基于FASTCGI模式LAMP架构多虚拟主机WEB应用及loganalyzer图形化日志】
文章图片
推荐阅读
- oeasy教您玩转vim - 46 - # 范围控制
- Redis备份工具Redis-dump
- Zabbix Fping 存活检测
- linux之sshpass命令
- 十五MIC真正的高可用
- [笨叔点滴9] GNU GCC扩展2
- VMware虚拟机开机黑屏
- [笨叔点滴10] 中断到“底”来了吗()
- [笨叔点滴11] malloc惹的祸