编写 shell 脚本实现二进制安装 LAMP 架构的 word press

编写 shell 脚本实现二进制安装 LAMP 架构的 word press

环境准备

  • 虚拟机 VMware
  • OS centos8
  • http 2.46
  • mariadb 10.5.6
  • php 7.4.12

前期准备

  • 关闭防火墙
  • 设置selinux=disabled
[root@83 data]# cat install_lamp.sh 
#!/bin/bash

echo “提前准备好相关软件包”
# 安装相关依赖包
yum -y install libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel openssl-devel autoconf automake libtool &> /dev/null
yum -y install gcc gcc-c++ make gzip wget curl pcre-devel expat-devel libaio-devel ncurses-compat-libs &> /dev/null
install_mariadb(){

	echo "开始编译安装mariadb10.5.6"
	# 创建用户
	useradd -r -s /sbin/nologin mysql

	# 解压软件包到相关目录下
	tar xf mariadb-10.5.6-linux-systemd-x86_64.tar.gz -C /usr/local/

	# 创建软连接并授权
	cd /usr/local/;ln -s mariadb-10.5.6-linux-systemd-x86_64 mysql;chown -R root.root mysql
	
	# 准备数据保存目录,并授权
	mkdir -p /data/mysql;chown -R mysql.mysql /data/mysql

	# 编写my.cnf配置文件
	cat > /etc/my.cnf <<EOF
[mysqld]
	# 指定数据库数据存放路径
datadir=/data/mysql
	# 指定套间字路径
socket=/data/mysql/mysql.sock
	# 设置日志文件路径
log-error=/data/mysql/mysqld.log
	#关闭DNS反向解析
skip_name_resolve=on
port=3306
    #pid-file=/tmp/mysql.pid

[client]
port=3306
	# 指定套间字路径
socket=/data/mysql/mysql.sock
EOF
	# 准备PATH变量
	echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/lamp.sh
	source /etc/profile.d/lamp.sh
	ln -s /usr/local/mysql/bin/* /usr/bin/

	# 执行脚本,进行数据库初始化
	cd /usr/local/mysql; ./scripts/mariadb-install-db --user=mysql --datadir=/data/mysql &> /dev/null
	
	# 将MySQL添加到开机自启
	cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
	systemctl daemon-reload
	chkconfig --add mysqld
	service mysqld start
	
	#为wordpress应用准备数据库和用户
	mysql -e "create database wordpress;create user 'wordpress'@'10.0.0.%' identified by '123456';grant all on wordpress.* to 'wordpress'@'10.0.0.%';"
	echo "mysql 已安装成功,为wordpress创建的用户为:wordpress,密码:123456"


}

# 编译安装httpd

install_httpd(){
	echo "正在安装httpd,请稍等"
	cd /data
	tar xf httpd-2.4.46.tar.gz
	tar xf apr-1.7.0.tar.gz
	tar xf apr-util-1.6.1.tar.gz 
	# 将依赖包复制到/srclib目录下并改名
	mv apr-1.7.0 httpd-2.4.46/srclib/apr
	mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util
	# 进行编译安装
	cd /data/httpd-2.4.46
	./configure --prefix=/opt/httpd --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/null
	make -j 2 &> /dev/null && make install &> /dev/null
	# 创建用户和组并对目录文件授权
	groupadd -g 71 apache
	useradd -u 71 -g apache -s /sbin/nologin -r apache
	chown -R apache.apache /opt/httpd
	# 修改配置文件
	sed -ri -e 's/(^User ).*/\1apache/' -e 's/(^Group ).*/\1apache/' /opt/httpd/conf/httpd.conf

	# 编写service服务启动文件
	cat > /usr/lib/systemd/system/httpd.service << EOF
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
	
[Service]
Type=forking
#EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/opt/httpd/bin/httpd $OPTIONS -k start
ExecReload=/opt/httpd/bin/httpd $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH {MAINPID}
KillSignal=SIGCONT
PrivateTmp=true	
EOF

	# 重新加载服务
	systemctl daemon-reload
	systemctl restart httpd
	echo "http已安装完成"
}

# 编译安装php

install_php(){
	echo "正在编译安装PHP,请稍等"
	# 先编译安装oniguruma
	cd /data/;unzip oniguruma.zip &> /dev/null;cd oniguruma;bash autogen.sh &> /dev/null
	./configure --prefix=/opt/oniguruma --libdir=/lib64 &> /dev/null
	make -j 2 &> /dev/null && make install &> /dev/null


	# 编译安装PHP
	cd /data/;tar xf php-7.4.12.tar.gz 
	cd /data/php-7.4.12
	./configure --prefix=/opt/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/opt/httpd/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo &> /dev/null

	make -j 2 &> /dev/null && make install &> /dev/null

	libtool --finish /data/php-7.4.12/libs &> /dev/null 
	cp /data/php-7.4.12/php.ini-production /etc/php.ini
	echo "PHP安装完成"


}


# 部署wordpress
install_wordpress(){
	
	echo "配置wordpress"
	# 修改http配置文件支持php
	sed -ri -e '/AddType application\/x-gzip .gz .tgz/a AddType application\/x-httpd-php .php' -e '/AddType application\/x-gzip .gz .tgz/a AddType application\/x-httpd-php-source .phps' /opt/httpd/conf/httpd.conf
	sed -ri 's/(DirectoryIndex).*(index.html)/\1 index.php \2/' /opt/httpd/conf/httpd.conf
	cd /data/;tar xf wordpress5.4-zh_CN.tar.gz -C /opt/httpd/htdocs/
	# 授权
	chown -R apache.apache /opt/httpd/htdocs/wordpress
	
	# 重启服务
	systemctl restart httpd mysqld
	echo "wordpress 已安装完成"
}

install_mariadb
install_httpd
install_php
install_wordpress
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值