LoginSignup
8
10

More than 5 years have passed since last update.

OpenShift Onlineで任意のPerlバージョンでWebアプリを公開する方法

Last updated at Posted at 2014-07-09

RedHat社のPaaS環境である「OpenShift Online」でMojoliciousアプリを公開する方法を記載します。現在OpenShift OnlineはRHEL6.5ベースで作られており、標準のPerlカードリッジだとPerl5.10になってしまうので任意のバージョンで公開する方法を記載します。今回はPerl5.20で実装します。

前提条件

  • RHNアカウントを取得していること
  • rhcツールをDL済みであること

アプリケーションの作成

sampleという名前のアプリケーションをDIYカードリッジで作成します。

rhc app create sample diy-0.1

OpenShiftにSSHログイン

OpenShiftにSSHログインします。

rhc ssh -a sample

Perlのインストール

今回はPerl5.20をインストールします。

cd ~/app-root/data/
mkdir src
cd src
wget http://www.cpan.org/src/5.0/perl-5.20.0.tar.gz
tar xzf perl-5.20.0.tar.gz
cd perl-5.20.0
./Configure -des -Dprefix=~/app-root/data/perl
make
make install

Cpanm & Carton & Mojoliciousのインストール

Cpanm、Carton、Mojoliciousをインストール。シェル変数HOMEに~/app-root/dataを渡しているのは、デフォルトのHOMEだと権限不足でエラーではじかれるため。
OpenShift Online のセキュリティの問題なのかMojoliciousのテストがIO::Socket::INETところで失敗してしまう。

PATH=~/app-root/data/perl/bin:$PATH
HOME=~/app-root/data
cd ~/perl/bin
curl -LO http://xrl.us/cpanm
chmod +x cpanm
cpanm Carton
cpanm -n Plack Mojolicious
exit

アプリケーションのひな形作成

OpenShift Online上にgitのremoteリポジトリが作成されるのでローカルにcloneする。.openshift/action_hooksディレクトリにあるstart/stopスクリプトがアプリケーションの起動停止スクリプトになるため以下のように修正します。

rhc git-clone sample
mojo generate app Sample::Web
cd sample
mv ../sample_web/* .
vim .openshift/action_hooks/start
vim .openshift/action_hooks/stop
git add .
git commit -m 'first commit'
git push origin
#!/bin/bash
PATH=~/app-root/data/perl/bin:$PATH
nohup plackup --host $OPENSHIFT_DIY_IP --port $OPENSHIFT_DIY_PORT $OPENSHIFT_REPO_DIR/script/sample_web > /dev/null 2>&1 &
#!/bin/bash
kill `ps -ef | grep plackup | grep -v grep | awk '{ print $2 }'` > /dev/null 2>&1
exit 0

まとめ

OpenShift OnlineでもPerl最新版でMojoliciousアプリが動かせることがわかりました。

参考

OpenShift-DIY-Perl

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10