LAMP 环境一键部署脚本(Apache+MySQL+PHP) - 实践

news/2025/9/22 16:51:06/文章来源:https://www.cnblogs.com/yfceshi/p/19105573

LAMP 环境一键部署脚本(Apache+MySQL+PHP)

在这里插入图片描述

下载依赖包:

[root@stw ~]# rz -E
rz waiting to receive.
[root@stw ~]# rz -E
rz waiting to receive.
[root@stw ~]# rz -E
rz waiting to receive.
[root@stw ~]# rz -E
rz waiting to receive.
[root@stw ~]# rz -E
rz waiting to receive.
[root@zhangyiwei ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg 模板 下载
apr-util-1.6.1.tar.gz mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz 视频 音乐
apr-1.7.0.tar.gz 图片 桌面
apr-1.7.0.tar.gz.0 httpd-2.4.54.tar.gz php-7.1.10.tar.bz2 公共 文档

安装Apache:

创建Apache安装脚本:
[root@zhangyiwei ~]# cat apache_install.sh 
#!/bin/bash
#配置yum仓库
echo "正在部署yum仓库"
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
yum -y install epel-release &>/dev/null
echo "yum仓库部署完成"
echo "正在安装需要的工具包,请稍后..."
yum -y install bzip2 vim make wget openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ libxml2-devel &>/dev/null
echo "正在部署apr"
tar -xzvf /root/apr-1.7.0.tar.gz &>/dev/null
cd /root/apr-1.7.0
sed -i '/$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 /root/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-utils部署完成"
echo "正在部署apache"
cd /root
tar -xzvf httpd-2.4.54.tar.gz &>/dev/null
cd /root/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
/usr/local/apache/bin/apachectl start
echo "apache部署完成"
运行脚本:
[root@zhangyiwei ~]# bash apacche_install.sh 
正在部署yum仓库
yum仓库部署完成
正在安装需要的工具包,请稍后...
正在部署apr
apr部署完成
正在部署apr-util
apr-utils部署完成
正在部署apache
apache部署完成
# 查看端口可以看见http服务已经占用了80端口
[root@zhangyiwei ~]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:6000 *:*
LISTEN 0 5 192.168.122.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 127.0.0.1:6010 *:*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::6000 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 ::1:631 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 128 ::1:6010 :::*

访问http服务:

在这里插入图片描述

安装mysql:

创建mysql安装脚本:
[root@zhangyiwei ~]# cat mysql_install.sh
#!/bin/bash
#部署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
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 "mysql配置文件编辑完成"
echo "配置mysqld服务的单元文件"
cat > /usr/lib/systemd/system/mysqld.service <<
EOF
[Unit]
Description=mysql server daemon
After=network.targe
[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 "启动mysqld服务"
systemctl daemon-reload
systemctl enable --now mysqld
echo "配置mysql的环境变量"
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile
echo "mysql的环境变量配置完成"
echo "给数据库设置密码"
read -p "请输入您要设置的数据库密码:" PASSWD
mysql -uroot -e "set password=password('$PASSWD')"
echo "密码设置成功"
echo "数据库部署完成"
运行脚本:[root@zhangyiwei ~]# bash mysql_install.sh 
创建mysql用户
mysql用户创建完成
正在安装工具包
工具包已安装完成
正在配置mysql
mysql配置完成
正在初始化数据库
初始化数据库已完成
正在编辑mysql配置文件
mysql配置文件编辑完成
配置mysqld服务的单元文件
启动mysqld服务
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
配置mysql的环境变量
mysql的环境变量配置完成
给数据库设置密码
请输入您要设置的数据库密码:123456
密码设置成功
数据库部署完成
安装PHP:
创建PHP安装脚本:
[root@zhangyiwei ~]# cat PHP_install.sh 
#!/bin/bash
#部署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
echo "php包文件解压完成"
echo "正在配置编译安装php"
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的配置编译安装"
#配置php
echo "配置php"
#测试环境时使用php.ini-development文件,生产环境使用php.ini-production文件
cp php.ini-development /usr/local/php/lib/php.ini
#修改php配置文件,设置时区
sed -i 's/;date.timezone =/date\.timezone = \Asia\/Shanghai/' /usr/local/php/lib/php.ini
#修改httpd服务配置文件,让apache支持php
echo "AddType application/x-httpd-php .php" >> /etc/httpd24/httpd.conf
echo "AddType application/x-httpd-php-source .phps" >> /etc/httpd24/httpd.conf
sed -i 's/index.html/index\.php index\.html/' /etc/httpd24/httpd.conf
#让httpd支持index.php网页
rm -rf /usr/local/apache/htdocs/index.html
cat > /usr/local/apache/htdocs/index.php <<
EOF
<?php
phpinfo();
?>
EOF
echo "启动服务"
/usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl start
运行脚本:
[root@zhangyiwei ~]# bash PHP_install.sh 
正在安装依赖包...
依赖包安装完成
正在解压php包文件
php包文件解压完成
正在配置编译安装php
已完成php的配置编译安装
配置php
启动服务

此时访问http服务就会显示LAMP架构的PHP网页:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

东莞洪梅网站建设建站合同

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。本节课就手把手教大家如何控制视频的暂停播放和继续播放&#xff0c;希望大家学习之后能够有所收获~&#xff01;&#x1f308; 目录 &#x1f680;1.技术介绍 &#x1f680;2.实现代码 &#x1f680;1.技术介绍…

福州网站定制公司有免费注册网站吗

1.4 C对C语言数据类型的扩展1.4.1 结构体1.4.2 联合1.4.3 枚举1.4.4 布尔1.4.5 字符串 1.4 C对C语言数据类型的扩展 基本的数据类型 char、unsigned char、int、short、unsigned shor、long、unsigned long、float、double、long double与C语言相同。扩展了bool类型&#xff0…

济南做平台网站的前端2024年好找工作吗

一、体系结构相关术语&#xff0c;逻辑存储结构&#xff0c;物理存储结构&#xff0c;服务器结构&#xff0c;常用数据字典 1.1、数据库管理系统中3个重要概念&#xff1a;实例&#xff0c;数据库&#xff0c;数据库服务器 1-实例是一组oracle后台进程以及在服务器中分配的共…

普定县建设局网站深圳全网推广方案

[html] 简述下html5的离线储存原理&#xff0c;同时说明如何使用&#xff1f; 原理&#xff1a;HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术)&#xff0c;通过这个文件上的解析清单离线存储资源&#xff0c;这些资源就会像cookie一样被存储了下来。…

平邑网站制作基本seo

易成新能11月17日晚公告称&#xff0c;拟通过向债权人发行股份及支付现金方式&#xff0c;合计作价28.29亿元&#xff0c;取得破产重整后江西赛维100%股权和新余赛维100%股权。 同时&#xff0c;公司拟向控股股东中国平煤神马集团等5名对象&#xff0c;募集配套资金不超过21亿元…

淘宝联盟自建网站教程书法网站优化关键词

1、注意Jmeter与jdk之间的版本对应 2、Jmeter的作用&#xff1a; jmeter可以做接口测试和压力测试。其中接口测试的简单操作包括做http脚本&#xff08;发get/post请求、加cookie、加header、加权限认证、上传文件&#xff09;、做webservice脚本、参数化、断言、关联&#x…

国家城乡和建设厅特殊工种网站wordpress图片一排

远创智控YC-ECT-RTU通讯网关具有EtherCAT从站功能&#xff0c;主要功能是将EtherCAT网络和Modbus-RTU网络连接起来。在使用方面&#xff0c;本网关可以连接到EtherCAT总线中作为从站使用&#xff0c;也可以连接到Modbus-RTU总线中作为主站或从站使用。这款通讯网关还支持多种不…

网站如何做移动网站网店推广的发展趋势

目录 D - Tile Pattern 题目大意&#xff1a; 思路&#xff1a; 代码&#xff1a; D - Tile Pattern D - Tile Pattern (atcoder.jp) 题目大意&#xff1a; 给你一个n和q&#xff0c;n为局部棋盘大小(n*n) 并且给出局部棋盘中黑白子位置的放置情况&#xff0c;q为查询次数…

中英文双语网站模板wordpress仿站入门

说起SFP光模块&#xff0c;我们都不陌生。SFP即SMALL FORM PLUGGABLE&#xff08;小型可插拔&#xff09;的缩写&#xff0c;它是千兆以太网光模块最常使用的封装之一&#xff0c;是千兆以太网的一种行业标准。那么&#xff0c;常见的SFP光模块有哪些呢&#xff1f;接下来我们就…

【ubuntu24.04】NFS机械硬盘无法挂载成功 - 实践

【ubuntu24.04】NFS机械硬盘无法挂载成功 - 实践2025-09-22 16:41 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…

VTable-Sheet:重新定义Web电子表格的开源解决方案

导读 VTable-Sheet是一个轻量级、高性能的电子表格组件,专为现代Web应用设计。它采用Canvas渲染技术,支持海量数据的流畅展示和编辑,为开发者提供了一个功能完备、易于集成的电子表格解决方案。核心能力 1. 高效性能…

bpftrace测量函数耗时

bpftrace测量函数耗时bpftrace可以通过在函数开始和结束时打桩,测量两者的间隔得到函数的执行时间。目前能够在内核函数返回时时插装的主要是kprobe。下面是一个例子:#!/usr/bin/bpftracekprobe:try_to_wake_up {@st…

Coolmuster Android Assistant:Windows架构下的Android设备管理专家

Coolmuster Android Assistant:Windows架构下的Android设备管理专家pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…

libero 2025.1 Run PROGRAM_SPI_IMAGE_Action 导出 SPI auto 自动升级文件

libero 2025.1 Run PROGRAM_SPI_IMAGE_Action 导出 SPI auto 自动升级文件 libero 2025.1 Run PROGRAM_SPI_IMAGE_ActionSPI Flash lemory is not configured. Use the Configure Design Initialization Data and memo…

网站续费模版学校网站对学校建设的重要性

一、数字显示不全&#xff0c;以“#”号代替 随着列宽的缩小&#xff0c;数字逐渐被“#”号代替&#xff08;首先数字的格式是“数值型&#xff0c;且只有整数”&#xff09; 原因分析&#xff1a;单元格中的数字无法完全显示&#xff0c;Excel会自动用“#”号填充剩余的空间 解…

出国做博士后网站wordpress自动评论

1 先修改“Project name"方法如下&#xff1a; 2 再修改“下载地址和下载后的项目名称”方法如下&#xff1a; 这样就修改完成了。

神马网站排名广州十大网站开发公司

1.软件可靠性评价概述 软件可靠性评价是软件可靠性活动的重要组成部分&#xff0c;既适用于软件开发过程&#xff0c;也可针对最终软件系统。在软件开发过程中使用软件可靠性评价&#xff0c;可以使用软件可靠性模型&#xff0c;估计软件当前的可靠性&#xff0c;以确认是否可以…

泊头网站排名优化备案时网站名称怎么写

java中hashmap面试中最常见的问题是“ HashMap如何在Java中工作”&#xff0c;“ HashMap的获取和放置方法如何在内部工作”。 在这里&#xff0c;我试图通过一个简单的示例来解释内部功能。 而不是通过理论&#xff0c;我们将首先从示例开始&#xff0c;以便您可以更好地理解&…

全国高端网站技术支持 东莞网站建设东莞天助

本篇文章主要介绍html5代码如何实现进度条功能&#xff0c;希望对大家有所帮助。html5代码实现进度条功能具体代码示例如下&#xff1a;/*实现进度条的功能*/下载进度&#xff1a;/*js代码*/var pgdocument.getElementById(pg);setInterval(function(e){if(pg.value!100) pg.va…

怎么建设自己网站祁东网站设计公司

MQTT协议全称是Message Queuing Telemetry Transport&#xff0c;翻译过来就是消息队列遥测传输协议&#xff0c;它是物联网常用的应用层协议&#xff0c;运行在TCP/IP中的应用层中&#xff0c;依赖TCP协议&#xff0c;因此它具有非常高的可靠性&#xff0c;同时它是基于TCP协议…