广告
返回顶部
首页 > 资讯 > 精选 >怎么用shell脚本一键部署LNMP架构
  • 473
分享到

怎么用shell脚本一键部署LNMP架构

2023-06-09 11:06:27 473人浏览 八月长安
摘要

本篇内容介绍了“怎么用shell脚本一键部署LNMP架构”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!LNMP架构介绍LNMP:linux系

本篇内容介绍了“怎么用shell脚本一键部署LNMP架构”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

LNMP架构介绍

LNMP:linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx是一个高性能的Http和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。php是一种在服务器端执行的嵌入html文档的脚本语言。

原理:浏览器发送http request请求到服务器(Nginx),服务器响应并处理WEB请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。PHP解析器进程可以启动多个,进行并发执行。然后将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx.服务器再通过Http response的形式传送给浏览器。浏览器再进行解析与渲染然后进行呈现。

下面给大家介绍下使用shell脚本一键部署LNMP架构的方法,脚本如下所示:

#/bin/bash##将需要的安装包传到/opt目录下,并关闭防火墙systemctl stop firewalldsystemctl disable firewalld &>/dev/nullsetenforce 0###############Nginx#################先挂载,再安装依赖包df -h | grep /mntif [ $? -ne 0 ];thenmount /dev/cdrom /mnt &>/dev/nullfiyum -y install pcre-devel zlib-devel GCc gcc-c++ make##创建运行用户、组(Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确的控制其访问权限)useradd -M -s /sbin/nologin nginx##编译安装cd /opttar zxvf nginx-1.12.0.tar.gzcd nginx-1.12.0/./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-http_stub_status_modulemake -j 2 && make install##优化配置文件路径,并把nginx服务的可执行程序文件放入路径环境变量的目录中便于系统识别ln -s /usr/local/nginx/sbin/* /usr/local/sbin##添加Nginx系统服务cat > /lib/systemd/system/nginx.service <<EOF[Unit]Description=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecReload=/bin/kill -1 $MaiNPIDExecStop=/bin/kill -3 $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.targetEOF##修改文件权限chmod 754 /lib/systemd/system/nginx.servicesystemctl start nginx.servicesystemctl enable nginx.service &>/dev/null###############mysql#################安装Mysql环境依赖包yum -y install ncurses ncurses-devel bison cmake##创建运行用户useradd -M -s /sbin/nologin mysql##编译安装cd /opttar zxvf mysql-boost-5.7.20.tar.gzcd /opt/mysql-5.7.20cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/usr/local/mysql \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS=all \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHive_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/usr/local/mysql/data \-DWITH_BOOST=boost \-DWITH_SYSTEMD=1make -j 2 && make install##修改mysql配置文件cat > /etc/my.cnf <<EOF[client]port = 3306Socket=/usr/local/mysql/mysql.sock[mysqld]user = mysqlbasedir=/usr/local/mysqldatadir=/usr/local/mysql/dataport = 3306character-set-server=utf8pid-file = /usr/local/mysql/mysqld.pidsocket=/usr/local/mysql/mysql.sockbind-address = 0.0.0.0skip-name-resolvemax_connections=2048default-storage-engine=INNODBmax_allowed_packet=16Mserver-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTESEOF##更改mysql安装目录和配置文件的属主属组chown -R mysql:mysql /usr/local/mysql/chown mysql:mysql /etc/my.cnf##设置路径环境变量echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profilesource /etc/profile##初始化数据化cd /usr/local/mysql/bin/./mysqld \--initialize-insecure \--user=mysql \--basedir=/usr/local/mysql \--datadir=/usr/local/mysql/data##添加mysqld系统服务cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/systemctl daemon-reloadsystemctl start mysqld.servicesystemctl enable mysqld &>/dev/null##添加mysql的登录密码function mima {passwd=$1/usr/bin/expect <<-EOFspawn mysqladmin -u root -p passWord $passwdexpect "Enter" {send "\n"}expect eofEOF}mima "abc123"##授权远程登录function qwe {/usr/bin/expect <<-EOFspawn mysql -u root -pexpect "Enter" {send "abc123\n"}expect "mysql" {send "grant all privileges on *.* to 'root'@'%' identified by 'abc123';\n"}expect "mysql" {send "flush privileges;\n"}expect "mysql" {send "show databases;\n"}expect "mysql" {send "quit\n"}expect eofEOF}qwe###############PHP#################安装环境依赖包yum -y install gd \libjpeg libjpeg-devel \libpng libpng-devel \freetype freetype-devel \libxml2 libxml2-devel \zlib zlib-devel \curl curl-devel \openssl openssl-devel##编译安装cd /opttar jxvf php-7.1.10.tar.bz2cd ./php-7.1.10/./configure \--prefix=/usr/local/php \--with-mysql-sock=/usr/local/mysql/mysql.sock \--with-mysqli \--with-zlib \--with-curl \--with-gd \--with-jpeg-dir \--with-png-dir \--with-freetype-dir \--with-openssl \--enable-fpm \--enable-mbstring \--enable-xml \--enable-session \--enable-ftp \--enable-pdo \--enable-tokenizer \--enable-zipmake -j 2 && make install##路径优化ln -s /usr/local/php/bin/* /usr/local/bin/ln -s /usr/local/php/sbin/* /usr/local/sbin/##调整PHP配置文件##PHP有三个配置文件##php.ini(主配置文件)cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.inised -i '1170c mysqli.default_socket = /usr/local/mysql/mysql.sock' /usr/local/php/lib/php.inised -i '939c date.timezone = Asia/Shanghai' /usr/local/php/lib/php.iniphp -m##php-fpm.conf(进程服务配置文件)cd /usr/local/php/etccp php-fpm.conf.default php-fpm.confsed -i '17c pid = run/php-fpm.pid' /usr/local/php/etc/php-fpm.conf##www.conf(扩展配置文件)cd /usr/local/php/etc/php-fpm.dcp www.conf.default www.conf##启动php-fpmcd /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini##配置Nginx支持PHP解析sed -i '65c location ~ \.php$ {' /usr/local/nginx/conf/nginx.confsed -i '66c root html;' /usr/local/nginx/conf/nginx.confsed -i '67c fastcgi_pass 127.0.0.1:9000;' /usr/local/nginx/conf/nginx.confsed -i '68c fastcgi_index index.php;' /usr/local/nginx/conf/nginx.confsed -i '69c fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;' /usr/local/nginx/conf/nginx.confsed -i '70c include fastcgi_params;' /usr/local/nginx/conf/nginx.confsed -i '71c }' /usr/local/nginx/conf/nginx.conf##验证PHP测试页和验证数据库工作是否正常cat > /usr/local/nginx/html/index.php <<EOF<?phpphpinfo();?>EOF

“怎么用shell脚本一键部署LNMP架构”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么用shell脚本一键部署LNMP架构

本文链接: https://www.lsjlt.com/news/255772.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用shell脚本一键部署LNMP架构
    本篇内容介绍了“怎么用shell脚本一键部署LNMP架构”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!LNMP架构介绍LNMP:Linux系...
    99+
    2023-06-09
  • 使用shell脚本一键部署LNMP架构的方法
    LNMP架构介绍 LNMP:linux系统下Nginx+mysql+php这种网站服务器架构。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型...
    99+
    2022-06-04
    shell脚本部署LNMP架构 LNMP架构
  • shell脚本中如何一键部署zookeeper集群服务
    这篇文章主要介绍“shell脚本中如何一键部署zookeeper集群服务”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“shell脚本中如何一键部署zookeeper集群服务”文章能帮助大家解决问题。...
    99+
    2023-06-30
  • zabbix一键部署脚本----亲测可用
    环境:centos7.9 网络:外网通 其他:无 两个脚本任选一执行即可 基于nginx,脚本如下: #!/bin/bash#function:zabbix#author:tommypeng 20220727#####root判断####...
    99+
    2023-09-02
    php 开发语言 运维 centos 服务器
  • shell脚本中一键部署zookeeper集群服务的方法
    目录一键部署zookeeper集群服务1. 编写脚本情况分析2. 脚本代码部分3. 实验测试部分一键部署zookeeper集群服务 1. 编写脚本情况分析 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务...
    99+
    2022-06-05
    shell脚本部署zookeeper集群 shell脚本zookeeper集群 shell脚本一键部署zookeeper
  • 怎么使用Shell脚本自动部署项目
    这篇文章主要介绍了怎么使用Shell脚本自动部署项目的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Shell脚本自动部署项目文章都会有所收获,下面我们一起来看看吧。①:在Linux中安装Gityum&n...
    99+
    2023-07-05
  • 怎么用Shell脚本一键安装Nginx服务
    这篇文章主要介绍“怎么用Shell脚本一键安装Nginx服务”,在日常操作中,相信很多人在怎么用Shell脚本一键安装Nginx服务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Shell脚本一键安装N...
    99+
    2023-06-29
  • 怎么用Shell脚本一键干掉端口占用
    这篇文章将为大家详细讲解有关怎么用Shell脚本一键干掉端口占用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 前言在 Web 开发中,经常会遇到「端口被占用」的场景常规解决方案是:使用 lsof -...
    99+
    2023-06-17
  • 怎么复用外部Shell脚本
    这篇文章主要为大家展示了“怎么复用外部Shell脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么复用外部Shell脚本”这篇文章吧。执行外部脚本的方式假如在当前目录有 a.sh 脚本,内容...
    99+
    2023-06-15
  • 怎么利用脚本部署一个Spring Boot应用
    这篇文章给大家介绍怎么利用脚本部署一个Spring Boot应用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。部署方法如下:在 pom.xml 路径下新建文件 start.sh#!/bin/bash#0、删除原有的日志...
    99+
    2023-05-31
    springboot spring boo
  • 使用Python脚本对GiteePages进行一键部署的使用说明
    本次系统环境 os: Deepin(Linux) Python: 3.7 lib: PyYAML=5.3.1 | selenium=3.141.0 extend_driver: chromedriver 使用说明...
    99+
    2022-06-02
    Python GiteePages一键部署 Python 一键部署
  • 怎么在Shell脚本中调用另一个脚本
    这期内容当中小编将会给大家带来有关怎么在Shell脚本中调用另一个脚本,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。forkfork 是最普通的, 就是直接在脚本里面用 path/to/foo.sh 来调...
    99+
    2023-06-09
  • Linux下怎么复用外部shell脚本
    这篇文章的内容主要围绕Linux下怎么复用外部shell脚本进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!在Linux开发中,经常会编写shell脚...
    99+
    2023-06-28
  • 怎么利用python脚本自动部署k8s
    这篇文章主要为大家展示了“怎么利用python脚本自动部署k8s”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么利用python脚本自动部署k8s”这篇文章吧。一、准备通过之前在Ubuntu1...
    99+
    2023-06-20
  • 怎么用groovy脚本定义结构表一键生成POJO类
    本篇内容主要讲解“怎么用groovy脚本定义结构表一键生成POJO类”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用groovy脚本定义结构表一键生成POJO类”吧!使用方式分享一个小脚本,...
    99+
    2023-07-05
  • Shell脚本中怎么调用和引用另外一个脚本文件
    这篇文章主要讲解了“Shell脚本中怎么调用和引用另外一个脚本文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本中怎么调用和引用另外一个脚本文件”吧!脚本 first (测试示...
    99+
    2023-06-09
  • Linux多应用程序docker怎么自动部署脚本
    Linux多应用程序docker怎么自动部署脚本,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Linux 多应用程序docker自动部署脚本可以结合jenkin...
    99+
    2023-06-19
  • 使用shell脚本怎么搭建一个nfs服务
    这篇文章将为大家详细讲解有关使用shell脚本怎么搭建一个nfs服务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。#vim /sh/zidong_dajian_nfs_fuwu.sh#!/b...
    99+
    2023-06-09
  • 怎么用IDEA一键部署SpringBoot项目到服务器
    本篇内容介绍了“怎么用IDEA一键部署SpringBoot项目到服务器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 安装Alibaba...
    99+
    2023-06-29
  • shell脚本怎么使用两个横杠接收外部参数
    小编给大家分享一下shell脚本怎么使用两个横杠接收外部参数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先,效果是这样的:既可以处理短选项(-)又可以处理长选项(--)[developer@hadoop-cluster...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作