前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LAMP环境搭建WordPress自动化安装脚本

LAMP环境搭建WordPress自动化安装脚本

作者头像
子润先生
修改2021-07-06 10:51:28
3680
修改2021-07-06 10:51:28
举报
文章被收录于专栏:用户8644135的专栏

此脚本是LAMP环境安装WordPress脚本,有需要朋友可以参考,脚本内容如下:

系统环境:CentOS 7.4

软件版本:

Apache:2.4.28

Mysql:5.7.29

PHP:7.3.7

WordPress:5.4

代码语言:javascript
复制
[root@localhost ~]# vim auto_install_lamp_wordpress.sh

#!/bin/bash
#Date:2018-5-20 14:08:55
#Author Blog:
#	https://www.yangxingzhen.com
#Author WeChat:
#	微信公众号:小柒博客
#Author mirrors site:
#	https://mirrors.yangxingzhen.com
#About the Author
#	BY:YangXingZhen
#	Mail:xingzhen.yang@yangxingzhen.com
#Auto Install LAMP Environment And Wordpress
 
source /etc/rc.d/init.d/functions
 
#Define APR path variables
APR_URL=https://mirrors.yangxingzhen.com/apr
APR_FILES=apr-1.6.3.tar.gz
APR_FILES_DIR=apr-1.6.3
APR_PREFIX=/usr/local/apr
 
#Define APR-util path variables
APR_UTIL_URL=https://mirrors.yangxingzhen.com/apr-util
APR_UTIL_FILES=apr-util-1.6.1.tar.gz
APR_UTIL_FILES_DIR=apr-util-1.6.1
APR_UTIL_PREFIX=/usr/local/apr-util
 
#Define PCRE path variables
PCRE_URL=https://mirrors.yangxingzhen.com/pcre
PCRE_FILES=pcre-8.41.tar.gz
PCRE_FILES_DIR=pcre-8.41
PCRE_PREFIX=/usr/local/pcre
 
#Define Apache path variables
APACHE_URL=https://mirrors.yangxingzhen.com/apache
APACHE_FILES=httpd-2.4.28.tar.gz
APACHE_FILES_DIR=httpd-2.4.28
APACHE_PREFIX=/usr/local/apache
APACHE_INIT_FILE=/etc/init.d/httpd
 
#Define Boost path variables
Boost_URL=https://mirrors.yangxingzhen.com/mysql
Boost_File=boost_1_59_0.tar.gz
 
#Define Mysql path variables
MYSQL_URL=http://mirrors.163.com/mysql/Downloads/MySQL-5.7
MYSQL_FILES=mysql-5.7.29.tar.gz
MYSQL_FILES_DIR=mysql-5.7.29
MYSQL_PREFIX=/usr/local/mysql
MYSQL_DIR=/data/mysql
MYSQL_USER=mysql
 
#Define PHP path variables
PHP_URL=http://mirrors.sohu.com/php
PHP_FILE=php-7.3.7.tar.gz
PHP_FILE_DIR=php-7.3.7
PHP_PREFIX=/usr/local/php
USER=apache
 
#Define ZIP path variables
ZIP_URL=https://nih.at/libzip
ZIP_FILE=libzip-1.2.0.tar.gz
ZIP_FILE_DIR=libzip-1.2.0
 
#Define Wordpress path variables
WORD_URL=https://mirrors.yangxingzhen.com/wordpress
WORD_FILES=wordpress-5.4-zh_CN.zip
WORD_FILES_DIR=wordpress
 
function Install_Apache (){
#Install APR
if [ ! -d ${APR_PREFIX} ];then
	yum -y install gcc gcc-c++ wget
	cd ${HOME} && wget -c ${APR_URL}/${APR_FILES}
	tar zxf ${APR_FILES}
	cd ${APR_FILES_DIR}
	./configure --prefix=${APR_PREFIX}
	if [ $? -eq 0 ];then
		make && make install
		action "The APR Install Sussess..." /bin/true
	else
		aciton "The APR Install Failed..." /bin/false
		exit 1
	fi
else
	echo -e "\033[32mThe APR Already Install...\033[0m"
fi
 
#Install APR-util
if [ ! -d ${APR_UTIL_PREFIX} ];then
	yum -y install expat expat-devel
	cd ${HOME} && wget -c ${APR_UTIL_URL}/${APR_UTIL_FILES}
	tar zxf ${APR_UTIL_FILES}
	cd ${APR_UTIL_FILES_DIR}
	./configure --prefix=${APR_UTIL_PREFIX} --with-apr=${APR_PREFIX}
	if [ $? -eq 0 ];then
		make && make install
		action "The APR-util Install Sussess..." /bin/true
	else
		aciton "The APR-util Install Failed..." /bin/false
		exit 1
	fi
else
	echo -e "\033[32mThe APR-util Already Install...\033[0m"
fi
 
#Install PCRE
if [ ! -d ${PCRE_PREFIX} ];then
	cd ${HOME} && wget -c ${PCRE_URL}/${PCRE_FILES}
	tar zxf ${PCRE_FILES}
	cd ${PCRE_FILES_DIR}
	./configure --prefix=${PCRE_PREFIX}
	if [ $? -eq 0 ];then
		make && make install
		action "The PCRE Install Sussess..." /bin/true
	else
		aciton "The PCRE Install Failed..." /bin/false
		exit 1
	fi
else
	echo -e "\033[32mThe PCRE Already Install...\033[0m"
fi
 
#Install Apache
if [ ! -d ${APACHE_PREFIX} ];then
	yum -y install openssl openssl-devel
	cd ${HOME} && wget -c ${APACHE_URL}/${APACHE_FILES}
	tar zxf ${APACHE_FILES}
	cd ${APACHE_FILES_DIR}
	./configure --prefix=${APACHE_PREFIX} \
	--with-apr=${APR_PREFIX} \
	--with-apr-util=${APR_UTIL_PREFIX} \
	--enable-so \
	--enable-rewrite \
	--enable-ssl \
	--with-pcre=${PCRE_PREFIX} \
	--with-mpm=worker 
	if [ $? -eq 0 ];then
		make && make install
		action "The Apache Install Sussess..." /bin/true
	else
		aciton "The Apache Install Failed..." /bin/false
		exit 1
	fi
else
	echo -e "\033[32mThe Apache Already Install...\033[0m"
	exit 0
fi
}
 
function Install_Mysql (){
if [ ! -d ${MYSQL_PREFIX} ];then
#Install Package
yum -y install ncurses-devel perl perl-devel cmake wget gcc gcc-c++ bison* autoconf openssl-devel openssl
 
#Install Boost
cd ${HOME} && wget -c ${Boost_URL}/${Boost_File}
tar zxf ${Boost_File} -C /usr/local/
 
#Install MYSQL
wget -c ${MYSQL_URL}/${MYSQL_FILES}
tar zxf ${MYSQL_FILES}
cd ${MYSQL_FILES_DIR}
cmake . -DCMAKE_INSTALL_PREFIX=${MYSQL_PREFIX} \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=${MYSQL_DIR} \
-DSYSCONFDIR=/etc \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_TCP_PORT=3306 \
-DWITH_READLINE=1 \
-DMYSQL_USER=${MYSQL_USER} \
-DWITH_SSL=yes
if [ $? -eq 0 ];then
	make && make install
	action "The Mysql Install Sussess..." /bin/true
else
	action "The Mysql Install Failed..." /bin/false 
	exit 1
fi
else
	echo -e "\033[31mThe Mysql Already Install...\033[0m"
	exit 1
fi
}
 
function Install_PHP() {
#Install Libzip
yum –y install wget gcc gcc-c++
cd ${HOME} && wget -c ${ZIP_URL}/${ZIP_FILE}
tar zxf ${ZIP_FILE}
cd ${ZIP_FILE_DIR}
./configure
if [ $? -eq 0 ];then
	make && make install
	action "The Libzip Install Sussess..." /bin/true
else
	action "The Libzip Install Failed..." /bin/false
	exit 1
fi
	
cat >/etc/ld.so.conf <<EOF
/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64
EOF
ldconfig -v
 
#Install PHP
if [ ! -d ${PHP_PREFIX} ];then
#Install Package
yum -y install epel-release
yum -y install wget gcc gcc-c++ pcre pcre-devel openssl openssl-devellibxml2 libxml2-devel  bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel cmake
cd ${HOME} && wget -c ${PHP_URL}/${PHP_FILE}
tar zxf ${PHP_FILE}
cd ${PHP_FILE_DIR}
./configure --prefix=${PHP_PREFIX} \
--with-config-file-path=/etc \
--with-apxs2=/usr/local/apache/bin/apxs \
--enable-fpm \
--with-fpm-user=${USER} \
--with-fpm-group=${USER} \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache
if [ $? -eq 0 ];then
	\cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
	make && make install
	action "The PHP Install Sussess..." /bin/true
else
	action "The PHP Install Failed..." /bin/false
	exit 1
fi
else
	echo -e "\033[31mThe PHP already Install...\033[0m"
	exit 1
fi
}
 
 
 
function LAMP_Config() {
#Apache config and Integrating PHP
useradd -s /sbin/nologin ${USER} >/dev/null 2>&1
\cp ${APACHE_PREFIX}/bin/apachectl ${APACHE_INIT_FILE}
chmod o+x ${APACHE_INIT_FILE}
sed -i 's/User daemon/User apache/' ${APACHE_PREFIX}/conf/httpd.conf
sed -i 's/Group daemon/Group apache/' ${APACHE_PREFIX}/conf/httpd.conf
sed -i '/AddType *.* .tgz/a\\tAddType application/x-httpd-php .php' ${APACHE_PREFIX}/conf/httpd.conf
sed -i 's/index.html/index.php index.html/' ${APACHE_PREFIX}/conf/httpd.conf
sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/' ${APACHE_PREFIX}/conf/httpd.conf
 
#Config PHP
\cp php.ini-production /etc/php.ini
\cp ${PHP_PREFIX}/etc/php-fpm.conf.default ${PHP_PREFIX}/etc/php-fpm.conf
\cp ${PHP_PREFIX}/etc/php-fpm.d/www.conf.default ${PHP_PREFIX}/etc/php-fpm.d/www.conf
\cp sapi/fpm/php-fpm.service /usr/lib/systemd/system
cat >/usr/local/php/etc/php-fpm.d/www.conf <<EOF
[www]
listen = 0.0.0.0:9000
listen.mode = 0666
user = ${USER}
group = ${USER}
pm = dynamic
pm.max_children = 128
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 10000
rlimit_files = 1024
slowlog = log/\$pool.log.slow
EOF
 
#Mysql Config
useradd -s /sbin/nlogin mysql >/dev/null 2>&1
mkdir -p ${MYSQL_DIR}
chown -R ${MYSQL_USER}.${MYSQL_USER} ${MYSQL_DIR}
cat >/etc/my.cnf <<EOF
[mysqld]
#数据存储目录
datadir = ${MYSQL_DIR}
#socket通信文件
socket = /tmp/mysql.sock
#使用mysql用户启动
user = ${MYSQL_USER}
#MYSQL服务运行的端口号
port = 3306
#开启bin-log日志
log-bin = mysql-bin
#MYSQL服务ID号
server-id = 1
#定义error错误文件
log-error = ${MYSQL_DIR}/mysqld.log
#PID文件路径
pid-file = mysqld.pid
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#设置字符集为utf8
character-set-server = utf8
[client]
default-character-set = utf8
port = 3306
socket = /tmp/mysql.sock
[mysql]
default-character-set = utf8
EOF
 
#Initialization Mysql
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/mysql/ --basedir=/usr/local/mysql
ln -sf ${MYSQL_PREFIX}/bin/* /usr/bin
\cp ${MYSQL_PREFIX}/support-files/mysql.server /etc/init.d/mysqld
chmod o+x /etc/init.d/mysqld
 
#Start Mysql、php-fpm、Apache and Add MySQL、php-fpm、Apache boot self start
${APACHE_INIT_FILE} restart
systemctl start php-fpm
/etc/init.d/mysqld start
sed -i '/#!\/bin\/sh/a#description: apache web server' ${APACHE_INIT_FILE}
sed -i '/#!\/bin\/sh/a#chkconfig: - 20 90' ${APACHE_INIT_FILE}
chkconfig --add httpd
chkconfig httpd on
chkconfig --add mysqld
chkconfig mysqld on
systemctl enable php-fpm
}
 
function Install_WordPress() {
#WordPress Config
cd ${HOME} && wget ${WORD_URL}/${WORD_FILES}
unzip ${WORD_FILES}
\cp -a wordpress/* ${APACHE_PREFIX}/htdocs
chown -R ${USER}.${USER} ${APACHE_PREFIX}/htdocs
mysql -e "create database wordpress charset=utf8;"
mysql -e "grant all on wordpress.* to wordpress@'localhost' identified by '123456';"
mysql -e "flush privileges"
}
 
function Main() {
	Install_Apache
	Install_Mysql
	Install_PHP
	LAMP_Config
	Install_WordPress
}
 
Main

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档