OpenShiftはLinuxでお馴染みのRedHatが運営するPaaSクラウドサービスとそのプラットフォーム。オープンな技術のみで構成されているのが特徴。Gitでプッシュしてアプリをデプロイする。
また、現状3つのスモールギア(Herokuのdynosみたいなもの)までなら一切費用が掛からない。
PHP製コンテンツマネジメントシステムのJoomla!をインストールして遊ぶ
公式で設定済みレポジトリが用意されていたがバージョンが古かった為、Joomla!じゃぱん配布の最新版を使用したレポジトリを作成してみた。
以下、このレポジトリを使用してOpenShiftへJoomla!をインストールする手順をメモ。
1. 準備
事前に以下のプログラムを使用可能な状態にしておく。
- git
- ruby
- rubygems
sudo aptitude install git ruby1.9.1 rubygems1.9.1
2. OpenShiftアカウントの作成とコマンドラインクライアントのインストール
openshift.comでアカウントを作成。メールアドレスとパスワードの登録だけでできる。
アカウント作成後、コマンドラインクライアントをRubyGemsでインストールして初期設定する。
$ sudo gem install rhc $ rhc setup
3. アプリケーションの作成
rhcコマンドでアプリケーションを作成する。必要なカートリッジはPHPとMySQL。アプリの作成にはしばらく時間がかかる。
コマンド実行後は作成したアプリのGitレポジトリがチェックアウトされた状態となる。
$ rhc app create -a joomla -t php-5.3 rhc cartridge add -a joomla -c mysql-5.1
ネームスペース未作成の場合はapp createに -t オプションをつけると一度に作成できる。
$ rhc app create -a joomla -t php-5.3 -n YOUR_NAMESPACE
4. Joomla!設定済みレポジトリを統合してデプロイ
Joomla!設定済みレポジトリを統合する。
$ cd joomla git remote add upstream -m master git://github.com/yamorijp/openshift-joomla-japan.git git pull -s recursive -X theirs upstream master
pushでクラウドへデプロイする。
git push
以上でインストールは完了する。デプロイしたアプリへは以下のURLでアクセスできる。
http://joomla-$yournamespace.rhcloud.com
5. インストール完了後の設定変更
デプロイ直後はインストールウィザードを完了し、installationディレクトリを削除した状態となっている。
初期アカウントは admin/admin で作成されているので、必ずパスワードを変更する。
バックエンド(管理サイト)へは以下のURLでアクセスできる。
http://joomla-$yournamespace.rhcloud.com/administrator
OpenShiftについて
EC2だけに当たりハズレはあるだろうけど、無料版は結構重い。公式でうたうDrupal7で15ページ/秒は厳しいかも。
$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 26 model name : Intel(R) Xeon(R) CPU E5507 @ 2.27GHz stepping : 5 cpu MHz : 2266.746 cache size : 4096 KB fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm rep_good aperfmperf unfair_spinlock pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm dts bogomips : 4533.49 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 26 model name : Intel(R) Xeon(R) CPU E5507 @ 2.27GHz stepping : 5 cpu MHz : 2266.746 cache size : 4096 KB fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm rep_good aperfmperf unfair_spinlock pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm dts bogomips : 4533.49 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management:
$ cat /proc/meminfo MemTotal: 7513900 kB MemFree: 449420 kB Buffers: 428084 kB Cached: 1616420 kB SwapCached: 433624 kB Active: 3321456 kB Inactive: 2898616 kB Active(anon): 1946544 kB Inactive(anon): 2238516 kB Active(file): 1374912 kB Inactive(file): 660100 kB Unevictable: 32 kB Mlocked: 32 kB SwapTotal: 6249464 kB SwapFree: 2491652 kB Dirty: 436 kB Writeback: 0 kB AnonPages: 3782804 kB Mapped: 439952 kB Shmem: 9540 kB Slab: 479560 kB SReclaimable: 298096 kB SUnreclaim: 181464 kB KernelStack: 36256 kB PageTables: 225316 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 10006412 kB Committed_AS: 36760956 kB VmallocTotal: 34359738367 kB VmallocUsed: 38128 kB VmallocChunk: 34359688252 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 7864320 kB DirectMap2M: 0 kB
Xeon E5507@2.27GHz 4コアCPU, 7GBメモリ のマシンを使用。バックエンドはAmazon EC2なので、M1ラージインスタンス相当。スモールギア1つへの割り当てメモリは512MBなので、最大で14個のスモールギアが同居中?