一键部署LAMP架构之wordpress

一键部署LAMP架构之wordpress

本脚本适用于centos7和centos8两个版本
centos8中依赖包oniguruma需要从github下载进行编译安装

#下载及安装oniguruma方法
yum -y install autoconf automake libtool
git clone https://github.com/kkos/oniguruma
cd oniguruma;./autogen.sh;./configure --libdir=/lib64
make -j `nproc` && make install
#!/bin/bash
#定义变量
httpd_pkg=httpd-2.4.46.tar.gz
httpd_dir=${httpd_pkg%.tar*}
apr_pkg=apr-1.7.0.tar.gz
apr_dir=${apr_pkg%.tar*}
apr_util_pkg=apr-util-1.6.1.tar.gz
apr_util_dir=${apr_util_pkg%.tar*}
mysql_pkg=mariadb-10.5.5-linux-systemd-x86_64.tar.gz
mysql_dir=${mysql_pkg%.tar*}
mysql_version=${mysql_pkg%-linux*}
wordpress_pkg=wordpress5.4-zh_CN.tar.gz
php_pkg=php-7.4.12.tar.gz
php_dir=${php_pkg%.tar*}
color(){ 
echo -e "\e[1;32m"$1"\e[0m"
}
############################################################################
#安装相关软件包及依赖包
install_package() {
	color 正在安装相关包...
	yum -y install wget libaio-devel ncurses-compat-libs gcc make pcre-devel openssl-devel expat-devel mailcap libxml2-devel libmcrypt-devel sqlite-devel oniguruma-devel 
	wget https://downloads.mariadb.org/interstitial/$mysql_version/bintar-linux-systemd-x86_64/$mysql_pkg
	wget https://downloads.apache.org/httpd/$httpd_pkg
    wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/$apr_pkg
    wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/$apr_util_pkg
	wget https://www.php.net/distributions/$php_pkg
	wget https://cn.wordpress.org/latest-zh_CN.tar.gz
}
###############################################################################
#二进制安装mariadb
install_mariadb() {
	color 正在安装数据库...
	cd;tar -xf ~/$mysql_pkg -C /usr/local &> /dev/null
    id mysql &> /dev/null || useradd -r -u 306 -s /sbin/nologin mysql
    mkdir -p  /data/mysql;chown mysql.mysql /data/mysql
    cd /usr/local;ln -s $mysql_dir mysql;chown -R root:root mysql/
#写配置文件
cat > /etc/my.cnf <<EOF
[mysqld]
port=3306
datadir=/data/mysql
socket=/data/mysql/mysql.sock
skip_name_resolve=1
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
port=3306
EOF
#安装相关包并执行数据脚本文件
	cd /usr/local/mysql;./scripts/mariadb-install-db --datadir=/data/mysql --user=mysql
#准备启动文件并启动服务
    cp /usr/local/mysql/support-files/systemd/mariadb.service /usr/lib/systemd/system/
    echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
	ln -s /usr/local/mysql/bin/mariadb /usr/bin/mysql
   	systemctl daemon-reload
    systemctl enable --now mariadb
	mysql -e 'create database wordpress'
	mysql -e "grant all on wordpress.* to wordpress@'10.0.0.%' identified by '123456'"	
}
############################################################################
#编译安装httpd
install_httpd() {
	color 正在安装apache...
	cd;tar xf ~/$httpd_pkg -C /data
	tar xf ~/$apr_pkg -C /data/$httpd_dir/srclib && mv /data/$httpd_dir/srclib/{$apr_dir,apr}
	tar xf ~/$apr_util_pkg -C /data/$httpd_dir/srclib && mv /data/$httpd_dir/srclib/{$apr_util_dir,apr-util}
	cd /data/$httpd_dir
	./configure --prefix=/apps/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=event
	make -j `nproc`  &> /dev/null && make install &>/dev/null 
	id apache &> /dev/null || useradd -s /sbin/nologin -r apache
	sed -ri -e 's/^User.*/User apache/' -e 's/^Group.*/Group apache/' -e '/<IfModule mime_module>/a    AddType application\/x-httpd-php .php' -e '/<IfModule mime_module>/a    AddType application\/x-httpd-php-source .phps' -e 's/(DirectoryIndex .*)/\1 index.php/' /apps/httpd/conf/httpd.conf
	echo 'PATH="/apps/httpd/bin:$PATH"' > /etc/profile.d/httpd.sh
	echo 'MANDATORY_MANPATH   /apps/httpd/man' >> /etc/man_db.conf
cat > /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
ExecStart=/apps/httpd/bin/apachectl start
ExecReload=/apps/httpd/bin/apachectl graceful
ExecStop=/apps/httpd/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
	systemctl daemon-reload &> /dev/null
	systemctl enable --now httpd.service
}
#######################################################################
#编译安装php
install_php() {
	color 正在安装php
	cd;	tar xf $php_pkg;	
	cd $php_dir
	./configure --prefix=/apps/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=/apps/httpd/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo
	make -j `nproc` && make install
	cp php.ini-production /etc/php.ini
}
#########################################################################
#部署wordpress
deploy_wordpress() {
	color 正在部署wordpress
	cd;tar xf $wordpress_pkg -C /apps/httpd/htdocs/
	chown -R apache.apache /apps/httpd/htdocs/wordpress
	color 部署完成
}
	install_package
	install_mariadb
	install_httpd
	install_php
	deploy_wordpress
	color 大功告成!

脚本比较粗糙,能够初步实现部署wordpress,不足之处还请各位大佬多多指点!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值