で、昨日久しぶりにMojoliciousをアップグレードしたら3.28になって、hypnotoad.confを読んでくれなくなっていて、Listenするポート変えるにはどうするかいろいろ試行錯誤してました。
結論から書くと、アプリケーションの名前がnekoならneko/lib/Neko.pmのsub startup{}の中で、Mojolicious::Plugin::Configを使って{ 'hynotoad' => {内容} }を読み込ませるとよいです。
% mojo generate app Neko
MojoliciousをアップグレードしてListenするポート番号が8080になってるから、設定ファイルを読んでないなぁと思いつつ、設定ファイルの場所を変えたりしてみましたが、全く解決に至りませんでした。ソースを読んでみたら、いままで Mojo::Server::Hypnotoad->run で受け取っていた設定用の引数がなくなっていて、いろいろ探した揚げ句、公式ドキュメントに記述があって、それを参考にしました。
次に同じ事をやる時に忘れそうなので、mojo generateをやる一番最初の部分からの覚書きです。
$self->plugin( 'Config' => { 'file' => 設定ファイル } );で下記のようなhypnotoadをキーとする無名ハッシュが書いている設定ファイル/tmp/neko.cfを読み込むとよい感じです。
他の設定値は Mojolicious::Plugin::Config とか Mojo::Server::Hypnotoad にいろいろ書いてます。
次に同じ事をやる時に忘れそうなので、mojo generateをやる一番最初の部分からの覚書きです。
% mojo generate app Neko⏎
[mkdir] /private/tmp/neko/script
[write] /private/tmp/neko/script/neko
[chmod] neko/script/neko 744
[mkdir] /private/tmp/neko/lib
[write] /private/tmp/neko/lib/Neko.pm ←これを編集
[mkdir] /private/tmp/neko/lib/Neko
[write] /private/tmp/neko/lib/Neko/Example.pm
[mkdir] /private/tmp/neko/t
...
% touch /tmp/neko.cf ⏎
Neko.pmとneko.cf
作られたneko/lib/Neko.pmを次のような感じにします。$self->plugin( 'Config' => { 'file' => 設定ファイル } );で下記のようなhypnotoadをキーとする無名ハッシュが書いている設定ファイル/tmp/neko.cfを読み込むとよい感じです。
他の設定値は Mojolicious::Plugin::Config とか Mojo::Server::Hypnotoad にいろいろ書いてます。
hypnotoadで起動する
neko/lib/Neko.pmと/tmp/neko.cfをそれぞれ前述のように記述したらhypnotoadでアプリケーションを起動してみます。% /usr/local/bin/hypnotoad -f /tmp/neko/script/neko ⏎
Server available at http://127.0.0.1:6630.
これで指定したポート(6630)でListenするデーモンが起動する事が確認できました。
0 件のコメント:
コメントを投稿