当前位置: 首页 > news >正文

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

在这里插入图片描述


文章转载自:

http://EjtmANNk.frtmn.cn
http://X1ONEIOk.frtmn.cn
http://QS0yH5nj.frtmn.cn
http://7K8r4lq6.frtmn.cn
http://tbw4413c.frtmn.cn
http://RNR2uyBo.frtmn.cn
http://GbEfjiFF.frtmn.cn
http://fj9yrok5.frtmn.cn
http://HNV4WIQt.frtmn.cn
http://Ujd4XtTb.frtmn.cn
http://hlHK2phW.frtmn.cn
http://03pzbDdX.frtmn.cn
http://ePstpGfo.frtmn.cn
http://jdlWa24d.frtmn.cn
http://woAwn06u.frtmn.cn
http://fhojNGlm.frtmn.cn
http://wGVYwl2s.frtmn.cn
http://YJdEouSq.frtmn.cn
http://7EiVA6T3.frtmn.cn
http://M1hqD8EB.frtmn.cn
http://5GcAAquc.frtmn.cn
http://1oMWdOx9.frtmn.cn
http://agbCsgvf.frtmn.cn
http://HehfQJBq.frtmn.cn
http://1MRLdeIU.frtmn.cn
http://MoNFYN5R.frtmn.cn
http://L6lWEIYn.frtmn.cn
http://CYReKxfo.frtmn.cn
http://VhNctDiE.frtmn.cn
http://dwNHA1gY.frtmn.cn
http://www.dtcms.com/a/385658.html

相关文章:

  • c语言6:static 关键字控制变量/函数的 “生命周期” 与 “可见性”
  • MySQL 数据库对象与视图:从概念到实战,掌握虚拟表的核心价值
  • 【VPX361】基于3U VPX总线架构的XCZU47DR射频收发子模块
  • 消火栓设备工程量计算 -【图形识别】秒计量
  • 基于LangGraph的深度研究智能体技术解析
  • 【哈希表】1512. 好数对的数目|2506. 统计相似字符串对的数目
  • Java--多线程基础知识(2)
  • 活泼解析pthread_join函数:多线程世界的等待仪式
  • 机器视觉的智能手表后盖激光打标应用
  • 第七章 来日方长(2025.8学习总结)
  • 卡方检验公式中分母 (a+b)(c+d)(a+c)(b+d)的本质
  • IT基础知识——数据库
  • 电子衍射模拟:基于GPU加速的MATLAB/Julia实现
  • yum只安装指定软件库中的包
  • CentOS网卡接口配置文件详细指南
  • 计算机视觉 - 对比学习(上)MoCo + SimCLR + SWaV
  • SQL模糊查询完全指南
  • Qit_计网笔记
  • 新发布、却被遗忘的旗舰级编程模型、grok-code-fast-1
  • Python爬虫的反爬接口:应对策略与实战指南
  • Linux dma-buf核心函数实现分析
  • vue3 实现前端生成水印效果
  • 手机上有哪些比较好用的待办事项提醒工具
  • 二维前缀和:模板+题目
  • 充电宝方案开发,充电宝MCU控制方案设计
  • 多品牌摄像机视频平台EasyCVR海康大华宇视视频平台统一接入方案
  • 香港云服务器数据盘可以挂载到多个实例吗?
  • 【C语言】用程序求1!+2!+3!+4!+...n!的和,来看看?
  • 【C++】浅谈智能指针
  • 第三章 神经网络入门笔记:从概念到实践全解析