部署Elixir项目
部署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项目相关推荐
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...
- Docker 部署SpringBoot项目不香吗?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...
- 基于docker+gunicorn部署sanic项目
基于docker+gunicorn部署sanic项目 源代码: https://github.com/ltoddy/Python-useful/tree/master/sanic-app 最近云服务提 ...
- docker nginx部署前端项目
最近一直在搞前后端分类,一直在想前端的html页面应该用什么部署 想来想去,如果用tomcat好像有点浪费资源,作为程序员自然要时时刻刻追求新的东西 一直以来都是在apache tomcat上面运行, ...
- docker 挂载目录_完美解决:Docker部署SpringBoot项目后图片无法访问和上传,3招搞定!...
以前使用FTP在Linux中使用java -jar xxx.jar部署SpringBoot项目时,由于在项目中指定了主机文件存放路径映射,可以直接访问服务器的文件. 但是最近入坑Docker,将Spr ...
- 【运维】阿里云宝塔面板部署JavaWeb项目
本文摘要 · 前几年买了阿里云的ECS服务器,当时配置宝塔面板都是找朋友帮我弄的,去年一个项目给某公司做官网,涉及到域名解析的事情,最近开发项目又涉及到部署PHP项目.部署JavaWeb项目的工作.抽 ...
- nginx怎么部署php项目,nginx怎么正确部署前端项目
目的: nginx部署打包成为dist的前端项目 (学习视频分享:php视频教程) 相关知识:docker 安装与使用 docker pull nginx docker run --restart=o ...
- 利用Jenkins的Pipeline实现集群自动化部署SpringBoot项目
2019独角兽企业重金招聘Python工程师标准>>> 环境准备 Git: 安装部署使用略. Jenkins: 2.46.2版本安装部署略(修改jenkins执行用户为root,省得 ...
- scrapyd部署爬虫项目到LINUX服务器
1,首先把scrapy爬虫项目上传到服务器 我的服务器架设在公司内网里.所以在这里使用WinSCP作为上传工具. 2,修改项目的配置文件scrapy.cfg 给爬虫项目指定分组,具体方法是在deplo ...
最新文章
- Unable to handle kernel paging request at virtual address 问题定位
- c 普通的文本变成注释文本的快捷键_IntelliJ Idea 常用快捷键列表 (2019年总结)
- 【已解决】Error: Module not specified (IntelliJ IDEA)
- ubuntu12.04安装教程
- 《精彩绝伦的CSS》读书笔记(二)
- java xxe漏洞利用_【技术分享】XXE漏洞攻防之我见
- 使用Flask-SQLAlchemy插件操作MySQL
- 化工企业数据分析报表系统项目之销售模块分析
- Spring Boot快速注册服务脚本
- Winform 实现像菜单一样弹出层
- Windows Server 2008 R2之二从介质安装 AD DS
- matlab实现2dpsk调制与解调,(完整版)matlab设计2DPSK信号调制与解调
- win7计算机重启遇到错误,安装Win7系统过程出现计算机意外地重新启动或遇到错误提示的解决方法...
- 腾讯信鸽推送(一):服务端架构
- 执行throw后 后面代码还会执行吗?
- Tableau学习摘录总结①(层次、聚合度和颗粒度层次、聚合度和颗粒度,字段(离散和连续),小建议)
- Android代码实现——拨打电话和发送短信APP
- Zlib的安装与测试
- 标准C++之运算符重载和虚表指针
- denoise_timedomain 时域降噪