linux練習題十七

目錄

 

一、部署分離的LAMP,部署到二臺服務器上,php加載xcache模塊

二、部署wordpress論壇,並實現正常訪問登錄論壇。

三、收集apache訪問日誌,並實現圖形化展示。


一、部署分離的LAMP,部署到二臺服務器上,php加載xcache模塊

二、部署wordpress論壇,並實現正常訪問登錄論壇。

 

示例1:基於yum源和php模塊實現wordpress個人博客系統

yum源安裝包:
httpd-2.4.6-90.el7.centos.x86_64
php-mysql-5.4.16-46.el7.x86_64
php-5.4.16-46.el7.x86_64
php-xcache-3.1.1-1.el7.x86_64.rpm    #epel源

兩臺主機,
一臺httpd+php服務器,一臺mariadb服務器
1、http服務器安裝軟件包,啓動服務
yum install httpd php php-mysql php-xcache
systemctl start httpd

2、http服務器安裝wordpress
tar xvf wordpress-5.0.3-zh_CN.tar.gz -C /var/www/html/
setfacl -Rm u:apache:rwx /var/www/html/wordpress

3、mysql服務器配置
yum install mariadb-server
mysql> create database wpdb;
mysql> grant all on wpdb.* to wpuser@'192.168.37.%' identified by 'centos';

4、客戶端訪問
http://192.168.44.7/wordpress

測試訪問速度:
ab -c10 -n 100 http://192.168.44.7/wordpress

 

示例2:基於yum源和php-fpm實現wordpress個人博客系統

yum源安裝包:
httpd-2.4.6-90.el7.centos.x86_64
php-mysql-5.4.16-46.el7.x86_64
php-fpm-5.4.16-48.el7.x86_64
php-xcache-3.1.1-1.el7.x86_64.rpm    #epel源

wordpress-5.0.3-zh_CN.tar.gz

兩臺主機,
一臺httpd+php-fpm服務器,一臺mariadb服務器
1、http服務器安裝軟件包,啓動服務
yum install httpd php-fpm php-mysql php-xcache

2、修改http配置
vim /etc/httpd/conf/httpd.conf
user apache
group apache
#啓用代理
LoadModule proxy_module modules/mod_proxy.so
#啓用fcgi代理
DirectoryIndex index.php index.html  
ProxyRequests Off
#啓用代理轉發
ProxyPassMatch "^/.*\.php(/.*)?$" "fcgi://localhost:9000/var/www/html"

3、修改php-fpm配置
vim /etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1

systemctl restart httpd php-fpm

4、http服務器解壓wordpress包
tar xvf wordpress-5.0.3-zh_CN.tar.gz -C /var/www/html/
setfacl -Rm u:apache:rwx /var/www/html/wordpress
cd /var/www/html/wordpress
cp wp-config-sample.php wp-config.php
vim wp-config.php

5、mariadb服務器創建數據庫和用戶
yum install mariadb-server
mysql> create database wpdb;
mysql> grant all on wpdb.* to wpuser@'192.168.37.%' identified by 'centos';

4、客戶端訪問
http://192.168.44.7/wordpress


測試訪問速度:
ab -c10 -n 100 http://192.168.44.7/wordpress

 實現效果如下圖:

 

示例3:編譯安裝httpd+php-fpm+mariadb實現多虛擬主機的wordpress個人博客系統和discuz論壇

環境:一臺apache+php-fpm、一臺mariadb

軟件版本:

apr-1.7.0.tar.bz2  

apr-util-1.6.1.tar.bz2

httpd-2.4.39.tar.bz2

php-7.3.7.tar.xz  

Discuz_X3.3_SC_UTF8.zip      

wordpress-5.2.2.tar.gz

mariadb-10.2.25-linux-x86_64.tar.gz

 

編譯安裝mariadb

1、準備用戶
useradd -r -s /sbin/nologin mysql -d /data/mysql
groupadd -r  mysql
2、準備數據目錄
mkdir /data/mysql
chown mysql.mysql /data/mysql
3、準備二進制程序
tar xvf mariadb-10.2.25-linux-x86_64.tar.gz -C /usr/local
cd /usr/local
ln -sv mariadb-10.2.25-linux-x86_64 mysql
chown -R root.root /usr/local/mysql/
4、準備配置文件
mkdir /etc/mysql/
cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf -p
[mysqld]中添加三個選項:
datadir = /data/mysql
innodb_file_per_table = on
skip_name_resolve = on 禁止主機名解析,建議使用
5、創建數據庫文件
cd /usr/local/mysql/
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
6、準備服務腳本,並啓動服務
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start
7、PATH路徑
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
8、安全初始化
/user/local/mysql/bin/mysql_secure_installation
9、創建數據庫
mysql>create database wordpress;
mysql>create database discuz;
mysql>grant all on wordpress.* to wordpress@'192.168.44.%' identified by 'centos';
mysql>grant all on discuz.* to discuz@'192.168.44.%' identified by 'centos';

編譯安裝httpd

1、準備編譯環境
yum install gcc pcre-devel openssl-devel expat-devel -y
for p in *.bz2 ;do tar xvf $p;done
mv apr-1.7.0 httpd-2.4.39/srclib/apr
mv apr-util-1.6.1 httpd-2.4.39/srclib/apr-util
2、準備用戶
useradd -r -s /sbin/nologin apache
3、編譯安裝
cd 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=mos
--with-mpm=prefork
make -j 4 && make install
#啓動服務
apachectl start
5、PATH路徑
echo 'PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/httpd24.sh
. /etc/profile.d/httpd24.sh
6、修改配置文件
vim /app/httpd24/conf/httpd.conf
取消註釋兩行:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
修改三行:
DirectoryIndex index.php index.html   
User apache
Group apache
添加三行:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
增加虛擬主機
<virtualhost *:80>
servername blog.xiaomo.com
documentroot /data/wordpress
<directory /data/wordpress>
require all granted
</directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/wordpress/$1
</virtualhost>

<virtualhost *:80>
servername forum.xiaomo.com
documentroot /data/discuz
<directory /data/discuz>
require all granted
</directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/discuz/$1
</virtualhost>    

7、準備頁面文件
mkdir /data/discuz
unzip Discuz_X3.3_SC_UTF8.zip
mv /upload/* discuz
tar xvf wordpress-5.2.tar.gz -C /data
setfacl -Rm u:apache:rwx /data/{wordpress,discuz}

編譯安裝php-fpm

1、準備編譯環境
yum install libxml2-devel bzip2-devel libmcrypt-devel

2、編譯安裝
tar xvf php-7.3.7.tar.xz
cd php-7.3.7/
./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
make && make install

3、準備配置文件
cp php.ini-production /etc/php.ini
#準備啓動文件
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
#準備fpm配置文件
cd /app/php/etc
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
vim /app/php/etc/php-fpm.d/www.conf
修改以下兩行
user = apache
group = apache

4、啓動服務
service php-fpm start

編譯安裝x-cache

#安裝依賴包
yum -y install gcc php-devel
#解壓包
tar xvf xcache-3.2.0.tar.bz2
#生成編譯環境
cd xcache-3.2.0
phpize --clean && phpize
#編譯安裝
./configure --enable-xcache
make && make install
#準備配置文件
cp xcache.ini /etc/php.d/
#重啓httpd服務
apachectl stop;apachectl start

客戶端配置
/etc/hosts
192.168.44.7 blog.xiaomo.com forum.xiaomo.com

實現如下圖:

 

 

 

三、收集apache訪問日誌,並實現圖形化展示。

注:在上題示例3的環境中實現

將apache的訪問日誌重定向到rsyslog

#修改http服務器配置
vim /app/httpd24/conf/httpd.conf
#CustomLog "logs/access_log" common
CustomLog "|/usr/bin/logger -p local6.info" combined
#修改http服務器的rsyslog配置
vim /etc/rsyslog.conf
local6.*                                                /var/log/access.log
systemctl restart rsyslog.service

配置rsyslog將日誌存放在MySQL數據庫中

#準備MySQL Server
#在http服務器上安裝mysql模塊相關的程序包
yum install rsyslog-mysql
#在mysql服務器上授權rsyslog能連接至當前服務器
grant all on Syslog.* to 'sysloguser'@'192.168.44.%' identified by 'centos';
#在http服務器上爲rsyslog創建數據庫及表;
mysql -usysloguser -h192.168.44.17 -pcentos </usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
#配置rsyslog將日誌保存到mysql中
#### MODULES ####
$ModLoad ommysql
#### RULES ####
local6.*                                               :ommysql:192.168.44.17,Syslog,sysloguser,centos
注:注意數據庫名、表名的大小寫。

安裝LogAnalyzer

#解壓安裝包
tar xvf loganalyzer-4.1.7.tar.gz
#準備頁面
cp -a loganalyzer-4.1.7/src /app/httpd24/htdocs/loganalyzer
#準備配置
cd /app/httpd24/htdocs/loganalyzer
touch config.php
chmod 666 config.php
#配置loganalyzer
apachectl stop;apachectl start
#安全加強
cd /var/www/html/loganalyzer
chmod 644 config.php

增加一個虛擬主機

增加虛擬主機
vim /app/httpd24/conf/httpd.conf

<virtualhost *:80>
servername logs.xiaomo.com
documentroot /app/httpd24/htdocs/loganalyzer
<directory /app/httpd24/htdocs/loganalyzer>
require all granted
</directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/wordpress/$1
</virtualhost>


客戶端增加host配置:
192.168.44.7 logs.xiaomo.com

瀏覽器訪問:
http://192.168.44.7/loganalyzer

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章