スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

さくらVPSにMovable Type5.2をインストール

http://www.movabletype.jp/index.html
Movable Type は使ったことないけれど、さくらVPSを契約したから
入れてみようと思い。マッサラな状態からトライ。うまくいくといいが・・・

こちらのページを参照した。
http://www.skyward-design.net/blog/archives/000140.html
http://smallworld.west-tokyo.com/blog/2012/08/amazon-ec2-nginx-psgi-mt.html

ディレクトリの準備とファイルの配置

ホームディレクトリ直下にwwwというディレクトリをつくります。
その下にcgi-bin/mtというサブディレクトリとmt-staticというサブディレクトリを作成しました。


mt5.2のダウンロードして解凍したファイルをぶち込む。


詳細は以下参照
http://www.movabletype.jp/documentation/mt5/installation/linux.html

cgiファイルの権限変更、ディレクトリの権限変更

cd ~/www/cgi-bin/mt
chmod 755 *.cgi
cd ~/www/mt-static
chmod 777 support
cd ~/www/cgi-bin/mt
chmod 777 themes



cgiファイルの#!で記述しているperlのパスの変更
which perlで表示されるperlのパスに変更する。

cd ~/www/cgi-bin/mt
find . -name "*.cgi" -print | xargs sed -i 's#/usr/bin/perl#/home/nopaste/perl5/perlbrew/perls/perl-5.16.1/bin/perl#g'


nginxの設定

設定ファイルを別にする方法もあるのですが、どうもめんどくさそうで。

vi /usr/local/nginx/conf/nginx.conf



server {
listen 80;
server_name dokechin.com;
root /home/nopaste/www;

access_log /var/log/www.access.log main;

location / {
index index.html index.htm;
}

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

location /cgi-bin/mt { proxy_pass http://127.0.0.1:5000; }

}



nginxサービスをリスタート

supervisorctl restart nginx



mtで必要なperlモジュールのインストール


cpanm Task::Plack
cpanm XMLRPC::Transport::HTTP::Plack
cpanm CGI::PSGI
cpanm CGI::Parse::PSGI
cpanm CGI::Compile



MySQLのデーターベースおよびユーザの作成


http://www.movabletype.jp/documentation/mt5/database/mysql.html


mt-config.cgiファイルの作成


<TODO>
mt-config.cgi-original を参照しながら、設定します。

仮起動


ここまでの設定が正しいか試す為に仮起動

cd ~/www/mt
plackup mt.psgi



ブラウザからhttp://xxxx.com/cgi-bin/mtでアクセスして動作確認できた。


runスクリプトの作成


/home/nopaste/www/mtディレクトリにrunスクリプトを作成
chmod +x runを忘れずに

#!/bin/sh
MT=/home/nopaste/www/mt
PID=$MT/pids/test.pid
PSGI=$MT/mt.psgi

cd $MT
/home/nopaste/perl5/perlbrew/perls/perl-5.16.1/bin/starman --pid $PID $PSGI



Supervisor経由で起動させる設定。


vi /etc/supervisord.d/mt.conf

[program:mt]
user=nopaste
command=/home/nopaste/www/mt/run
directory=/home/nopaste/www/mt
redirect_stderr=true
stdout_logfile=/var/log/supervisord/mt.log
stdout_logfile_maxbytes = 5MB
stderr_logfile=/var/log/supervisord/mt.err
stderr_logfile_maxbytes = 5MB
stdout_logfile_backups = 5
autorestart = true
startsecs = 5


反映は

supervisorctl update



スポンサーサイト

YAPCのプレゼント 届いた中身はなんと


本だろうなあと思ってたらなんとLINEのぬいぐるみでしたあ。可愛いです。箱の絵もすごく可愛く。娘たちはよろこんでおります。ありがとう御座いました。

CentOSでXML::LibXMLのインストール

http://d.hatena.ne.jp/linux40/20080110/1199932855

さくらVPSの設定[メカブ+かぼちゃ編]

ダウンロード(mecab-0.994)
http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html#download

configure時には、本体、辞書ともに

--with-charset=utf8


をつけた。

動作確認、すんなりインストール完了

$ mecab
すもももももももものうち
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS



続いてCRF(0.57を選択)
http://crfpp.googlecode.com/svn/trunk/doc/index.html#download

続いてCabocha(0.64選択)
http://code.google.com/p/cabocha/

$ ./configure --with-charset=utf8 --enable-utf8-only
$ make
$ sudo make install



そして、Cabocha.pmのインストール
$ cd perl
$ perl Makefile.PL
$ make
$ sudo make install

これで、完了。

さくらVPS設定【mysql】

斜体文http://centossrv.com/mysql.shtml

yum -y install mysql-server
yum install mysql-devel



クライアントの文字コードの設定を追加

vi /etc/my.cnf

[client]
default-character-set=utf8



確認方法

mysql -u xxxx -p
mysql > status



これでよし。

さくらVPSの設定【nginx+starman+Mojoliciusのアプリを動かすところまで】

さて、私の場合、Mojoliciousを使うのでまずは、Mojoliciousのインストールから・・・

一般ユーザのホームディレクトリへ行って
$ cd
$ cpanm Mojolicious
$ mojo generate app Hello::Web

~/hello_webというフォルダができて、そこに一式アプリが出力されます。

そんでもって、psgiファイル(hello_web.psgi)の準備、こちらも参考にしながら。
/home/nopaste/hello_web/直下に保存してください。
これ、作るのにかなり苦労しました・・・
http://blog.nomadscafe.jp/2012/01/plackmiddlewarereverseproxy.html

use Mojo::Server::PSGI;
use File::Spec;
use File::Basename;
use lib File::Spec->catdir(dirname(__FILE__), 'lib');
use Hello::Web;
use Plack::Builder;
use Plack::Builder::Conditionals;

# 引数で指定も出来る
my $web = Hello::Web->new();
my $server = Mojo::Server::PSGI->new(app => $web);

my $app = sub {
$server->run(@_);
};

builder {
enable match_if addr(['192.168.0.0/24','127.0.0.1']),
"Plack::Middleware::ReverseProxy";
$app;
};



cpanm Starman
cpanm Plack::Middleware::ReverseProxy
cpanm Server::Starter
cpanm Net::Server::SS::PreFork
そのた、いろいろ



こんなんでいいのかな・・・

後nginxの設定

vi /usr/local/nginx/conf/nginx.confファイルに追加の設定。(外だしファイルにしたらうまくいかなかった)

こちらのページを参照して改変


http://havelog.ayumusato.com/develop/javascript/e211-nodejs_build_env.html


upstream app {
server 127.0.0.1:8000;
}

server {
listen 80;
server_name hogehoge.com;
root /home/nopaste/hello_web/public;

location / {

# 実存パスへのリクエストならbreak
if ( -e $request_filename ) {
break;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://app;
}
}



ただ、そのままアクセスするとエラーがでた。

vi /usr/local/nginx/logs/error.log


2012/10/07 04:53:16 [crit] 18806#0: *3 stat() "/home/nopaste/hello_web/public/index.html" failed (13: Permission denied), client: 220.211.131.35, server: www24203ue.sakura.ne.jp, request: "GET /index.html HTTP/1.1", host: "www24203ue.sakura.ne.jp"

/home/nopasteのパーミッションを変更(755)すると出なくなった。

chmod 755 /home/nopaste



さて、これで、webサーバ。webアプリサーバの設定は完了ですが、
最後にsupervisord経由でwebアプリサーバをあげたいので

vi /etc/supervisord.d/hello_web.conf

[program:hello_web]
user=nopaste
command=/home/nopaste/hello_web/run
directory=/home/nopaste/hello_web
redirect_stderr=true
stdout_logfile=/var/log/supervisord/hello_web.log
stdout_logfile_maxbytes = 5MB
stderr_logfile=/var/log/supervisord/hello_web.err
stderr_logfile_maxbytes = 5MB
stdout_logfile_backups = 5
autorestart = true
startsecs = 5



runスクリプトの用意
$which start_server
で、start_serverの位置を調べて・・・

vi ~/hello_web/run



exec /home/nopaste/perl5/perlbrew/perls/perl-5.16.1/bin/start_server --port=8000 --interval=10 -- /home/nopaste/perl5/perlbrew/perls/perl-5.16.1/bin/plackup -s Starman -MFindBin /home/nopaste/hello_web/hello_web.psgi



nginxもsupervisordに乗せたい。
vi /etc/supervisord.d/nginx.conf

[program:nginx]
command=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisord/nginx.log
stdout_logfile_maxbytes = 5MB
stderr_logfile=/var/log/supervisord/nginxweb.err
stderr_logfile_maxbytes = 5MB
stdout_logfile_backups = 5



そして、
vi /usr/local/nginx/conf/nginx.confの先頭に
先頭にdaemon off;を追加するといいようです。(deamonではないよ。間違えないように・・)
以下。間違えた場合の例:(この例、いらないって・・・)

# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nginx: [emerg] unknown directive "deamon" in /usr/local/nginx/conf/nginx.conf:1



TODO:mysqlも乗せたいが、うまくいかなかったのでやめ。。

[program:mysql]
command = /usr/local/bin/pidproxy /var/run/mysql/mysqld.pid /usr/local/bin/mysqld_safe --pid-file=/var/run/mysql/mysqld.pid
user = mysql
redirect_stderr = true
priority = 200
startretries = 10



とりあえず、mysqldをサービス化しておく。(必要かな?)

chkconfig --add mysqld
chkconfig mysqld on
service mysql status



反映は、以下で行うといい。

supervisorctl update


さくらVPSの設定【supervisordのインストール編】

papixさんのページを参考に、若干パスを修正して設定しました。

http://papix.hateblo.jp/entry/2012/07/04/004357

# yum install python-setuptools
# easy_install -U supervisor




mkdir /etc/supervisord.d //設定ファイル置き場



新規で/etc/supervisord.confファイルを作成する。

vi /etc/supervisord.conf



こちらのページを参照しました。
http://wiki.livedoor.jp/kurt0027/d/supervisord

vi /etc/init.d/supervisord

以下のサイトにありますので、コピッテつかう。
http://www.tomoyan.net/dokuwiki/python/supervisor

chmod +x /etc/init.d/supervisord
/etc/rc.d/init.d/supervisord start
/etc/rc.d/init.d/supervisord status
chkconfig --add supervisord
chkconfig supervisord on
chkconfig --list supervisord

さくらVPSの設定方法【その2:nginxインストール編】

つぎに、nginxの設定をしてみる。

これも、papixさんのページを参照しましたぁー。
http://papix.hateblo.jp/entry/2012/07/04/004357

$ sudo su - // 管理者へ
# yum -y install pcre-devel openssl-devel
# wget http://nginx.org/download/nginx-1.2.1.tar.gz
# tar zxvf ./nginx-1.2.1.tar.gz
# cd ./nginx-1.2.1
# ./configure
# make
# make install



こいつをコピッてきて
http://wiki.nginx.org/RedHatNginxInitScript

これを編集(ここもpapixさんとおなじです)

変更前: nginx="/usr/sbin/nginx"
変更後: nginx="/usr/local/nginx/sbin/nginx"
変更前: NGINX_CONF_FILE="/etc/nginx/nginx.conf"
変更後: NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"


これを, '/etc/init.d/nginx'に保存する。

# chmod +x /etc/init.d/nginx
# /etc/rc.d/init.d/nginx start
# /etc/rc.d/init.d/nginx status
# chkconfig --add nginx
# chkconfig nginx on
# chkconfig --list nginx



起動しないってあせっていたら。時間が必要だっただけでした。
ブラウザからhttp://aaa.bbb.ccc.ddd/であくせす
ブラウザに以下が表示され!やったー。

Welcome to nginx!



やっぱり、オフにしよう。なぜなら、nginxもsupervisord管理にしたいから

# chkconfig nginx off

どうやったらヒットする アイデアが浮かぶのか

新しいWEBサイトを企画を考えた段階でアイデアの良し悪しは判断できない。
実装してみないて判らないことがある。WEBに入ってくるデーターの面白さは作らないと判らないってものだから。

作り方はいろいろあるとは思うが自分が一番やりやすい実装方法がいいとおもう。私の場合、JAVA系はどうも苦手でperlに行き着いた。

アイデアは無からうまれなくて、いろいらな技術(HTML5やらjqueryなど)とサービスを組み合わせて作るためその辺の知識があったにこしたことはない。技術とサービスを組み合わせれたらこんな面白いことができないかと常に考える。

運用ノウハウ(パフォーマンスチューニング、スケールアップ、スケールアウト)うるにはそれなりの人気あるサイトを作らないといけない。

さくらVPSの設定方法【その1:perlのインストールまで】

papixさんのこのエントリを参考にしました。
http://papix.hateblo.jp/entry/2012/07/04/004357

ただ、Teratermで使う秘密鍵の生成部分はcygwinのssh-keygenコマンドを利用するようにしました。
Teraterm付属のやつで作ったら認識しなかった。

おかしいなぁ。これでperlbrewがインストールされるとあるが、
どうもバージョン指定が必要とエラーに。

perl perlbrew install



だからといってバージョン指定するとこれまたエラー

[tatsumi@localhost ~]$ perl perlbrew install 5.16.1
Fetching perl-5.16.1 as /home/tatsumi/perl5/perlbrew/dists/perl-5.16.1.tar.bz2
Unable to open config (/home/tatsumi/perl5/perlbrew/Config.pm): そのようなファイルやディレクトリはありません at /loader/0x2200998/App/perlbrew.pm line 65.



如何するんだ・・・

そもそもユーザディレクトリにperl5がないんですけど・・・


というわけで、気をとりなおして・・

$ curl -LO http://xrl.us/perlbrew
$ chmod +x brewlbrew // 実行権限を与える
$ ./perlbrew init //perl5ディレクトリが作られる
$ mv perlbrew ~/perl5/perlbrew/bin            
$ echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bashrc // .bashrcに, perlbrewを使う為の設定を追記
$ source ~/.bashrc // 変更した.bashrcを有効化
$ which perlbrew // パスが通っていることを確認
~/perl5/perlbrew/bin/perlbrew



せっかくなのでcpanmと最新のperl5.16.1をインストール

$perlbrew install-cpanm
$perlbrew install-patchperl
$perlbrew install 5.16.1
$perlbrew switch 5.16.1
$perl -v



これで、perl環境が一通りできたのかも・・・

マネタイズできるWEBアプ リケーションをつくりたい

私の勤めてる会社は所謂「人月商売」が売り上げの大半を占めているIT系企業としてはまあ普通といえば普通ですがヤッパリ自社サービスがあった方が良いと思いますが。取り組みがされてるんだかされてないんだか。要するにノウハウがない状態。趣味とはいえWEBサービスを企画、開発、運用するということは自身の成長だけでなく会社にもプラスになるだろう。
ヒットするサービスをつくりたいのは山々であるけどそうたやすくはない。まあとりあえず企画は悪くても。開発、運用フェーズまで経験するということが重要だと思う。失敗すれば失敗ノウハウがたまるわけで。

企画が完璧でなくても、運用を続けて、改善をかさねれば良いものになっていくかもしれないから。まずは公開しちゃうこと運用フェーズまで乗せることが一番大切なことだと思う。この辺は楽天流みたいなとこかな。

Learn From AlphaGeeksのアクセス数増加!

アクセス数
LTソンで2桁超えたいとお話しましたが・・・
YAPC感想ブログで941さんの後ろという高位置をゲットしたおかげ??
からか、Learn From AlphaGeeksのアクセス数がこんな感じに伸びましたぁ。
そして、テクノ猫
さんにリツイートしていただいたり。
ネットは何が起こるかわかりませんねーー。

ご指摘いただいた、サーバに乗せて定期的に更新させるようにしないとですね。
プロフィール

鈍足ランナー

Author:鈍足ランナー
作成アプリ

Learn from AlphaGeeks
Twinani


最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。