shell脚本部署lamp
#!/bin/bash
#关闭防火墙和selinux
echo “正在关闭防火墙和selinux…”
systemctl stop firewalld &>/dev/null
systemctl disable firewalld &>/dev/null
setenforce 0
echo “关闭成功”
echo “正在部署yum仓库…”
cd /etc/yum.repos.d/
rm -rf *
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
echo “yum仓库部署完成”
echo “正在部署相关工具包…”
yum -y install epel-release &>/dev/null
yum -y install bzip2 vim make wget openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ libxml2-devel &>/dev/null
echo “工具包部署完成”
echo “正在部署apr…”
cd /root
tar -xzvf apr-1.7.0.tar.gz &>/dev/null
cd apr-1.7.0/
sed -i ‘/RM"RM "RM"cfgfile"/d’ configure
./configure --prefix=/usr/local/apr &>/dev/null
make &>/dev/null
make install &>/dev/null
echo “apr部署完成”
echo “正在部署apr-util…”
cd /root
tar -xzvf apr-util-1.6.1.tar.gz &>/dev/null
cd apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr &>/dev/null
make &>/dev/null
make install &>/dev/null
echo “apr-util部署完成”
echo “正在部署apache…”
cd /root
tar -xzvf httpd-2.4.54.tar.gz &>/dev/null
cd httpd-2.4.54/
./configure --prefix=/usr/local/apache
–sysconfdir=/etc/httpd24
–enable-so
–enable-ssl
–enable-cgi
–enable-rewrite
–with-zlib
–with-pcre
–with-apr=/usr/local/apr
–with-apr-util=/usr/local/apr-util/
–enable-modules=most
–enable-mpms-shared=all
–with-mpm=prefork &>/dev/null
make &>/dev/null
make install &>/dev/null
echo “httpd部署完成”
echo “启用apache服务”
/usr/local/apache/bin/apachectl start
echo “启用完成”
#部署mysql
echo “正在创建mysql用户…”
id mysql &>/dev/null
if [ $? -eq 0 ];then
echo “mysql用户已存在”
else
useradd -r -M -s /sbin/nologin mysql
echo “mysql用户已创建”
fi
echo “正在安装依赖包…”
yum -y install libncurses* &>/dev/null
echo “依赖包已安装”
echo “正在配置mysql…”
cd /root
tar -xzvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local &>/dev/null
#创建软连接
ln -s /usr/local/mysql-5.7.37-linux-glibc2.12-x86_64 /usr/local/mysql
mkdir -p /opt/data
#更改mysql所有者和所有组
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /opt/data
echo “mysql配置完成”
echo “正在初始化数据库…”
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data/ &>/dev/null
ln -s /usr/local/mysql/include/ /usr/local/include/mysql
echo ‘/usr/local/mysql/lib’ > /etc/ld.so.conf.d/mysql.conf
ldconfig
echo “数据库初始化完成”
echo “正在编辑mysql配置文件…”
cat > /etc/my.cnf << EOF
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
EOF
sed -ri “s#^(basedir=).#\1/usr/local/mysql#g" /usr/local/mysql/support-files/mysql.server
sed -ri "s#^(datadir=).#\1/opt/data#g” /usr/local/mysql/support-files/mysql.server
echo “配置完成”
echo “配置mysqld服务的单元文件…”
cat > /usr/lib/systemd/system/mysqld.service << EOF
[Unit]
Description=mysql server daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
EOF
echo “配置完成”
echo “启动mysql服务”
systemctl daemon-reload &>/dev/null
systemctl enable --now mysqld &>/dev/null
echo “正在给mysql配置环境变量”
echo ‘export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH’ >> /etc/profile
echo “配置完成”
source /etc/profile
echo “给数据库设置密码”
read -p “请给数据库输入密码:” PASSWORD
mysql -uroot -e “set password=password(‘$PASSWORD’)”
echo “数据库部署完成”
#部署php
echo “安装依赖包…”
yum -y install
–libjpeg
–libjpeg-devel
–libpng libpng-devel
–freetype freetype-devel
–libxml2
–libxml2-devel
–zlib zlib-devel
–curl curl-devel &>/dev/null
echo “依赖包安装完成”
echo “正在部署php…”
cd /root
tar -xjvf php-7.1.10.tar.bz2 &>/dev/null
cd /root/php-7.1.10
./configure
–prefix=/usr/local/php
–with-apxs2=/usr/local/apache/bin/apxs
–with-mysql-sock=/tmp/mysql.sock
–with-mysqli
–with-zlib
–with-curl
–with-gd
–with-jpeg-dir
–with-png-dir
–with-freetype-dir
–with-openssl
–enable-mbstring
–enable-xml
–enable-session
–enable-ftp
–enable-pdo
–enable-tokenizer
–enable-zip &>/dev/null
make &>/dev/null
make install &>/dev/null
echo “php部署完成”
echo “修改php配置文件…”
cd /root/php-7.1.10
cp php.ini-development /usr/local/php/lib/php.ini
#设置时区
sed -ri ‘s#^;date.timezone .*#date.timezone = Asia/Shanghai#’ /usr/local/php/lib/php.ini
echo AddType application/x-httpd-php .php >> /etc/httpd24/httpd.conf
echo AddType application/x-httpd-php-source .phps >> /etc/httpd24/httpd.conf
sed -ri ‘s#DirectoryIndex index.html#DirectoryIndex index.html index.php#’ /etc/httpd24/httpd.conf
cd /usr/local/apache/htdocs
rm -f /usr/local/apache/htdocs/index.html
echo -e ‘<?php \n phpinfo(); \n ?>’ > index.php
echo “php配置完成”
echo “重启apache服务”
/usr/local/apache/bin/apachectl stop &>/dev/null
/usr/local/apache/bin/apachectl start &>/dev/null