第十七周作业

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

主机:两台CentOS7系统主机,一台实现apache+php (node1:192.168.17.7),一台实现mariadb (node2:192.168.17.17)

软件:httpd-2.4.39.tar.bz2,php-7.3.12.tar.bz2,apr-1.7.0.tar.bz2,apr-util-1.6.1.tar.bz2,mariadb-10.2.25-linux-x86_64.tar.gz(二进制包),xcache-3.2.0.tar.gz,wordpress-5.2.2.tar.gz

因xcache-3.2.0不支持最新版的php-7.3.12,只支持到php5.6,所以在另一台主机上(192.168.27.27)实现低版本php的安装,以及xcache的编译加载;

#安装httpd与php服务

[root@centos7 ~]# yum install -y httpd php-devel php php-mysql gcc

#编译安装xcache

[root@centos7 ~]# ll xcache-3.2.0.tar.gz

-rw-r--r-- 1 root root 173368 Mar  3 00:19 xcache-3.2.0.tar.gz

[root@centos7 ~]# tar -xf xcache-3.2.0.tar.gz

[root@centos7 ~]# cd xcache-3.2.0/

[root@centos7 xcache-3.2.0]# phpize --clean

Cleaning..

[root@centos7 xcache-3.2.0]# phpize

Configuring for:

PHP Api Version:        20100412

Zend Module Api No:      20100525

Zend Extension Api No:  220100525

[root@centos7 xcache-3.2.0]# ./configure --enable-xcache

[root@centos7 xcache-3.2.0]# make && make install

[root@centos7 xcache-3.2.0]# cp xcache.ini /etc/php.d/

#编写php测试页面

[root@centos7 xcache-3.2.0]# vim /var/www/html/phpinfo.php

<?php

phpinfo();

?>


LAMP软件包的编译实现过程如下:

实现node2的mariadb服务

(1)下载mariadb-10.2.25的二制包 mariadb-10.2.25-linux-x86_64.tar.gz

[root@node2 ~]# ll mariadb*

-rw-r--r-- 1 root root 457955398 Nov 29 12:58 mariadb-10.2.25-linux-x86_64.tar.gz

(2) 新建mysql用户和数据目录

[root@node2 ~]# useradd -r -s /sbin/nologin mysql

[root@node2 ~]# mkdir /data/mysql

[root@node2 ~]# chown mysql:mysql /data/mysql

(3) 准备二进制程序

[root@node2 ~]# tar -zxvf mariadb-10.2.25-linux-x86_64.tar.gz -C /usr/local/

[root@node2 ~]# cd /usr/local/

[root@node2 local]# ln -s mariadb-10.2.25-linux-x86_64/ mysql

[root@node2 local]# chown -R root:mysql /usr/local/mysql

(4) 准备配置文件

[root@node2 mysql]# cd /usr/local/mysql/

[root@node2 mysql]# mkdir /etc/mysql

[root@node2 mysql]# cp support-files/my-huge.cnf /etc/mysql/my.cnf

[root@node2 mysql]# vim /etc/my.cnf

#在[mysqld]下添加以下四项

[mysqld]

datadir=/data/mysql

innodb_file_per_table=on

skip_name_resolve=on

character_set_server=utf8mb4    #设备字符集

(5) 初始化数据库,生成数据库文件

[root@node2 mysql]# ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql

(6) 准备服务脚本,并启动服务

[root@node2 mysql]# cp support-files/mysql.server /etc/init.d/mysqld

[root@node2 mysql]# systemcle enable mysqld

[root@node2 mysql]# systemctl start mysqld

(7)配置PATH环境变量

[root@node2 mysql]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh

[root@node2 mysql]# . /etc/profile.d/mysql.sh

(8) 安全加固,以上安装后数据库是没有密码的,可以使用安全初始化脚本修改密码

[root@node2 mysql]# mysql_secure_installation

实现node1的apache服务,编译安装httpd

(1) 准备相关安装包

[root@node1 data]# ll

total 33672

-rw-r--r-- 1 root root  872238 Dec 13 17:37 apr-1.7.0.tar.bz2

-rw-r--r-- 1 root root  428595 Dec 13 17:37 apr-util-1.6.1.tar.bz2

-rw-r--r-- 1 root root  7030539 Dec 13 17:39 httpd-2.4.39.tar.bz2

-rw-r--r-- 1 root root 15006275 Nov 19 18:20 php-7.3.12.tar.bz2

-rw-r--r-- 1 root root 11133665 Dec 13 17:57 wordpress-5.2.2.tar.gz

(2) 解压源码包,并将 apr 和 apr-util 复制到 httpd 解压包中一起编译

[root@node1 data]# tar -xf apr-1.7.0.tar.bz2

[root@node1 data]# tar -xf apr-util-1.6.1.tar.bz2

[root@node1 data]# tar -xf httpd-2.4.39.tar.bz2

[root@node1 data]# mv apr-1.7.0 httpd-2.4.39/srclib/apr

[root@node1 data]# mv apr-util-1.6.1 httpd-2.4.39/srclib/apr-util

(3) 先安装相关依赖包

[root@node1 data]# yum install-y gcc pcre-devel openssl-devel expat-devel

(4) 开始编译安装

[root@node1 data]# cd httpd-2.4.39/

[root@node1 httpd-2.4.39]# ./configure \

> --prefix=/app/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=prefork

[root@node1 httpd-2.4.39]# make && make install

(5) 创建apache用户并修改配置文件中的启动服务时所用的用户和组,默认的用户和组为 daemon

[root@node1 httpd-2.4.39]# useradd -r -s /sbin/nologin apache

[root@node1 httpd-2.4.39]# vim /app/httpd24/conf/httpd.conf

#找到以下两项,修改用户和组为apache

User apache

Group apache

(6) 配置PATH变量并启动测试

[root@node1 httpd-2.4.39]# echo 'PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/http24.sh

[root@node1 httpd-2.4.39]# . /etc/profile.d/http24.sh

[root@node1 httpd-2.4.39]# apachectl start

[root@node1 httpd-2.4.39]# curl http://192.168.27.7

<html><body><h1>It works!</h1></body></html>

实现node1的php-fpm服务,编译安装php-fpm

(1) 准备安装包

[root@node1 data]# ll php-7.3.12.tar.bz2

-rw-r--r-- 1 root root 15006275 Nov 19 18:20 php-7.3.12.tar.bz2

(2) 解压源码包,并进行编译安装

[root@node1 data]# tar -jxvf php-7.3.12.tar.bz2

[root@node1 data]# cd php-7.3.12/

[root@node1 data]# ./configure --prefix=/app/php \

> --enable-mysqlnd \

> --with-mysqli=mysqlnd \

> --with-pdo-mysql=mysqlnd \

> --with-openssl \

> --with-freetype-dir \

> --with-jpeg-dir \

> --with-png-dir \

> --with-zlib \

> --with-libxml-dir=/usr \

> --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@node1 php-7.3.12]# make && make install

(3) 准备配置文件,并修改 www.conf 配置文件中启动用户与组为 apache,默认用户与组为 nobody

[root@node1 php-7.3.12]# cp php.ini-production /etc/php.ini

[root@node1 php-7.3.12]# cd /app/php/etc/

[root@node1 etc]# cp php-fpm.conf.default php-fpm.conf

[root@node1 etc]# cd php-fpm.d/

[root@node1 php-fpm.d]# cp www.conf.default www.conf

[root@node1 php-fpm.d]# vim www.conf

#找到以下两项,将nobody改为apache

user = apache

group = apache

(4) 准备服务启动脚本,并启动 php-fpm 服务

[root@node1 php-fpm.d]# cd /data/php-7.3.12/

[root@node1 php-7.3.12]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@node1 php-7.3.12]# chmod +x /etc/init.d/php-fpm

[root@node1 php-7.3.12]# chkconfig --add /etc/init.d/php-

[root@node1 php-7.3.12]# service php-fpm start

Starting php-fpm  done

[root@node1 php-7.3.12]# ss -nlt|grep 9000

LISTEN    0      128    127.0.0.1:9000 

(5) 修改 httpd 的配置文件,让其支持 php

[root@node1 ~]# vim /app/httpd24/conf/httpd.conf

#取消下面两个模块的注释

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

#修改下面行,添加 index.php

<IfModule dir_module>

    DirectoryIndex index.php index.html

</IfModule>

#添加以下行

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

ProxyRequests Off

#以下这行如果是单主机是必需加的,如要实现多虚拟主机,在虚拟主机配置中加即可

#ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1

(6) 编写一个php页面,然后重启apache服务,通过浏览器访问

http://192.168.17.27/phpinfo.php 测试php页面能否正常访问

[root@node1 ~]# vim /app/httpd24/htdocs/index.php

<?php

phpinfo();

?>

[root@node1 ~]# apachectl restart

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

(1) 在node1节点上 /app/httpd24/htdocs/ 创建多虚拟主机所需文件夹

[root@node1 ~]# mkdir /app/httpd24/htdocs/wordpress

(2) 继续在 httpd.conf 文件中添加虚拟主机设置

[root@node1 ~]# vim /app/httpd24/conf/httpd.conf

#添加以下内容

<VirtualHost *:80>

ServerName www.blog.com

DocumentRoot /app/httpd24/htdocs/wordpress

CustomLog /app/httpd24/logs/blog.access_log combined

ErrorLog /app/httpd24/logs/blog.error_log

LogLevel warn

<Directory /app/httpd24/htdocs/wordpress>

Options none

Require all granted

</Directory>

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/wordpress/$1

</VirtualHost>

(3) 重启httpd服务

[root@node1~]# apachectl restart

(4) 准备wordpress源码,将源码复制到 /app/httpd24/htdocs/wordpress 目录,并在源码目录给 apache 用户设置访问控制权限

[root@node1 ~]# cd /data

[root@node1 data]# ll wordpress-5.2.2.tar.gz

-rw-r--r-- 1 root root 11133665 Dec 13 17:57 wordpress-5.2.2.tar.gz

[root@node1 data]# tar -xf wordpress-5.2.2.tar.gz

[root@node1 data]# cp -r wordpress/* /app/httpd24/htdocs/wordpress/

[root@node1 data]# setfacl -Rm u:apache:rwx /app/httpd24/htdocs/wordpress

(5) 在node2节点的数据库服务器上,创建数据库及连接数据库的用户

[root@node2 ~]# mysql

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 11

Server version: 10.2.25-MariaDB-log 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)]> create database wordpress;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on wordpress.* to wpuser@'192.168.17.%' identified by 'centos';

Query OK, 0 rows affected (0.01 sec)

(6) 设置 hosts 文件,使域名可以解析到主机,在 hosts 文件中添加一行(如果利用Linux图形桌面上的浏览器进行网站安装,hosts文件为 /etc/hosts,如果是用windows安装,则host文件 路径为 C:\Windows\System32\drivers\etc)

192.168.17.7www.blog.com

(7) 安装网站即可,利用浏览器安装,输出相应域名,根据安装向导安装即可

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

(1) 修改node1上 /app/httpd24/conf/httpd.conf 文件中的访问日志的配置,使其重定向至 rsyslog

[root@node1 data]# vim /app/httpd24/conf/httpd.conf

#CustomLog /app/httpd24/logs/blog.access_log combined    #找到此项,改为下面的

CustomLog "| /usr/bin/logger -p local6.info" combined  #将日志定向到本地local6

(2) 修改 rsyslog的配置文件

[root@node1 data]# vim /etc/rsyslog.conf

# Save boot messages also to boot.log    #找到此处,添加以下内容

local6.*                                                /var/log/blog_access.log

(3)重启 httpd 服务与 rsyslog 服务

[root@node1 data]# apachectl restart

[root@node1 data]# systemctl restart rsyslog

(4) 在node1上安装mysql模块相关的程序包,并将数据库创建sql文件传到node2

[root@node1 data]# yum install rsyslog-mysql

[root@node1 data]# rpm -ql rsyslog-mysql

/usr/lib64/rsyslog/ommysql.so

/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

[root@node1 data]# scp /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql 192.168.17.17:/data

(5) 在node2上导入sql文件,并新建用于连接rsyslog的用户

[root@node2 ~]# mysql < /data/mysql-createDB.sql

[root@node2 ~]# mysql

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 42

Server version: 10.2.25-MariaDB-log 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)]> grant all on Syslog.* to syslog@'192.168.17.%' identified by 'centos';

Query OK, 0 rows affected (0.00 sec)

(6) 配置node1上rsyslog的配置文件 /etc/rsyslog.conf,添加模块,使日志保存到mysql中

[root@node1 data]# vim /etc/rsyslog.conf

#### MODULES #### #找到此处,在其下添加模块

$ModLoad ommysql

#### RULES ####  #找到此处,在其下添加数据库连接信息

##facility.priority :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD

local6.*                                                :ommysql:192.168.17.17,Syslog,syslog,centos

(7) 安装LogAnalyzer

[root@node1 data]# ll loganalyzer-4.1.7.tar.gz

-rw-r--r-- 1 root root 2869395 Dec 18 19:09 loganalyzer-4.1.7.tar.gz

[root@node1 data]# tar -xf loganalyzer-4.1.7.tar.gz

[root@node1 data]# cp -a loganalyzer-4.1.7/src/ /app/httpd24/htdocs/logs

[root@node1 data]# cd /app/httpd24/htdocs/logs

[root@node1 logs]# touch config.php

[root@node1 logs]# chmod 666 config.php

(8) 在 httpd.conf 文件中添加虚拟主机设置

[root@node1 logs]# vim /app/httpd24/conf/httpd.conf

<VirtualHost *:80>

ServerName logs.blog.com

DocumentRoot /app/httpd24/htdocs/logs

<Directory /app/httpd24/htdocs/logs>

Options none

Require all granted

</Directory>

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/logs/$1

</VirtualHost>

(9) 配置loganalyzer,先重启相关服务,然后用浏览器进行安装配置,在浏览器输入 http://192.168.17.17/logs 开始安装配置

[root@node1 logs]# systemctl restart rsyslog

[root@node1 logs]# apachectl restart



©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352