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的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 安卓开发环境搭建
  2. PHP: 一个迷你的MVC小框架
  3. 检测Redis编译安装之后是否正常
  4. Linux系统安装和传文件到Linux系统
  5. 前端开发使用工具 gulp
  6. Windows系统中python的保姆级安装教程
  7. Linux gcc使用基础
  8. Linux makefile使用基础
  9. 安卓2

随机推荐

  1. 迭代angularjs中对象中的属性列表
  2. js和php时间戳的问题
  3. 如何在Safari浏览器中禁用Ajax缓存?
  4. 网站性能优化:Cache为王篇
  5. 我在显示随机选择的对象时遇到问题
  6. 没有得到Jquery / Javascript中的总和
  7. JS闭包学习笔记(1):什么是闭包
  8. 循环不能正常工作 - 守夜人
  9. 谁能帮忙注释一下这个js程序的功能?最好每
  10. JS(JavaScript)的j进一步了解9(更新中··