[原创]Heroku 简单部署指南
- 1. 设置
- 1.1 环境依赖
- 1.2 Heroku 客户端安装
- 1.3 登录
- 2. 应用
- 2.1 创建
- 2.2 查看日志
- 2.3 附加组件
- 2.4 交互式 Shell
- 2.5 定义 配置变量
- 2.6 配置数据库
- 2.7 Procfile
该部署笔记以部署 PHP 应用为例.
官方文档
1. 设置
1.1 环境依赖
以部署 PHP 应用为例, 本地环境依赖:
php
composer
Heroku 使用 Composer 管理PHP应用的依赖,
composer.json
用于表明项目是 php语言.git
分别执行以下命令查看当前版本
php -v
composer -v
git --version
1.2 Heroku 客户端安装
下载安装 Heroku Cli
顺便官网注册一个 heroku 账号
1.3 登录
heroku login # 输入 heroku 账号密码
heroku keys:add # 添加ssh公钥到 Heroku 上
2. 应用
2.1 创建
heroku create # 远程创建新的 heroku app, 并在本地 git 添加对应的远程 git 仓库git push heroku master # git 推送到远程仓库heroku ps # 查看当前应用有几个实例
heroku ps:scale web:1 # 应用实例伸缩, "web" 是在 Procfile 中定义的对应应用heroku open # 在浏览器中打开实例
免费账号只能有一个实例
2.2 查看日志
heroku logs --tail
此处的日志是由应用输出到 stdout
和 stderr
中的内容.
2.3 附加组件
为防止滥用, 添加附加组件需要账号认证
…信用卡的意思
heroku addons # 查看已安装的附加组件
heroku addons:create xxxx # 安装附加组件
heroku addons:open xxxx # 打开附加组件的web管理页面(如果有的话...)
2.4 交互式 Shell
可运行 PHP 的交互式 shell
heroku run "php -a"
heroku 的交互式 shell
heroku run bash
2.5 定义 配置变量
config vars(配置变量) 在应用运行时是以 环境变量 形式暴露给应用.
heroku config # 查看当前配置变量
heroku config:set XXX=XXXX # 定义配置变量
$_SERVER
的输出, 若执行 heroku config:set TEST_VAR=20
, 则会在下面输出出来(Line: 10)
array ('COMPOSER_BIN_DIR' => 'vendor/bin','DOCUMENT_ROOT' => '/app/web','HEROKU_PHP_HTTPD_CONFIG_INCLUDE' => '/app/vendor/heroku/heroku-buildpack-php/conf/apache2/default_include.conf','DYNO' => 'web.1','PATH' => '/app/.heroku/php/bin:/app/.heroku/php/sbin:/app/.heroku/php/bin:/app/.heroku/php/sbin:/app/.heroku/php/bin:/app/.heroku/php/sbin:/app/.heroku/php/bin:/usr/local/bin:/usr/bin:/bin:/app/vendor/bin','WEB_CONCURRENCY' => '4','PWD' => '/app','COMPOSER_VENDOR_DIR' => 'vendor','TEST_VAR' => '20','HOME' => '/app','SHLVL' => '2','PORT' => '11636','HEROKU_APP_DIR' => '/app','_' => '/app/.heroku/php/sbin/php-fpm','USER' => 'u24320','SCRIPT_NAME' => '/index.php','REQUEST_URI' => '/_server','QUERY_STRING' => '','REQUEST_METHOD' => 'GET','SERVER_PROTOCOL' => 'HTTP/1.1','GATEWAY_INTERFACE' => 'CGI/1.1','REDIRECT_URL' => '/_server','REMOTE_PORT' => '12702','SCRIPT_FILENAME' => '/app/web/index.php','SERVER_ADMIN' => 'you@example.com','CONTEXT_DOCUMENT_ROOT' => '/app/web','CONTEXT_PREFIX' => '','REQUEST_SCHEME' => 'http','REMOTE_ADDR' => '10.43.233.16','SERVER_PORT' => '80','SERVER_ADDR' => '172.17.77.62','SERVER_NAME' => 'polar-oasis-94232.herokuapp.com','SERVER_SOFTWARE' => 'Apache','SERVER_SIGNATURE' => '','HTTP_TOTAL_ROUTE_TIME' => '0','HTTP_X_REQUEST_START' => '1529897835941','HTTP_CONNECT_TIME' => '1','HTTP_VIA' => '1.1 vegur','HTTP_X_FORWARDED_PORT' => '443','HTTP_X_FORWARDED_PROTO' => 'https','HTTP_X_FORWARDED_FOR' => '218.66.157.218','HTTP_X_REQUEST_ID' => '775b1b7c-c679-44d6-9cf0-2280f2930b15','HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9','HTTP_ACCEPT_ENCODING' => 'gzip, deflate, br','HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36','HTTP_UPGRADE_INSECURE_REQUESTS' => '1','HTTP_CONNECTION' => 'close','HTTP_HOST' => 'polar-oasis-94232.herokuapp.com','REDIRECT_STATUS' => '200','FCGI_ROLE' => 'RESPONDER','PHP_SELF' => '/index.php','REQUEST_TIME_FLOAT' => 1529897835.9442799,'REQUEST_TIME' => 1529897835,
)
2.6 配置数据库
附加组件市场 有大量免费的数据存储附加组件.
免费的基本都是限制存储量, eg. postgresql 免费的限制存储 10000 行
heroku addons:create heroku-postgresql:hobby-dev # 添加 postgresql 的免费版
添加上述数据库组件后, 会往变量配置中添加如下数据库url地址:
使用:
$dbopts = parse_url(getenv('DATABASE_URL'));
远程连接 postgressql
heroku pg:psql
2.7 Procfile
Procfile
文件用于定义进程类型并确定应用如何启动.
# apache
web: vendor/bin/heroku-php-apache2 web/ # web/ 是指定应用的根目录# nginx
web: vendor/bin/heroku-php-nginx web/
[原创]Heroku 简单部署指南相关推荐
- 华为桌面云如何部署Linux,华为桌面云安装部署指南(19页)-原创力文档
华为桌面云安装部署指南 技术创新,变革未来 前言 ⚫ 本章节将介绍桌面云的安装部署流程,结合实验手册具体的 操作步骤,帮助掌握桌面云的安装实施能力. 第1页 目录 1. 整体架构 2. 安装流程 第2 ...
- heroku创建linux主机,在 Heroku 上部署 Django 应用
在 Heroku 上部署 Django 应用 Heroku是一个很棒的平台,它有很多的控件,并且搭建环境相对来说也比较容易.本指南中,我将一步一步指导你在Heroku平台上部署一个简单地Django应 ...
- 关键数据保险箱,AD RMS服务器部署指南
关键数据的保险箱,AD RMS服务器部署指南<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:offi ...
- 01-Windows Server 2012 R2 远程桌面服务部署指南
01-Windows Server 2012 R2 远程桌面服务部署指南 作者:马博峰 对于大部分的IT部门来说,服务器虚拟化并不是的IT首要挑战,而是越来越庞大的企业个人办公环境.企业内部的用户都希 ...
- ci/cd heroku_在Heroku上部署Dash或Flask Web应用程序。 简易CI / CD。
ci/cd heroku First, we'll transform the animated scatter map built in my previous article into a bas ...
- ci/cd heroku_在GitLab上设置CI / CD以在Heroku上部署Python Flask应用程序
ci/cd heroku Recently I came across a challenge to deploy a Python Flask web application to Heroku. ...
- apollo(阿波罗) 分布式部署指南
apollo(阿波罗) 分布式部署指南 一.准备工作 1.1 运行时环境 1.2 MySQL 1.3 环境 1.4 网络策略 二.部署步骤 2.1 创建数据库 2.1.1 创建ApolloPortal ...
- heroku搭建mysql_在heroku上部署Flask应用程序并将其连接到颚数据库mysql数据库
heroku搭建mysql By: Edward Krueger Data Scientist and Instructor and Douglas Franklin Teaching Assista ...
- 多节点OpenStack Charms 部署指南0.0.1.dev303--21--控制器备份和还原
目录: 第一节 多节点OpenStack Charms 部署指南0.0.1.dev223–1--OpenStack Charms 部署指南 第二节 多节点OpenStack Charms 部署指南0. ...
最新文章
- ar开发 ue4_Oculus计划将UE4“500万美元营收版权分成免除计划”扩展到UE5
- 对数线性模型之一(逻辑回归), 广义线性模型学习总结
- percona-xtrabackup工具实现mysql5.6.34的主从同步复制
- vue图片点击超链接_vue使用v-for实现hover点击效果
- shell中的比较(if运算)
- java 学习思路_Java的学习思路
- [蓝桥杯][2014年第五届真题]分糖果-模拟
- Unittest方法 -- 测试固件(TestFixture)
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- 孔浩用的mysql工具_孔浩Java教学系列视频教程
- 对ichartjs基于基于HTML5的开源图形组件画图的心得
- 【计算方法】数值积分
- 转载:技术文化和惨淡命运 —— 怀念中国雅虎
- vulhub漏洞复现- ActiveMQ 反序列化漏洞(CVE-2015-5254)
- 超级保镖计算机管理系统
- 中冠百年|个人如何理财收益最大
- 怎样删除*.sys文件
- android webview 播放视频总结,Android WebView 播放视频总结~
- linux删除配置信息,linux 配置信息
- Centos8桌面图标不显示问题
热门文章
- python由谁创造出来的_编程语言简史:都是谁在什么时候创造出来的呢?
- gta5nat严格怎么办_如何解决在游玩 GTA 在线模式时出现的 NAT 类型为“严格”(Strict)的错误...
- python数据可视化课程论文_Python数据分析与数据可视化选修课答案
- 【AIRFLOW】CROSS DAG 实例
- CCCC L2-007. 家庭房产 建图 XJB模拟
- Word 参考文献 引用 自动更新 引用字体格式批量改动
- 【计算机网络】第五部分 传输层(24) 拥塞控制和服务质量
- 媛姐有约×元杰 | 国产公链的初心与热爱
- Linux编程基础:第4章Shell编程 课后习题
- 公交/地铁出行测试用例点