部署Elixir项目,确定其环境配置完成以后。
部署步骤:
数据库连接文件可以移植出项目代码中,保证项目根据安全性。

方法1:

例如,在“/var/config.prod.exs”。完成后,您必须从中导入它config/prod.exs。搜索该import_config行并将其替换为正确的路径

import_config “/var/config.prod.exs”

方法2:

通过环境变量替换数据库连接值(尚未研究过)

在妥善保护好秘密信息的后,获取依赖和编译环境。

$ mix deps.get --only prod
$ MIX_ENV=prod mix compile

只有在Phoenix应用程序中有静态资产(如图像,JavaScript,样式表等)时,才需要执行此步骤
brunch 需要安装一下才能用,如果你的nodejs的版本太低也是不支持的

$ brunch build --production$ mix phx.digestCheck your digested files at "priv/static".

刚刚发想官网进行了更新,现在官网使用的是 webpack构建工具 , 对于brunch 这个是Phoenix Elixir 框架中默认构建工具。两者之间的区别: 由于brunch是PhoenixElixir框架中的默认构建工具,比较小众,功能方面也比较单一。而webpack虽然功能上比价强大但是配置上是比较繁琐的。使用PhoenixElixir框架的Elixir项目其实使用哪种都可以,因为这里不需要 太多其他功能,只需要构建资产就行,两个插件都能满足。

$ cd assets && webpack --mode production$ mix phx.digestCheck your digested files at "priv/static".

就是这样!第一个命令构建资产,第二个命令生成摘要以及缓存清单文件,因此Phoenix可以快速为生产中的资产提供服务。

请记住,如果您忘记运行上述步骤,Phoenix将显示错误消息:

$ PORT=4001 MIX_ENV=prod mix phx.server
10:50:18.732 [info] Running MyApp.Endpoint with Cowboy on http://example.com
10:50:18.735 [error] Could not find static manifest at "my_app/_build/prod/lib/foo/priv/static/cache_manifest.json". Run "mix phx.digest" after building your static files or remove the configuration from "config/prod.exs".

错误信息非常明确:它说Phoenix无法找到静态清单。只需运行上面的命令来修复它,或者,如果您没有服务或根本不关心资产,您可以从中删除cache_static_manifest配置config/prod.exs。

在生产中启动服务器

要在生产中运行Phoenix,我们需要在调用时设置PORT和MIX_ENV环境变量mix phx.server:

$ PORT=4001 MIX_ENV=prod mix phx.server
10:59:19.136 [info] Running MyApp.Endpoint with Cowboy on http://example.com

如果您收到错误消息,请仔细阅读,如果仍然不清楚如何解决它,请打开错误报告。

您还可以在交互式shell中运行应用程序:

$ PORT=4001 MIX_ENV=prod iex -S mix phx.server
10:59:19.136 [info] Running MyApp.Endpoint with Cowboy on http://example.com

或者从iex控制台分离运行它。这有效地使进程守护进程,以便它可以在后台独立运行:

MIX_ENV=prod PORT=4001 elixir --detached -S mix do compile, phx.server

以分离模式运行应用程序允许我们在应用程序终止与服务器的shell连接后保持应用程序运行。

把它们放在一起

前面的部分概述了部署Phoenix应用程序所需的主要步骤。在实践中,您最终还会添加自己的步骤。例如,如果您使用的是数据库,则还需要mix ecto.migrate在启动服务器之前运行,以确保数据库是最新的。

总的来说,这是一个可以作为起点的脚本:

# Initial setup
$ mix deps.get --only prod
$ MIX_ENV=prod mix compile# Compile assets
$ brunch build --production$ mix phx.digest# Custom tasks (like DB migrations)
$ MIX_ENV=prod mix ecto.migrate# Finally run the server
$ PORT=4001 MIX_ENV=prod mix phx.server

在阿里服务器上部署项目时:要注意阿里服务器分着内网和公网,要想在公网访问自己部署的项目,需要在阿里控制台的内开放相应端口的权限。在安全组内设置一下。然后在试试公网能不能访问。

部署Elixir项目相关推荐

  1. Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo

    Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...

  2. Docker 部署SpringBoot项目不香吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...

  3. 基于docker+gunicorn部署sanic项目

    基于docker+gunicorn部署sanic项目 源代码: https://github.com/ltoddy/Python-useful/tree/master/sanic-app 最近云服务提 ...

  4. docker nginx部署前端项目

    最近一直在搞前后端分类,一直在想前端的html页面应该用什么部署 想来想去,如果用tomcat好像有点浪费资源,作为程序员自然要时时刻刻追求新的东西 一直以来都是在apache tomcat上面运行, ...

  5. docker 挂载目录_完美解决:Docker部署SpringBoot项目后图片无法访问和上传,3招搞定!...

    以前使用FTP在Linux中使用java -jar xxx.jar部署SpringBoot项目时,由于在项目中指定了主机文件存放路径映射,可以直接访问服务器的文件. 但是最近入坑Docker,将Spr ...

  6. 【运维】阿里云宝塔面板部署JavaWeb项目

    本文摘要 · 前几年买了阿里云的ECS服务器,当时配置宝塔面板都是找朋友帮我弄的,去年一个项目给某公司做官网,涉及到域名解析的事情,最近开发项目又涉及到部署PHP项目.部署JavaWeb项目的工作.抽 ...

  7. nginx怎么部署php项目,nginx怎么正确部署前端项目

    目的: nginx部署打包成为dist的前端项目 (学习视频分享:php视频教程) 相关知识:docker 安装与使用 docker pull nginx docker run --restart=o ...

  8. 利用Jenkins的Pipeline实现集群自动化部署SpringBoot项目

    2019独角兽企业重金招聘Python工程师标准>>> 环境准备 Git: 安装部署使用略. Jenkins: 2.46.2版本安装部署略(修改jenkins执行用户为root,省得 ...

  9. scrapyd部署爬虫项目到LINUX服务器

    1,首先把scrapy爬虫项目上传到服务器 我的服务器架设在公司内网里.所以在这里使用WinSCP作为上传工具. 2,修改项目的配置文件scrapy.cfg 给爬虫项目指定分组,具体方法是在deplo ...

最新文章

  1. Unable to handle kernel paging request at virtual address 问题定位
  2. c 普通的文本变成注释文本的快捷键_IntelliJ Idea 常用快捷键列表 (2019年总结)
  3. 【已解决】Error: Module not specified (IntelliJ IDEA)
  4. ubuntu12.04安装教程
  5. 《精彩绝伦的CSS》读书笔记(二)
  6. java xxe漏洞利用_【技术分享】XXE漏洞攻防之我见
  7. 使用Flask-SQLAlchemy插件操作MySQL
  8. 化工企业数据分析报表系统项目之销售模块分析
  9. Spring Boot快速注册服务脚本
  10. Winform 实现像菜单一样弹出层
  11. Windows Server 2008 R2之二从介质安装 AD DS
  12. matlab实现2dpsk调制与解调,(完整版)matlab设计2DPSK信号调制与解调
  13. win7计算机重启遇到错误,安装Win7系统过程出现计算机意外地重新启动或遇到错误提示的解决方法...
  14. 腾讯信鸽推送(一):服务端架构
  15. 执行throw后 后面代码还会执行吗?
  16. Tableau学习摘录总结①(层次、聚合度和颗粒度层次、聚合度和颗粒度,字段(离散和连续),小建议)
  17. Android代码实现——拨打电话和发送短信APP
  18. Zlib的安装与测试
  19. 标准C++之运算符重载和虚表指针
  20. denoise_timedomain 时域降噪

热门文章

  1. php调用ua_PHP判断判断UA:检测客户端是手机或电脑
  2. 中国制造2025关于智能驾驶汽车的相应介绍
  3. 递归删除符合条件的目录,文件, kotlin,java
  4. JDBC学习笔记(SQL语句的执行)
  5. 工业镜头倍率及视场范围、焦距的计算方法
  6. 嵌入式 linux 应用 go 语言开发(开篇,缘起)
  7. 国际:十种学习新技术的方法
  8. LInux知识点(三)--- 动态监控系统
  9. C++ SuperLU 混合编程
  10. java语言之面向对象