gpt4 book ai didi

deployment - 如何设置 apt 以将其用于 Web 应用程序部署

转载 作者:行者123 更新时间:2023-12-05 01:23:10 24 4
gpt4 key购买 nike

如果我想使用 apt 包将我的 web 应用程序部署到不同的 linux 服务器,我应该采取哪些步骤?从 PHP/MySQL 应用程序开始,我希望能够将它安装为这样的包:

apt-get update
apt-get install mywebapp-package

我想我必须在某处设置一个存储库并将我的包添加到其中,但这是如何工作的?如何创建包本身?我该怎么做才能让任何服务器找到我的存储库?一些谷歌搜索只会出现令人困惑的信息,也许我正在寻找错误的流行语。任何帮助将非常感激!

最佳答案

以下是创建 apt-package 的方法
https://askubuntu.com/questions/27715/create-a-deb-package-from-scripts-or-binaries

这真的很简单......在你的应用程序文件夹中有一个 debian 子文件夹......./debian/install 文件包含一个非常简单的文件到最终位置的映射

# debian/install must contain the list of scripts to install 
# as well as the target directory
echo myscript.sh usr/bin > debian/install

您可以使用 makefile 创建安装和安装后任务。如果你之前从未用 make 编译过 ac/c++ 程序......基本上在你运行“./configure”的应用程序文件夹中,然后“make”或“make install”来编译/解包程序......dh_make有一个稍微不同的过程和一些默认值,但它是一个非常相似的工作流程......以下是来自 GNU Make Reference 的一个非常简单的 makefile
objects = main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o

edit : $(objects)
cc -o edit $(objects)
main.o : main.c defs.h
cc -c main.c
kbd.o : kbd.c defs.h command.h
cc -c kbd.c
command.o : command.c defs.h command.h
cc -c command.c
display.o : display.c defs.h buffer.h
cc -c display.c
insert.o : insert.c defs.h buffer.h
cc -c insert.c
search.o : search.c defs.h buffer.h
cc -c search.c
files.o : files.c defs.h buffer.h command.h
cc -c files.c
utils.o : utils.c defs.h
cc -c utils.c
clean :
rm edit $(objects)

基本上默认的“make”任务编译程序编辑......并且从这个结构中的文件名中自动检测依赖项

对于 web 应用程序,这里有一个来自 OSS 项目的 makefile,包括从 Github 中提取
http://build.shr-project.org/Makefile

基本上,如果您在该项目上工作并将所有安装任务放入一个 makefile 中……并让“make”默认任务解包您的应用程序并安装 apache/nginx vhost 并在完成后重新启动/重新加载相关服务器……然后apt 是一种完全可行的处理方式......有很多程序可以在数百个系统上同时管理 apt 包......
https://serverfault.com/questions/79093/managing-upgrades-on-hundreds-of-debian-servers

规范/Ubuntu 的 Landscape是这类事情的一个很好的工具......我之前在一个大约 20 个服务器的平台上使用过它......不太确定设置自己的上游存储库和签署 key 等的具体细节,以便 apt 可以管理完全打包,但我相信一旦你开始使用 dpkg 就非常简单了

Debconf/apt 为许多类型的应用程序提供了一个很好的用例......但是,如果它是一个持续部署的应用程序并且您必须不断进行升级(对我来说,经验法则是如果您每周进行一次以上的升级或 5x 月)...那么使用持续部署工具可能会更好...Capistrano 和 Fabric 都非常出色(使用 Cap,具有多阶段扩展...很棒,Fabric 我只听说过很棒的东西) ...但我仍然不会相信 Cap 在数百台 Debian 服务器上......这真的完全取决于你的项目规模......上面说 10 或 20 个服务器的上限对于真正管理部署来说太慢和笨重了好吧(恕我直言,显然任何人都可以做任何事情,我还没有真正研究过这一点,但是与 Gnu Make 和 debconf 相比,Ruby Rake 和 Capistrano 等都该死的慢且不可靠,尤其是在野外)

特别是关于一般服务器自动化,我建议您查看 PuppetChef ,这两者都是非常可行的工具。也没有使用,但我们所有的管理脚本都是用 Ruby 编写的,而且对于以脚本方式配置服务器来说,Chef 的刀具工具非常方便

关于deployment - 如何设置 apt 以将其用于 Web 应用程序部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12089580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com