SlideShare a Scribd company logo
PHPという概念が存在しない退屈な世界
whoami
• 大須賀 義浩
• PHPエンジニア@株式会社 Loco Partners
• twitter @oh_sky
• facebook http://fb.com/ohsky
第1話
PaaSは誰が為に
かつてのPHP
どのレンタルサーバでも使用できる
お手軽なWeb開発言語
最近のPHP
PaaSでは対応をあとまわしにされがち
冷遇されている感
AWS Lambda
• Node.js, Java, Pythonのコードをアップロードする
だけで実行できるPaaS的なサービス
• イベント駆動
• オートスケール
• リクエスト回数・実行時間(/100ms)で課金
AWS Lambdaで使用できる言語
• Node.js, Python, Java
• Amazon Linuxでサポートされている言語(?)
第2話
サポート言語のなぞ
例えば、perlコマンドを呼び出してperlのスクリプトを実行可能
http://oh-sky.hatenablog.com/entry/2015/10/19/010516
Perl は使える
PHPは使えない
その他
FAQにはGo, Rubyを使用できると書いてあるが、
PHPという概念が存在しない退屈な世界
その他、sh, bash, awk, luaなどが使えた
使える言語は他にもありそう
(PHPは無かったが)
第3話
AWS Lambdaの愛し方
AWS Lambdaで
PHPは使えないのか
• PHPコマンドをアップロードすれば良い
• Linux用のパッケージからPHPコマンドを拝借する
• あるいは自分でコンパイルしたPHPをアップロード
する
AWS LambdaでPHPを動かす
├── index.js
├── script.sh
├── hello.php
├── php/
│   ├── php
│   └── php.ini
└── lib/
   ├── libicudata.so.50
   ├── libicui18n.so.50
   ├── libicuio.so.50
   └── libicuuc.so.50
exports.handler = function(event, context) {
var exec = require('child_process').exec;
exec('sh script.sh', function (error, stdout, stderr) {
if(stdout){
console.log('stdout: ' + stdout);
}
if(stderr){
console.log('stderr: ' + stderr);
}
if (error !== null) {
console.log('Exec error: ' + error);
}
context.succeed(stdout);
});
};
Node.jsからシェルスクリプトを起動する
AWS LambdaでPHPを動かす
├── index.js
├── script.sh
├── hello.php
├── php/
│   ├── php
│   └── php.ini
└── lib/
   ├── libicudata.so.50
   ├── libicui18n.so.50
   ├── libicuio.so.50
   └── libicuuc.so.50
<script.sh>
#!/bin/sh
export LD_LIBRARY_PATH=`pwd`/lib:
$LD_LIBRARY_PATH
./php/php hello.php
<hello.php>
<?php
echo "PHP Version:" . PHP_VERSION . "n";
echo "Hello world.n";
共有ライブラリのPATHを通す
第6話
手作りのぬくもり
AWS LambdaでPHPを動かす
├── index.js
├── script.sh
├── hello.php
├── php/
│   ├── php
│   └── php.ini
└── lib/
   ├── libicudata.so.50
   ├── libicui18n.so.50
   ├── libicuio.so.50
   └── libicuuc.so.50
./configure 
--prefix=/var/task/php 
--disable-all 
--enable-intl 
--enable-mbstring 
--enable-json 
--enable-session 
--enable-pdo 
--with-sqlite=shared 
--with-openssl 
&& make
php.ini を読み込めるように
オプションは
お好みで
(これらはCakePHP3を動かしたくて
付けたオプション)
AWS LambdaでPHPを動かす
├── index.js
├── script.sh
├── hello.php
├── php/
│   ├── php
│   └── php.ini
└── lib/
   ├── libicudata.so.50
   ├── libicui18n.so.50
   ├── libicuio.so.50
   └── libicuuc.so.50
configureオプションによって
必要となるライブラリはここに置く。
これらは--enable-intlを付けたため必要。
このディレクトリへのライブラリPATHは、
script.sh で設定済み。
AWS LambdaでPHPを動かす
$ zip -r hello-php.zip index.js lib php script.sh hello.php
zipにまとめてアップロード
実行
まとめ
• AWS LambdaでPHPを使えないことはない
• 公式でサポートしてほしい
• せっかくPHPが動いたので、Webアプリケーション
を動かしたい
次回
AWS Lambdaは
PHP Web APPの夢を見るか?
http://lmn.connpass.com/event/23001/
2015/11/27 20:00 On Air

More Related Content

PDF
Phpでアプリケーションサーバー
PDF
たのしい独自フレームワーク
PDF
Real World PHP in pixiv
PPTX
Re: WebServer BenchMarking
PDF
はじめてのUser-Agent文字列
PDF
apachehereというPHPのBuiltin Serverっぽいやつをつくった
PPTX
PHP7実環境ベンチ2016春
PDF
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Phpでアプリケーションサーバー
たのしい独自フレームワーク
Real World PHP in pixiv
Re: WebServer BenchMarking
はじめてのUser-Agent文字列
apachehereというPHPのBuiltin Serverっぽいやつをつくった
PHP7実環境ベンチ2016春
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj

What's hot (20)

PDF
Hashicorpツールズ
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
PDF
anybuild/Hosting casual #1
PDF
東京Node学園 今できる通信高速化にトライしてみた
PPTX
サーバーを作ろう (毎週のハンズオン勉強会の資料)
PDF
本番環境で使いたいPHP
KEY
最強のPHP統合開発環境 PHPStorm
PPTX
20111029 rubyon php
PPTX
App Engine と いまどきのPHP
PDF
PHP 5.4のビルトインウェブサーバー
PDF
Dockerプレゼン
PPTX
Web 01
PPTX
serverless
PDF
Rubyを使った分散全文検索ミドルウェア
PDF
恋に落ちるデプロイツール
PDF
Web技術勉強会 20120609
KEY
Yesodを支える技術
PPTX
Typescriptの中のこと(浅め)
KEY
恐るべきApache, Web勉強会@福岡
PDF
Flowtype Introduction
Hashicorpツールズ
PHP x AWS でスケーラブルなシステムをつくろう
anybuild/Hosting casual #1
東京Node学園 今できる通信高速化にトライしてみた
サーバーを作ろう (毎週のハンズオン勉強会の資料)
本番環境で使いたいPHP
最強のPHP統合開発環境 PHPStorm
20111029 rubyon php
App Engine と いまどきのPHP
PHP 5.4のビルトインウェブサーバー
Dockerプレゼン
Web 01
serverless
Rubyを使った分散全文検索ミドルウェア
恋に落ちるデプロイツール
Web技術勉強会 20120609
Yesodを支える技術
Typescriptの中のこと(浅め)
恐るべきApache, Web勉強会@福岡
Flowtype Introduction
Ad

Viewers also liked (20)

PDF
PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編
PDF
面白いは正義
PDF
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話
PDF
Dependency Injection and Pimple
PDF
Big Master Data PHP BLT #1
PDF
Amazon Redshiftによるリアルタイム分析サービスの構築
PDF
リアルタイム分析サービス『たべみる』を支える高可用性アーキテクチャ
PDF
CakePHP2でMySQL Replication
PDF
Okinawa Open Days HP事例紹介
PDF
第17回CloudStackユーザー会パネル資料(OpenStackの説明)
PPTX
CloudWatch Eventsを使った ECSのAutoScaling
PDF
9/26 CUPA Cafe ~押し寄せる海外クラウド~
PDF
PaaS勉強会#25 Helion Development Platform Tech Overview
PDF
Cloudera impala
PDF
キャパシティ プランニング
PDF
スペシャリストになるには
PDF
Microsoft Azureでのコンテナ利用最新動向
PDF
Containers on Microsoft Azure
PDF
OpenStackとTerraformで作る Phoenix Environments
PDF
BigQueryのちょっとした話 #phpblt
PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編
面白いは正義
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話
Dependency Injection and Pimple
Big Master Data PHP BLT #1
Amazon Redshiftによるリアルタイム分析サービスの構築
リアルタイム分析サービス『たべみる』を支える高可用性アーキテクチャ
CakePHP2でMySQL Replication
Okinawa Open Days HP事例紹介
第17回CloudStackユーザー会パネル資料(OpenStackの説明)
CloudWatch Eventsを使った ECSのAutoScaling
9/26 CUPA Cafe ~押し寄せる海外クラウド~
PaaS勉強会#25 Helion Development Platform Tech Overview
Cloudera impala
キャパシティ プランニング
スペシャリストになるには
Microsoft Azureでのコンテナ利用最新動向
Containers on Microsoft Azure
OpenStackとTerraformで作る Phoenix Environments
BigQueryのちょっとした話 #phpblt
Ad

Similar to PHPという概念が存在しない退屈な世界 (20)

PDF
スクリプト言語PHP攻略法
PDF
20190608LT資料
KEY
CloudFoundryをつかってみよう
PDF
PaaS / Cloud Foundry makes you happy
PDF
PHPカンファレンス2016 初心者セッション
PDF
Heroku
PDF
Phjosh(仮)プロジェクト
PDF
Phpcon2020sponsor lt php8_on_lambda
PDF
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
PDF
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
PDF
CDH4.1オーバービュー
PDF
FuelPHP活用事例
PPTX
As you like, PHP on Azure - お気に召すままに!
PPTX
初心者が伝えるDocker超入門
PDF
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
PDF
Composerはじめました
PDF
RFC: "var" Deprecation
PPTX
JAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
PDF
PHPプログラミングのIPv6対応の実際
PDF
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
スクリプト言語PHP攻略法
20190608LT資料
CloudFoundryをつかってみよう
PaaS / Cloud Foundry makes you happy
PHPカンファレンス2016 初心者セッション
Heroku
Phjosh(仮)プロジェクト
Phpcon2020sponsor lt php8_on_lambda
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
CDH4.1オーバービュー
FuelPHP活用事例
As you like, PHP on Azure - お気に召すままに!
初心者が伝えるDocker超入門
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
Composerはじめました
RFC: "var" Deprecation
JAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
PHPプログラミングのIPv6対応の実際
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2

PHPという概念が存在しない退屈な世界