Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Heroku und PHP
Search
Christoph Hochstrasser
November 07, 2013
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
91
Git Workshop @ Makerspace[A]
hochchristoph
0
57
Einstieg in Open Source
hochchristoph
0
110
Nuxt – Die Zukunft der Webentwicklung
hochchristoph
0
120
Nuxt – The Future of Web Frameworks
hochchristoph
0
39
Design Essentials für Techniker
hochchristoph
1
48
Look, no database
hochchristoph
0
250
7 Things Learned
hochchristoph
0
36
Einführung in Go
hochchristoph
0
66
Other Decks in Programming
See All in Programming
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
33
14k
iOSDCのペンライトを自動制御したい!
akkeylab
0
340
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
670
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
300
カツオ、ご期待ください
suneo3476
0
140
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.4k
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
270
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
510
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
160
速習iPhone Duo対応
yuukiw00w
2
930
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
210
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
Into the Great Unknown - MozCon
thekraken
41
2.7k
The Curious Case for Waylosing
cassininazir
1
550
Game over? The fight for quality and originality in the time of robots
wayneb77
1
290
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Between Models and Reality
mayunak
4
480
Designing for humans not robots
tammielis
254
26k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Exploring anti-patterns in Rails
aemeredith
4
520
The Cost Of JavaScript in 2023
addyosmani
55
10k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
320
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?