SlideShare a Scribd company logo
1 of 29
Download to read offline
10年続くサービスの裏側
おちゃのこネット株式会社

有本雅哉
自己紹介
• 有本雅哉 (アリモトマサヤ)
• おちゃのこネット株式会社

代表取締役 兼 CTO
• PHP歴、14年
• 関西PHPユーザーズグループ スタッフ

PHPカンファレンス関西 スタッフ

神戸ITフェスティバル スタッフ

TEDxKobe スタッフ
• 2004年6月サービス開始
• 神戸で自社サービスやってます
• ネットショップの構築サービス
• 月額500円∼
• 約16,000店舗が利用中
• HTMLの知識がなくても、ブログ感覚でネットショッ
プを構築することができます
• スマートフォン表示にも対応
今日の本題
「10年続くサービスの裏側」
• 稼働サーバ台数70台以上
• データセンターにて運用中
• ショップ数:約16,000店舗
• 3億ページビュー/月間
構成
• CentOS
• Apache 2.4.*
• PHP 5.6.*
• PostgreSQL 9.*
webサーバ メールサーバ
ルータ
インターネット
ユーザ
2004年6月リリース
2004年のPHP事情
• PHP5.0リリース
• PHPフレームワーク序章
• Mojavi, Agavi, Ethna, Maple
• PEARライブラリ流行期
• HTML_QuickForm, MDB
教訓:外部環境に依存されてはいけない
http://www.smarty.net/
テンプレートエンジンです
<?php
$suu = 1 + 2;
?>
<html>
<body>
<p>1 + 2 = <?php echo $suu; ?></p>
</body>
</html>
PHPソースと、HTMLが混在
<?php
define('SMARTY_DIR', 'libs/Smarty/');
require_once 'libs/Smarty/Smarty.class.php';
$smarty = new Smarty;
$smarty->template_dir = SMARTY_DIR . 'templates/';
$smarty->compile_dir = SMARTY_DIR . 'templates_c/';
$smarty->config_dir = SMARTY_DIR . 'configs/';
$smarty->cache_dir = SMARTY_DIR . 'cache/';
$suu = 1 + 2;
$smarty->assign('suu', $suu);
$smarty->display('index.tpl');
<html>
<body>
<p>1 + 2 = {$suu}</p>
</body>
</html>
index.php
index.tpl
PHPソースと、HTMLが分離
www.smarty.net
Composerでもインストール可
動作環境
PHP5.2以上
Smarty-v.e.r/
libs/
Smarty.class.php
debug.tpl
sysplugins/* (すべて)
plugins/* (すべて)
解凍後
var/
libs/Smarty/Smarty.class.php
/plugins…
www/index.php
smarty/
templates/
templates_c/
config/
cache/
←テンプレートファイル置き場
←chmod 777
←chmod 777
<?php
define('SMARTY_DIR', ‘../smarty/‘);
require_once 'libs/Smarty/Smarty.class.php';
$smarty = new Smarty;
$smarty->template_dir = SMARTY_DIR . 'templates/';
$smarty->compile_dir = SMARTY_DIR . 'templates_c/';
$smarty->config_dir = SMARTY_DIR . 'configs/';
$smarty->cache_dir = SMARTY_DIR . 'cache/';
$suu = 1 + 2;
$smarty->assign('suu', $suu);
$smarty->display('index.tpl');
www/index.php
<html>
<body>
<p>1 + 2 = {$suu}</p>
</body>
</html>
templates/index.tpl
<html>
<body>
<p>
{if $suu == 1}
1です。

{else}
1以外です
{/if}
</p>
</body>
</html>
長く続けるならば、シンプルに
おちゃのこネットのシステムは、
もう作り直せない・・・
ありがとうございました

More Related Content

What's hot

モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方Yuya Matsushima
 
STORES.jpへのPayPal導入
STORES.jpへのPayPal導入STORES.jpへのPayPal導入
STORES.jpへのPayPal導入Ryo Katsumata
 
WordBench埼玉紹介 20130526
WordBench埼玉紹介 20130526WordBench埼玉紹介 20130526
WordBench埼玉紹介 20130526Yoshitaka KATO
 
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみたFirebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみたTomoe Sawai
 
20151215 embulk 『新人がEmbulk mBaaSプラグインを開発した話』
20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』
20151215 embulk 『新人がEmbulk mBaaSプラグインを開発した話』Yuya Niimi
 
Word camptokyo2012セッション資料
Word camptokyo2012セッション資料Word camptokyo2012セッション資料
Word camptokyo2012セッション資料horike37
 
Flexbox しか勝たん
Flexbox しか勝たんFlexbox しか勝たん
Flexbox しか勝たんTomoe Sawai
 

What's hot (9)

VIOPS03: 仮想化への取組み
VIOPS03: 仮想化への取組みVIOPS03: 仮想化への取組み
VIOPS03: 仮想化への取組み
 
モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方
 
STORES.jpへのPayPal導入
STORES.jpへのPayPal導入STORES.jpへのPayPal導入
STORES.jpへのPayPal導入
 
WordBench埼玉紹介 20130526
WordBench埼玉紹介 20130526WordBench埼玉紹介 20130526
WordBench埼玉紹介 20130526
 
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみたFirebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
 
kViewer の紹介
kViewer の紹介kViewer の紹介
kViewer の紹介
 
20151215 embulk 『新人がEmbulk mBaaSプラグインを開発した話』
20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』
20151215 embulk 『新人がEmbulk mBaaSプラグインを開発した話』
 
Word camptokyo2012セッション資料
Word camptokyo2012セッション資料Word camptokyo2012セッション資料
Word camptokyo2012セッション資料
 
Flexbox しか勝たん
Flexbox しか勝たんFlexbox しか勝たん
Flexbox しか勝たん
 

Similar to 2015.2.6神戸PHP勉強会おちゃのこネット

ウェブデザイナーのみなさん、こんなショッピングカート作ってみました。
ウェブデザイナーのみなさん、こんなショッピングカート作ってみました。ウェブデザイナーのみなさん、こんなショッピングカート作ってみました。
ウェブデザイナーのみなさん、こんなショッピングカート作ってみました。Yasufumi Nishiyama
 
電子出版・図書館事業への取り組み_COCOM_code4lib_130831
電子出版・図書館事業への取り組み_COCOM_code4lib_130831電子出版・図書館事業への取り組み_COCOM_code4lib_130831
電子出版・図書館事業への取り組み_COCOM_code4lib_130831亨 男澤
 
【ホワイトペーパー】SENZOKU LAB.pdf
【ホワイトペーパー】SENZOKU LAB.pdf【ホワイトペーパー】SENZOKU LAB.pdf
【ホワイトペーパー】SENZOKU LAB.pdfShingo Higano
 
【ブログdeホームページ】サービス概要
【ブログdeホームページ】サービス概要【ブログdeホームページ】サービス概要
【ブログdeホームページ】サービス概要ブログdeホームページ
 
企業のビジネス戦略を体系化するWebサイト設計とは
企業のビジネス戦略を体系化するWebサイト設計とは企業のビジネス戦略を体系化するWebサイト設計とは
企業のビジネス戦略を体系化するWebサイト設計とはloftwork
 
20110421 web会議市場分析
20110421  web会議市場分析20110421  web会議市場分析
20110421 web会議市場分析Hiroki Kudo
 
トレタのMySQL MySQL casual #8
トレタのMySQL MySQL casual #8トレタのMySQL MySQL casual #8
トレタのMySQL MySQL casual #8Hiroaki Sano
 
歴史あるWebサービスに携わって2年半の間に起きた事やった事
歴史あるWebサービスに携わって2年半の間に起きた事やった事歴史あるWebサービスに携わって2年半の間に起きた事やった事
歴史あるWebサービスに携わって2年半の間に起きた事やった事Masataka Kono
 
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osakaサイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 OsakaYuki Okada
 
【B-1】kintoneでお手軽コールセンター!
【B-1】kintoneでお手軽コールセンター!【B-1】kintoneでお手軽コールセンター!
【B-1】kintoneでお手軽コールセンター!Sakae Saito
 
ElasticBeanstalkで作るPHP実行環境
ElasticBeanstalkで作るPHP実行環境ElasticBeanstalkで作るPHP実行環境
ElasticBeanstalkで作るPHP実行環境Naoyuki Funatsu
 
レガシーPHPアプリ(10年もの)を運用している話
レガシーPHPアプリ(10年もの)を運用している話レガシーPHPアプリ(10年もの)を運用している話
レガシーPHPアプリ(10年もの)を運用している話Hironobu Saitoh
 
独自Ecサイト立ち上げワンストップセミナー 0907
独自Ecサイト立ち上げワンストップセミナー 0907独自Ecサイト立ち上げワンストップセミナー 0907
独自Ecサイト立ち上げワンストップセミナー 0907Makoto Nishimura
 
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話Shohei Tai
 
お金をかけずにお客様が集まるホームページをつくる方法教えます。
お金をかけずにお客様が集まるホームページをつくる方法教えます。お金をかけずにお客様が集まるホームページをつくる方法教えます。
お金をかけずにお客様が集まるホームページをつくる方法教えます。新一 佐藤
 
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験青い森ウェブ工房(福田匡彦)
 
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasiaサンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasiaMasayuki Ishikawa
 
Productive Organization with Ruby
Productive Organization with RubyProductive Organization with Ruby
Productive Organization with RubyHiroshi SHIBATA
 
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこるYusuke Yamamoto
 
ニフティセミナー資料 SEO基本の「キ」とキーワードの選び方
ニフティセミナー資料 SEO基本の「キ」とキーワードの選び方ニフティセミナー資料 SEO基本の「キ」とキーワードの選び方
ニフティセミナー資料 SEO基本の「キ」とキーワードの選び方ニフティ株式会社
 

Similar to 2015.2.6神戸PHP勉強会おちゃのこネット (20)

ウェブデザイナーのみなさん、こんなショッピングカート作ってみました。
ウェブデザイナーのみなさん、こんなショッピングカート作ってみました。ウェブデザイナーのみなさん、こんなショッピングカート作ってみました。
ウェブデザイナーのみなさん、こんなショッピングカート作ってみました。
 
電子出版・図書館事業への取り組み_COCOM_code4lib_130831
電子出版・図書館事業への取り組み_COCOM_code4lib_130831電子出版・図書館事業への取り組み_COCOM_code4lib_130831
電子出版・図書館事業への取り組み_COCOM_code4lib_130831
 
【ホワイトペーパー】SENZOKU LAB.pdf
【ホワイトペーパー】SENZOKU LAB.pdf【ホワイトペーパー】SENZOKU LAB.pdf
【ホワイトペーパー】SENZOKU LAB.pdf
 
【ブログdeホームページ】サービス概要
【ブログdeホームページ】サービス概要【ブログdeホームページ】サービス概要
【ブログdeホームページ】サービス概要
 
企業のビジネス戦略を体系化するWebサイト設計とは
企業のビジネス戦略を体系化するWebサイト設計とは企業のビジネス戦略を体系化するWebサイト設計とは
企業のビジネス戦略を体系化するWebサイト設計とは
 
20110421 web会議市場分析
20110421  web会議市場分析20110421  web会議市場分析
20110421 web会議市場分析
 
トレタのMySQL MySQL casual #8
トレタのMySQL MySQL casual #8トレタのMySQL MySQL casual #8
トレタのMySQL MySQL casual #8
 
歴史あるWebサービスに携わって2年半の間に起きた事やった事
歴史あるWebサービスに携わって2年半の間に起きた事やった事歴史あるWebサービスに携わって2年半の間に起きた事やった事
歴史あるWebサービスに携わって2年半の間に起きた事やった事
 
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osakaサイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
 
【B-1】kintoneでお手軽コールセンター!
【B-1】kintoneでお手軽コールセンター!【B-1】kintoneでお手軽コールセンター!
【B-1】kintoneでお手軽コールセンター!
 
ElasticBeanstalkで作るPHP実行環境
ElasticBeanstalkで作るPHP実行環境ElasticBeanstalkで作るPHP実行環境
ElasticBeanstalkで作るPHP実行環境
 
レガシーPHPアプリ(10年もの)を運用している話
レガシーPHPアプリ(10年もの)を運用している話レガシーPHPアプリ(10年もの)を運用している話
レガシーPHPアプリ(10年もの)を運用している話
 
独自Ecサイト立ち上げワンストップセミナー 0907
独自Ecサイト立ち上げワンストップセミナー 0907独自Ecサイト立ち上げワンストップセミナー 0907
独自Ecサイト立ち上げワンストップセミナー 0907
 
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話
 
お金をかけずにお客様が集まるホームページをつくる方法教えます。
お金をかけずにお客様が集まるホームページをつくる方法教えます。お金をかけずにお客様が集まるホームページをつくる方法教えます。
お金をかけずにお客様が集まるホームページをつくる方法教えます。
 
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験
 
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasiaサンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
 
Productive Organization with Ruby
Productive Organization with RubyProductive Organization with Ruby
Productive Organization with Ruby
 
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる
 
ニフティセミナー資料 SEO基本の「キ」とキーワードの選び方
ニフティセミナー資料 SEO基本の「キ」とキーワードの選び方ニフティセミナー資料 SEO基本の「キ」とキーワードの選び方
ニフティセミナー資料 SEO基本の「キ」とキーワードの選び方
 

2015.2.6神戸PHP勉強会おちゃのこネット