一簸喂、部署分離的LAMP毙死,部署到二臺(tái)服務(wù)器上燎潮,php加載xcache模塊
主機(jī):兩臺(tái)CentOS7系統(tǒng)主機(jī)喻鳄,一臺(tái)實(shí)現(xiàn)apache+php (node1:192.168.27.7),一臺(tái)實(shí)現(xiàn)mariadb (node2:192.168.27.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(二進(jìn)制包)颜曾,xcache-3.2.0.tar.gz,wordpress-5.2.2.tar.gz
因xcache-3.2.0不支持最新版的php-7.3.12秉剑,只支持到php5.6泛豪,所以在另一臺(tái)主機(jī)上(192.168.27.27)實(shí)現(xiàn)低版本php的安裝,以及xcache的編譯加載侦鹏;
#安裝httpd與php服務(wù)
[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測(cè)試頁面
[root@centos7 xcache-3.2.0]# vim /var/www/html/phpinfo.php
<?php
phpinfo();
?>
1751076-20200303013246653-1350815308.png
以下為LAMP軟件包的編譯實(shí)現(xiàn)過程
1.實(shí)現(xiàn)node2的mariadb服務(wù)
(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用戶和數(shù)據(jù)目錄
[root@node2 ~]# useradd -r -s /sbin/nologin mysql
[root@node2 ~]# mkdir /data/mysql
[root@node2 ~]# chown mysql:mysql /data/mysql
(3) 準(zhǔn)備二進(jìn)制程序
[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) 準(zhǔn)備配置文件
[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]下添加以下四項(xiàng)
[mysqld]
datadir=/data/mysql
innodb_file_per_table=on
skip_name_resolve=on
character_set_server=utf8mb4 #設(shè)備字符集
(5) 初始化數(shù)據(jù)庫诡曙,生成數(shù)據(jù)庫文件
[root@node2 mysql]# ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
(6) 準(zhǔn)備服務(wù)腳本,并啟動(dòng)服務(wù)
[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環(huán)境變量
[root@node2 mysql]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@node2 mysql]# . /etc/profile.d/mysql.sh
(8) 安全加固略水,以上安裝后數(shù)據(jù)庫是沒有密碼的价卤,可以使用安全初始化腳本修改密碼
[root@node2 mysql]# mysql_secure_installation
2.實(shí)現(xiàn)node1的apache服務(wù),編譯安裝httpd
(1) 準(zhǔn)備相關(guān)安裝包
[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 復(fù)制到 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) 先安裝相關(guān)依賴包
[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) 創(chuàng)建apache用戶并修改配置文件中的啟動(dòng)服務(wù)時(shí)所用的用戶和組慎璧,默認(rèn)的用戶和組為 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
#找到以下兩項(xiàng),修改用戶和組為apache
User apache
Group apache
(6) 配置PATH變量并啟動(dòng)測(cè)試
[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>
3.實(shí)現(xiàn)node1的php-fpm服務(wù)跨释,編譯安裝php-fpm
(1) 準(zhǔn)備安裝包
[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) 安裝相關(guān)所需包(光盤yum源與EPEL源)
[root@node1 data]# cat /etc/yum.repos.d/base.repo
[development]
name=dvdbase repo
baseurl=file:///mnt/cdrom/
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
[aliyunEpel]
name=aliyun epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-$releasever
[root@node1 data]# yum install -y libxml2-devel bzip2-devel libmcrypt-devel
#libmcrypt-devel依賴epel源
(3) 解壓源碼包胸私,并進(jìn)行編譯安裝
[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
(4) 準(zhǔn)備配置文件,并修改 www.conf 配置文件中啟動(dòng)用戶與組為 apache鳖谈,默認(rèn)用戶與組為 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
#找到以下兩項(xiàng)盖文,將nobody改為apache
user = apache
group = apache
(5) 準(zhǔn)備服務(wù)啟動(dòng)腳本,并啟動(dòng) php-fpm 服務(wù)
[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 *:*
(6) 修改 httpd 的配置文件蚯姆,讓其支持 php
[root@node1 ~]# vim /app/httpd24/conf/httpd.conf
#取消下面兩個(gè)模塊的注釋
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
#以下這行如果是單主機(jī)是必需加的,如要實(shí)現(xiàn)多虛擬主機(jī)龄恋,在虛擬主機(jī)配置中加即可
#ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
(7) 編寫一個(gè)php頁面疙驾,然后重啟apache服務(wù),通過瀏覽器訪問 http://192.168.27.27/phpinfo.php 測(cè)試php頁面能否正常訪問
[root@node1 ~]# vim /app/httpd24/htdocs/index.php
<?php
phpinfo();
?>
[root@node1 ~]# apachectl restart
二郭毕、部署wordpress論壇它碎,并實(shí)現(xiàn)正常訪問登錄論壇
(1) 在node1節(jié)點(diǎn)上 /app/httpd24/htdocs/ 創(chuàng)建多虛擬主機(jī)所需文件夾
[root@node1 ~]# mkdir /app/httpd24/htdocs/wordpress
(2) 繼續(xù)在 httpd.conf 文件中添加虛擬主機(jī)設(shè)置
[root@node1 ~]# vim /app/httpd24/conf/httpd.conf
#添加以下內(nèi)容
<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服務(wù)
[root@node1 ~]# apachectl restart
(4) 準(zhǔn)備wordpress源碼,將源碼復(fù)制到 /app/httpd24/htdocs/wordpress 目錄,并在源碼目錄給 apache 用戶設(shè)置訪問控制權(quán)限
[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節(jié)點(diǎn)的數(shù)據(jù)庫服務(wù)器上扳肛,創(chuàng)建數(shù)據(jù)庫及連接數(shù)據(jù)庫的用戶
[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.27.%' identified by 'centos';
Query OK, 0 rows affected (0.01 sec)
(6) 設(shè)置 hosts 文件傻挂,使域名可以解析到主機(jī),在 hosts 文件中添加一行(如果利用Linux圖形桌面上的瀏覽器進(jìn)行網(wǎng)站安裝挖息,hosts文件為 /etc/hosts金拒,如果是用windows安裝,則host文件 路徑為 C:\Windows\System32\drivers\etc)
192.168.27.7 www.blog.com
(7) 安裝網(wǎng)站即可套腹,利用瀏覽器安裝绪抛,輸出相應(yīng)域名,根據(jù)安裝向?qū)О惭b即可
1.png
2.png
3.png
4.png
5.png
6.png
7.png
三电禀、收集apache訪問日志幢码,并實(shí)現(xiàn)圖形化展示
軟件:loganalyzer-4.1.7.tar.gz
(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 #找到此項(xiàng)尖飞,改為下面的
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 #找到此處症副,添加以下內(nèi)容
local6.* /var/log/blog_access.log
(3) 重啟 httpd 服務(wù)與 rsyslog 服務(wù)
[root@node1 data]# apachectl restart
[root@node1 data]# systemctl restart rsyslog
(4) 在node1上安裝mysql模塊相關(guān)的程序包,并將數(shù)據(jù)庫創(chuàng)建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.27.17:/data
(5) 在node2上導(dǎo)入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.27.%' 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 #### #找到此處咕娄,在其下添加數(shù)據(jù)庫連接信息
##facility.priority :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD
local6.* :ommysql:192.168.27.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 文件中添加虛擬主機(jī)設(shè)置
[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,先重啟相關(guān)服務(wù)珊擂,然后用瀏覽器進(jìn)行安裝配置圣勒,在瀏覽器輸入 http://192.168.27.17/logs 開始安裝配置
[root@node1 logs]# systemctl restart rsyslog
[root@node1 logs]# apachectl restart
1.png
2.png
3.png
4.png
5.png
6.png