2011-06-10 37 views
8

假设我有一个独立的Dancer web应用程序。我可以通过运行make dist将其部署到主机,然后获取tarball,然后通过cpanm或类似软件进行安装。但是,我似乎无法找到如何控制此部署。当我只是开发应用程序,然后在其他地方安装应用程序,它似乎安装应用程序的模块。但是,应用程序脚本,各种html文件和模板,环境配置文件没有安装到本地文件系统。如何控制Dancer Web应用程序的部署?

什么是正确的方式来从webapp系统a - > tarball - > webapp系统b上?

编辑:

对不起,我应该澄清,我知道我可以手动做这件事。我很惊讶没有快速的方法来使用几个命令来安装,或者在应用程序本身中指定它感觉各种组件可以安装的方式。

由于我在大多数情况下使用cpanm,因此可以简化系统B上的操作,因为我可以将它提取到目录中,然后更改为“cpanm”。它会将依赖关系和应用程序的模块安装到系统库中。

但是,这会导致应用程序模块在<>/lib /以及系统perllib安装路径中。这也意味着用户需要了解一些关于Perl的知识。

我想我只是想知道自从What's the best system for installing a Perl web app?三年前被问及事情是否发生了变化。随着现代Perl技术的进步,看起来这就是现在已经解决的那类问题。

回答

5

这是一种方法。在系统中创建一个您的应用程序:

dancer -a Foo 
cd Foo 
perl Makefile.PL 
make dist 
scp Foo-0.1.tar.gz system-b: 
ssh system-b 

在系统B:

sudo tar xf Foo-0.1.tar.gz -C /opt 
cd /opt/Foo-0.1 
perl Makefile.PL # this will tell you the deps you need to install 
# install needed deps if any 
make 
sudo make install 
./bin/app.pl # this starts your app 

这种方法安装应用程式到/ opt /你的应用程序内。所有的配置文件,脚本等都将自包含在一个文件夹中。

你可能想要考虑的事情是将你所有的代币与你的应用捆绑在一起。你会在系统上做到这一点。 (注意,这需要系统和系统-B具有相同的架构)的一个简单的方法来捆绑你的DEPS是与App :: cpanminus:

cpanm -L extlib Dancer Plack YAML # and any other deps 

然后,当你开始部署您的应用程序,你会怎么做例如:

perl -Ilib -Iextlib/lib/perl5 -Iextlib/lib/perl5/x86_64-linux ./bin/app.pl 

这种方法使得它不需要在系统b上安装任何东西。你可以提取你的应用程序并运行它。