Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Heroku und PHP
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Christoph Hochstrasser
November 07, 2013
Programming
140
0
Share
Heroku und PHP
Slides from my talk at the Developer Conference 2013 in Hamburg. Not affiliated with Heroku.
Christoph Hochstrasser
November 07, 2013
More Decks by Christoph Hochstrasser
See All by Christoph Hochstrasser
VILT Stack (DevTreff Amstetten)
hochchristoph
0
75
Git Workshop @ Makerspace[A]
hochchristoph
0
49
Einstieg in Open Source
hochchristoph
0
110
Nuxt – Die Zukunft der Webentwicklung
hochchristoph
0
110
Nuxt – The Future of Web Frameworks
hochchristoph
0
34
Design Essentials für Techniker
hochchristoph
1
42
Look, no database
hochchristoph
0
240
7 Things Learned
hochchristoph
0
31
Einführung in Go
hochchristoph
0
64
Other Decks in Programming
See All in Programming
20260320登壇資料
pharct
0
150
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
300
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
6
1.2k
The free-lunch guide to idea circularity
hollycummins
0
400
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
590
ロボットのための工場に灯りは要らない
watany
12
3.3k
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
110
AI 開発合宿を通して得た学び
niftycorp
PRO
0
190
事業会社でのセキュリティ長期インターンについて
masachikaura
0
190
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
2
480
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
420
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
220
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
230
It's Worth the Effort
3n
188
29k
Making Projects Easy
brettharned
120
6.6k
Evolving SEO for Evolving Search Engines
ryanjones
0
170
HDC tutorial
michielstock
1
600
Game over? The fight for quality and originality in the time of robots
wayneb77
1
150
The agentic SEO stack - context over prompts
schlessera
0
730
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Mind Mapping
helmedeiros
PRO
1
140
Transcript
Heroku & PHP
Sponsored by Heroku Not.
Christoph Hochstrasser @hochchristoph github.com/CHH Blog: christophh.net Full-Stack Web Developer –
Funemployed Contributor zu Composer, StackPHP. Creator von php-build.
Um was gehts? • Was ist Heroku? • Das Problem
mit Heroku und PHP • Buildpacks & Open Source to the rescue! • Rezepte für PHP Apps auf Heroku
Heroku? Wat?
None
her-OH-koo
Platform as a Service
Ruby, Python, Node.js, Java, Scala, Clojure, Go
(PHP) dazu später mehr
Dynos
Addons addons.heroku.com
„Buildpacks“
12factor.net
PHP
PHP Support auf Heroku ist „solala“
Problem:
PHP 5.3 + Apache Prefork MPM & mod_php + Dynos
haben nur 512MB RAM
Aber das können wir beheben. Let’s do it.
Buildpack • Erlaubt die Verwendung eines eigenen Software Stacks auf
Heroku • Pro App • Git Repository • Scripts (detect, compile, release) • Binaries von z.B. S3 • Mehr unter https://devcenter.heroku.com/articles/buildpack- api
Buildpack git push heroku master detect compile release
Darf ich vorstellen: github.com/CHH/heroku-buildpack-php
Inspiriert vom Node.js Buildpack
Moderner PHP Stack
PHP-FPM & NGINX
PHP 5.3, 5.4, 5.5 dynamisch konfigurierbar
Zend Opcache
mongo redis intl pgsql apcu + more to come
<?php phpinfo(); ?> https://chh-php-test.herokuapp.com/info
Composer
Unterstützt Symfony 2, Silex & Slim Wordpress (mit Anpassungen) In
Zukunft auch Zend Framework 1/2 & Laravel
NewRelic Monitoring
Konfiguration über composer.json
{ "require": { "php": ">=5.3.0", "silex/silex": "~1.0@dev", "ext-libevent": "*" },
"extra": { "heroku": { "document-root": "web", "index-document": "index.php", "php-config": [ "short_open_tag=on", "date.timezone=Europe/Vienna", "newrelic.appname=php-test" ], "engines": { "php": "5.4.*", "nginx": "1.4.*" }, "compile": [ ] } } } Framework php.ini Einstellungen Stack Versionen Shell Befehle Häufige Settings
„Zeroconf“ Symfony 2 Support
$ php composer.phar create-project symfony/framework-standard-edition Symfony 2.3.0 $ cd Symfony
$ heroku create —buildpack git://github.com/CHH/heroku-buildpack-php —region eu $ git push heroku master
Help Wanted! ! github.com/CHH/heroku-buildpack-php/issues
Rezepte
Lokales Development
php -S php app/console server:run
Credentials
Config Vars $ heroku config:set API_SECRET=mytotallysecretkey $_SERVER['API_SECRET']
+ änderbar ohne Code Push + nicht eingecheckt im Repository
Kandidaten für Config Vars: • S3 Bucket • Amazon Access
Key/Secret • Datenbank Host, Port, Username, Passwort, Datenbankname • Redis Host • Secrets aller Art (Facebook,…) • Application Environment
Aber wie mach ich das lokal?
.env github.com/vlucas/phpdotenv
AWS_SECRET_KEY=foo AWS_ACCESS_KEY_ID=asd8asd8ausd MY_AWESOME_CONF_VAR=foobarbaz DATABASE_URL=mysql://root:pass@localhost:6657/dbname SERVICE_URL=localhost:5000 REDIS_URL=redis://localhost:6379 REDIS_PASS=s3cr3tp4ss SERVER_NAME=localhost:3000 APP_ENV=development
Assets
JS/CSS/Images → S3 → CDN
Alternative php app/console assets:dump —env=prod
{ … "extra": { "heroku": { … "compile": [ "php
app/console assets:dump —env=prod" ] } } }
Sessions
Redis $ heroku addons:add redistogo
Datenbank
Heroku Postgres heroku addons:add heroku-postgresql
MySQL: Amazon RDS heroku addons:add amazon_rds
MongoDB $ heroku addons:add mongohq
Links • Heroku PHP Buildpack: github.com/CHH/heroku-buildpack-php • Heroku Buildpacks API:
https://devcenter.heroku.com/articles/ buildpack-api • HHVM Buildpack: https://github.com/hhvm/heroku-buildpack-hhvm
Danke!
Alle Klarheiten beseitigt? Fragen?