lamp配置

一 LAMP分别代表什么?

· L:服务器操作系统Linux
· A:网站服务使用的是Apache软件基金会中的httpd的软件
· M:网站后台使用的数据库时MySQL,mariadb数据库
· P:网站是使用PHP/Perl/Python等语言开发

二 LAMP工作原理

在这里插入图片描述

三 LAMP配置

1、部署分离的LAMP,部署到二台服务器上,php加载xcache模块

IP服务
192.168.233.147mysql+httpd
192.168.233.150php-fpm
系统版本:192.168.233.148和192.168.233.150都是centos7

在配置过程中,采用yum安装方式。

192.168.233.147开始进行

1.1 httpd和mariadb安装
#安装httpd和mariadb
yum -y install  httpd mariadb-server 

在这里插入图片描述

启动命令: 
systemctl start httpd mariadb 

如下:
显示服务启动成功
在这里插入图片描述

1.2 测试mysql和httpd是否正常
[root@localhost html]# echo "8.147" >/var/www/html/index.html
[root@localhost html]# curl localhost
8.147
[root@localhost html]# curl 192.168.233.147
8.147
[root@localhost html]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

可以看到httdp和mariadb是可以正常访问的
接着,在192.168.233.150

1.3 进行配置php-fpm
#安装PHP-FPM 
yum install php-fpm 

在这里插入图片描述
查看php-fpm所对应的配置文件 rpm -ql php-fpm
在这里插入图片描述

1.4 PHP-FPM常见配置
 daemonize = no  //是否将程序运行在后台  
 listen = 127.0.0.1:9000 //FPM 监听地址
  listen = /var/run/php.sock //UDF模式使用
  listen.mode= 0666 //UDF模式使用  
  listen.backlog = -1 //等待队列的长度 -1表示无限制   
  listen.allowed_clients = 127.0.0.1  //仅允许哪些主机访问   
  pm = dynamic   //PM是动态运行还是静态运行           
  //static 固定数量的子进程,pm.max_childen          
  //dynamic子进程数据以动态模式管理  
  pm.start_servers 
  pm.min_spare_servers  
  pm.max_spare_servers 
  pm.max_requests = 500 
 php_value[session.save_handler] = files  
 php_value[session.save_path] = /var/lib/php/session  
  //设置session存放位置 
#启动PHP-FPM    
systemctl start php-fpm 

在这里插入图片描述

1.5查看和修改php-fpm配置文件
[root@localhost system]# grep -vE "^;|^$|#" /etc/php-fpm.d/www.conf
[www]
listen = 127.0.0.1:9000
 
listen.allowed_clients = 127.0.0.1
user = apache
group = apache
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

将listen = 127.0.0.1:9000 修改为 192.168.233.150:9000
将listen.allowed_clients = 127.0.0.1注销,或者修改为对应的IP
修改完毕后,重启服务,
查看是否生效,如图显示已生效。
在这里插入图片描述

1.6 httpd和php-fpm请求测试

配置192.168.233.147的httpd请求php的资源能够连接192.168.233.150:9000

[root@localhost html]#  httpd -M |grep fcgi
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
 proxy_fcgi_module (shared)

touch /etc/httpd/conf.d/fcgi.conf
[root@localhost conf.d]# pwd
/etc/httpd/conf.d
[root@localhost conf.d]# cat fcgi.conf 
DirectoryIndex index.php
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.233.150:9000/var/www/html/$1

#如果没有加载proxy_fcgi_module需要先加载此模块,然后才能够代理fcgi协议
记得PHP文件放在/var/www/html/下。

进行测试,如图显示正常。

在这里插入图片描述
到此环境已经搭建好了,但是php-fpm是不支持xcode的,接下来我们来安装xcache模块

1.7 安装xcache模块

可以选择编译安装也可以yum安装
yum安装:

yum install php-xcache
systemctl restart httpd.service

编译安装:

yum -y install php-devel 
#下载并解压缩xcache-3.2.0.tar.bz2 
 phpize  生成编译环境 
 cd xcache-3.2.0 
 ./configure --enable-xcache  
 make && make install  
 cp xcache.ini  /etc/php.d/ 
 systemctl restart httpd.service 

测试,是否加载xcache成功

[root@localhost html]# php-fpm -m
[PHP Modules]
bz2
calendar
cgi-fcgi
Core
ctype
curl
date
ereg
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
json
libxml
mhash
openssl
pcre
Phar
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
tokenizer
XCache
XCache Cacher
XCache Coverager
XCache Optimizer
xml
zip
zlib

[Zend Modules]
XCache
XCache Cacher
XCache Coverager

显示已成功。

2、部署wordpress论坛,并实现正常访问登录论坛。

2.1 安装php-mysql 此包用于php连接mysql数据库

192.168.233.150上安装
yum install php-mysql -y
完毕后

2.2 php连接mysql测试

在192.168.233.147上新建wpdb库和wpuser用户
mysql> create database wpdb;
mysql> grant all privileges on wpdb.* to wpuser@’%’ identified by “123456”;

进行mysql连接测试
192.168.233.150

[root@localhost html]# cat /var/www/html/conn.php 
<?php
$mysqli=new mysqli("192.168.233.147","wpuser","123456");
if(mysqli_connect_errno()){
echo "Failure";
$mysqli=null;
exit;
}
echo "OK\n";
$mysqli->close();
?>

测试结果:
在这里插入图片描述

2.3 分别在192.168.233.147和192.168.233.150上上传和解压缩WordPress博客程序到网页站点目录下
tar -zxvf wordpress-5.0.3-zh_CN.tar.gz
修改wordpress目录权限 
chown apache.apache wordpress -R

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装wordpress成功。

3、收集apache访问日志,并实现图形化展示。

3.1 说一下实现过程

两种方式实现:
一种: 使用filebeat工具发送日志到ELK上,kibana前端工具进行展示。

第二种
想图形化展示日志,可以使用syslog的前端展示工具loganalyzer来展示。在这之前我们先把apache的访问日志交给rsyslog,rsyslog再把对应的日志写到数据库里,然后通过日志展示工具loganalyzer去数据库把日志对出来,然后展示出来。

这里我们采用第二种

3.2 rsyslog日志服务简介

​ 日志的概念好理解,日志作用用于排障和追溯审计的等
​ 1、rsyslog是一个C/S架构的服务,可监听于某套接字,帮其它主机记录日志信息,在linux系统中可以分类两个日志:
​ klogd:kernel,记录内核相关的日志
​ syslogd:service,记录应用程序的日志
rsyslog:是CentOS 6以后的系统使用的日志系统,与之前的syslog日志系统相比,具有以下优点:
​ 支持多线程
​ 支持TCP、SSL、TLS、RELP等协议
​ 强大的过滤器,可实现过滤日志信息中的任意部分
​ 支持自定义输出格式
​ 适用于企业级别日志记录需求
​ 模块化

配置文件:
/etc/rsyslog.conf文件,开启tcp端口514

3.3 rsyslog日志收集器重要术语:


facility:设施,从功能或程序上对日志进行分类:
  auth,authpriv,cron,daemon,kern,Ipr,mail,mark,
  news,security,user,uucp,local0-local7,syslog
    这一部分主要在/etc/rsyslog.conf文件中的"RULES"部分。
  priority:优先级,这里理解为日志级别:
    debug、info、notice、warn(warning)、
    error,crit(critical),alert,emerg(panic)
  
  指定级别:
      * :所有级别
      none:没有级别
      priority:此级别以高于此级别的所有级别;
      =priority:仅此级别
3.4 配置httpd日志

把错误日志传给syslog:local1,把访问日志通过管道传给logger,然后logger再把它传给 local2

#grep -E "^Error" /etc/httpd/conf/httpd.conf
ErrorLog syslog:local1
#grep -E "^[[:space:]]*CustomLog" /etc/httpd/conf/httpd.conf    
 CustomLog "|/usr/bin/logger -p local2.info" combined

说明:以上配置是把httpd的错误日志传给local1 ,把访问日志传给local2,local1和local2是rsyslog的自定义日志设施

3.5 安装rsyslog-mysql
  这个包主要是用于rsyslog连接数据库的一个模块,除此以外还有一个创建数据库和表的SQL脚本,用此脚本可以创建存放日志的库和表
  
  在这里插入图片描述

3.6 导入数据库和表,然后在其数据库里创建一个用于rsyslog连接数据库的专有账号
[root@localhost html]# rpm -ql rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

导入sql文件
mysql < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |
| mysql              |
| performance_schema |
| test               |
| wpdb               |
+--------------------+
6 rows in set (0.00 sec)

MariaDB [(none)]> use Syslog
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [Syslog]> show tables;
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)

MariaDB [Syslog]> 
MariaDB [Syslog]> grant all on Syslog.* to rsyslog@'192.168.233.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
MariaDB [Syslog]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
3.7 配置rsyslog加载ommysql模块将local1、local2收集的日志存入数据库中
[root@localhost html]#  grep "ommysql" /etc/rsyslog.conf
$ModLoad ommysql
local1.*                                                :ommysql:192.168.233.147,Syslog,rsyslog,123456
local2.*                                                :ommysql:192.168.233.147,Syslog,rsyslog,123456

重启httpd和rsyslog服务,访问192.168.233.147/wordpress

进入Syslog数据库内,查看是否有数据
MariaDB [Syslog]> select * from SystemEvents;

配置完毕后,我们需要进行图形化查看

3.8 图形化-loganalyzer

上传loganalyzer到/var/ww/html/下,并解压(注意在httpd服务器上放一份的同时php-fpm服务器上也放一份)
在这里插入图片描述

开始进行配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要的文件创建好,授好权后,我们点击recheck
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
上图,数据库选项自己填写。
在这里插入图片描述

安装完毕后,提示错误,

3.9 出现的错误解决

我们查看php-fpm的错误日志

[root@localhost src]# tail -f /var/log/php-fpm/www-error.log 
[04-Mar-2020 08:48:07 UTC] PHP Notice:  Undefined index: ViewStringCharacterLimit in /var/www/html/loganalyzer/src/install.php on line 800
[04-Mar-2020 08:48:07 UTC] PHP Notice:  Undefined index: ViewEntriesPerPage in /var/www/html/loganalyzer/src/install.php on line 801
[04-Mar-2020 08:48:07 UTC] PHP Notice:  Undefined index: ViewEnableDetailPopups in /var/www/html/loganalyzer/src/install.php on line 802
[04-Mar-2020 08:48:07 UTC] PHP Notice:  Undefined index: EnableIPAddressResolve in /var/www/html/loganalyzer/src/install.php on line 803
[04-Mar-2020 08:48:07 UTC] PHP Notice:  Undefined index: UserDBEnabled in /var/www/html/loganalyzer/src/install.php on line 904
[04-Mar-2020 08:48:07 UTC] PHP Warning:  Unknown: open(/var/lib/php/session/sess_gsna2ushfukgjjo20k9ffqqkk6, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
[04-Mar-2020 08:48:07 UTC] PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
[04-Mar-2020 08:48:24 UTC] PHP Parse error:  syntax error, unexpected ';' in /var/www/html/loganalyzer/src/config.php on line 86
[04-Mar-2020 08:48:24 UTC] PHP Warning:  Unknown: open(/var/lib/php/session/sess_gsna2ushfukgjjo20k9ffqqkk6, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
[04-Mar-2020 08:48:24 UTC] PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0

可以看到config.php文件内,86行有错误

在这里插入图片描述
前三个值是我们设置安装loganalyzer的第三步,它这里没有写进来,手动填一下即可
在这里插入图片描述
重新访问,还是不可以。
接着查看日志
在这里插入图片描述
config.php的第99行有问题
在这里插入图片描述
说明:
这个错误和上面一样,没有给值,我们可以从后面的解释看;它说如果启用,将自动解析IP地址内联消息,并将结果添加到IP后面的括号{}中;那说明这选项要么启动,要么关闭,那我们就填一个1启用嘛
在这里插入图片描述

再次访问,下图可以看到出现页面出现了,不过还是没有日志显示。

在这里插入图片描述
出现上面红色错误时候。
解决:

需要修改config.php中的

$CFG[‘Sources‘][‘Source1‘][‘DBTableName‘] = ‘SystemEvents‘; 大小写不一致

修改完毕后,
在这里插入图片描述
显示成功。

3.10 其他问题

点击statistitcs
在这里插入图片描述
需要我们进行安装
yum install php-gd -y
然后重启php-fpm服务

如图:
在这里插入图片描述
说明:我们刚搭建,数据量很少,所以看到画的图也不是很好。可以把其他主机的日志也接入到数据库中,
当数据量比较大时,我们看统计图就可以看到那个主机的日志占比等等信息
到此已经显示图形化了。安装配置完毕。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值