LAMP分离架构部署wordpress和LogAnalyzer
16lz
2021-03-08
1、部署分离的LAMP到两台服务器上,php加载xcache模块
将LAMP架构部署到两台服务器上时,一台服务器安装httpd和php,另一台安装mariadb
在第一台虚拟机上二进制安装mariadb-10.2.37
# 安装相关软件yum install -y libaio expect# 配置安装mariadb的目录tar -xf mariadb-10.2.37-linux-systemd-x86_64.tar.gz -C /usr/local/ln -s /usr/local/mariadb-10.2.37-linux-systemd-x86_64 /usr/local/mysql# 创建用户,设置权限useradd -r -s /sbin/nologin -d /data/mysql mysqlchown -R mysql:mysql /data/mysql/chown -R root:root /usr/local/mysql# 设置PATH环境变量echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh. /etc/profile.d/mysql.sh# 初始化安装mariadbcd /usr/local/mysql/./scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql --defaults-file=/etc/my.cnf# 创建配置文件# 默认client部分和mysqld部分的socket文件路径必须都是/tmp/mysql.sock,否则无法连接mysqld服务cat > /etc/my.cnf << EOF[client]socket = /tmp/mysql.sock!includedir /etc/my.cnf.d[mysqld]datadir=/data/mysqlsocket=/tmp/mysql.sockskip_name_resolve = onlog-bin=/data/mysql/mysql-binsymbolic-links=0[mysqld_safe]log-error=/var/log/mariadb/mariadb.logpid-file=/var/run/mariadb/mariadb.pidEOF# 让systemctl命令管理mariadbcp /usr/local/mysql/support-files/systemd/mariadb.service /usr/lib/systemd/system/systemctl daemon-reload# 启动mariadb服务systemctl enable --now mariadb# 创建用于自动完成mariadb安全初始化的expect脚本cat > mysql_secure_installation.exp << EOF#!/usr/bin/expectset passwd examp1mec0mspawn /usr/local/mysql/bin/mysql_secure_installationexpect { "Enter current password" { send "\r"; exp_continue } "Y/n" { send "Y\r"; exp_continue } "New password" { send "\$passwd\r"; exp_continue } "Re-enter new password" { send "\$passwd\r"; exp_continue } "Remove anonymous users" { send "Y\r"; exp_continue } "Disallow root login remotely" { send "Y\r"; exp_continue } "Remove test database and access to it" { send "Y\r"; exp_continue } "Reload privilege tables now" { send "Y}}EOFexpect mysql_secure_installation.exp# 登录数据库mysql -uroot -pexamp1mec0m
在第二台虚拟机上编译安装http2.4
# 安装用于编译的软件yum -y install gcc make pcre-devel openssl-devel expat-devel bzip2 # 解压源码包tar xf httpd-2.4.46.tar.bz2tar xf apr-1.6.5.tar.gztar xf apr-util-1.6.1.tar.bz2mv apr-1.6.5/ httpd-2.4.46/srclib/aprmv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util# 配置编译参数,进行编译cd httpd-2.4.46./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 \> /dev/nullmake -j 7 > /dev/null && make install > /dev/null && echo OK# 创建apache用户用于运行httpduseradd -r -s /sbin/nologin apache# 让http开机运行echo '/app/httpd24/bin/apachectl start' >> /etc/rc.d/rc.localchmod +x /etc/rc.d/rc.local# 设置PATH环境变量echo "PATH=/app/httpd24/bin:$PATH" > /etc/profile.d/httpd.sh. /etc/profile && echo OK# 编辑配置文件,让http支持解析phpsed -i.bak 's/User daemon/User apache/' /app/httpd24/conf/httpd.confsed -i 's/Group daemon/Group apache/' /app/httpd24/conf/httpd.confsed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html/' /app/httpd24/conf/httpd.confsed -i '398a \ AddType application/x-httpd-php .php \ AddType application/x-httpd-php-source .phps \' /app/httpd24/conf/httpd.confecho 'ProxyRequests Off' >> /app/httpd24/conf/httpd.confsed -i 's@#LoadModule proxy_module modules/mod_proxy.so@LoadModule proxy_module modules/mod_proxy.so@' /app/httpd24/conf/httpd.conf sed -i 's@#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so@LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so@' /app/httpd24/conf/httpd.conf
在第二台虚拟机上编译安装PHP7
# 安装软件yum install -y epel-releaseyum install -y gcc libxml2-devel bzip2-devel libmcrypt-devel tar xf php-7.3.27.tar.xz# 配置编译参数,编译cd php-7.3.27/./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 \> /dev/nullmake -j 7 > /dev/null && make install > /dev/null && echo OK# 编译配置文件cp php.ini-production /etc/php.inicd /app/php/etccp php-fpm.conf.default php-fpm.confcp php-fpm.d/www.conf.default php-fpm.d/www.confsed -i.bak 's/user = nobody/user = apache/' /app/php/etc/php-fpm.d/www.confsed -i 's/group = nobody/group = apache/' /app/php/etc/php-fpm.d/www.confcp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm# 让chkconfig命令管理php-fpm,并且让php-fpm开机运行chmod +x /etc/init.d/php-fpmchkconfig --add php-fpmchkconfig php-fpm on# 安装xcache模块yum -y install php-develtar xf xcache-3.2.0.tar.gzcd xcache-3.2.0phpize --clean && phpize./configure --enable-xcache > /dev/nullmake > /dev/null && make install > /dev/nullcp xcache.ini /etc/php.d/service php-fpm startapachectl start
2、部署wordpress论坛,并实现正常访问登录论坛。
在第一个实验基础上进行配置
# 编辑http配置文件,为wordpress新建一个虚拟主机cat >> /app/httpd24/conf/httpd.conf << EOF<virtualhost *:80> servername 1.test.com documentroot /app/httpd24/htdocs/wordpress <directory /app/httpd24/htdocs/wordpress> require all granted </directory> ProxyPassMatch ^/(.*\.php)\$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/wordpress/\$1</virtualhost># 解压,部署wordpresstar xf wordpress-5.6.2.tar.gzmv wordpress /app/httpd24/htdocs/setfacl -R -m u:http:rwx /app/httpd24/htdocs/wordpress/# 在数据库服务器上创建wordpress需要的数据库cat > wordpress_init.sql << EOFcreate database wordpressdb;grant all on wordpressdb.* to 'wordpressuser'@'192.168.0.%' identified by '7toQW)gA';EOFmysql -uroot -pexamp1mec0m < wordpress_init.sql# 复制并且根据前面的sql语句编辑配置文件cp /app/httpd24/htdocs/wordpress/wp-config-sample.php /app/httpd24/htdocs/wordpress/wp-config.php
# 重启http和php-fpm服务apachectl restartservice php-fpm restart# 编辑http服务器的hosts文件echo '192.168.0.52 1.test.com log.test.com' >> /etc/hosts# 先编辑客户端的hosts文件# 再使用浏览器访问http服务器,完成wordpress的初始化
3、收集apache访问日志,并实现图形化展示。
在第一个实验的两个虚拟机的基础上进行实验
# 配置http服务器yum install rsyslog-mysql mysql -ysed -i 's@CustomLog "logs/access_log" common@CustomLog "|/usr/bin/logger -p local6.info" combined@' /app/httpd24/conf/httpd.confecho 'local6.* /var/log/access.log' >> /etc/rsyslog.confsystemctl restart rsyslog.service# 配置mysql服务器mysql -uroot -pexamp1mec0m -e"grant all on Syslog.* to 'syslog'@'192.168.0.%' identified by 'Centos';"# 配置http服务器mysql -usyslog -h192.168.0.51 -pCentos < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql cat >> /etc/rsyslog.conf << EOF\$ModLoad ommysqllocal6.* :ommysql:192.168.0.51,Syslog,syslog,CentosEOFsystemctl restart rsyslog# http服务器安装LogAnalyzertar xf loganalyzer-4.1.11.tar.gzcp -a loganalyzer-4.1.11/src /app/httpd24/htdocs/loganalyzercd /app/httpd24/htdocs/loganalyzertouch config.phpchmod 644 config.php# 创建新的虚拟主机cat >> /app/httpd24/conf/httpd.conf << EOF<virtualhost *:80> servername log.test.com documentroot /app/httpd24/htdocs/log <directory /app/httpd24/htdocs/log> require all granted </directory> ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/log/$1</virtualhost>EOF
在客户端使用浏览器访问http服务器,配置LogAnalyzer
©著作权归作者所有:来自51CTO博客作者qq5f4a594050775的原创作品,如需转载,请注明出处,否则将追究法律责任更多相关文章
- 安卓开发环境搭建
- PHP: 一个迷你的MVC小框架
- 检测Redis编译安装之后是否正常
- Linux系统安装和传文件到Linux系统
- 前端开发使用工具 gulp
- Windows系统中python的保姆级安装教程
- Linux gcc使用基础
- Linux makefile使用基础
- 安卓2