51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

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

系统环境:CentOS 7.9文章源自小柒网-https://www.yangxingzhen.cn/6762.html

软件版本:文章源自小柒网-https://www.yangxingzhen.cn/6762.html

Apache:2.4.28文章源自小柒网-https://www.yangxingzhen.cn/6762.html

Mysql:5.7.29文章源自小柒网-https://www.yangxingzhen.cn/6762.html

PHP:7.3.7文章源自小柒网-https://www.yangxingzhen.cn/6762.html

WordPress:5.4文章源自小柒网-https://www.yangxingzhen.cn/6762.html

[root@localhost ~]# vim auto_install_lamp_wordpress.sh文章源自小柒网-https://www.yangxingzhen.cn/6762.html

#!/bin/bash
#Date:2018-5-20 14:08:55
#Author Blog:
#	https://www.yangxingzhen.cn
#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 

--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}
\[ -f /usr/bin/unzip \] \|\| yum -y install unzip
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

脚本执行方式:文章源自小柒网-https://www.yangxingzhen.cn/6762.html

[root@localhost ~]# sh auto_install_lamp_wordpress.sh文章源自小柒网-https://www.yangxingzhen.cn/6762.html 文章源自小柒网-https://www.yangxingzhen.cn/6762.html
继续阅读

历史上的今天

4 月
13

赞(0)
未经允许不得转载:工具盒子 » LAMP环境搭建WordPress自动化安装脚本