Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* ApacheにFastCGIでデプロイ [#e651a145]
** 前提 [#ce9856e7]
- FastCGIの実装としてmod_fcgidを利用する。
- その他の前提は、[[ApacheにCGIでデプロイ>http://yanor.ne...
** Apacheの設定 [#t616754e]
<IfModule !mod_fcgid.c>
LoadModule fcgid_module modules/mod_fcgid.so
</IfModule>
<Directory /var/www/my_app/public>
Options All
AllowOverride All
</Director>
** フロントコントローラ [#xcbda632]
/var/www/my_app/public/index.fcgiに設置する。
#!/usr/bin/perl
use strict;
use warnings;
use lib qw(
/var/www/my_app/lib
);
use Mojo::Server::FastCGI;
$ENV{MOJO_APP} = 'MyApp';
$ENV{BASE_URL} = '/myapp/';
Mojo::Server::FastCGI->new->run;
- $ENV{BASE_URL}はこの例でのウェブアプリ独自で使用する。
** mod_rewriteでフロントコントローラにリクエストを集める ...
/var/www/my_app/public/.htaccessに設置する。
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteBase /myapp
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.fcgi [QSA,L]
** アプリケーションクラスでのルーティング設定 [#n9797ad4]
__PACKAGE__->attr( base_url => $ENV{BASE_URL} );
sub startup {
my $self = shift;
my $base = $self->base_url;
my $r = $self->routes;
$r->route("${base}index")->to(controller => 'top', ac...
# (注)
$self->renderer->add_helper(
url_for => sub {
my $script_path = $self->base_url . $0;
$script_path =~ s/\./\\./g;
( my $url = shift->url_for(@_) ) =~ s#$script...
return $url;
}
);
}
*** 注 [#zefbdc60]
- このままだとurl_for()が"/my_app/index.fcgi/my_app/index...
- 同様の処理はMojolicious::Controllerクラスでも行う必要が...
終了行:
* ApacheにFastCGIでデプロイ [#e651a145]
** 前提 [#ce9856e7]
- FastCGIの実装としてmod_fcgidを利用する。
- その他の前提は、[[ApacheにCGIでデプロイ>http://yanor.ne...
** Apacheの設定 [#t616754e]
<IfModule !mod_fcgid.c>
LoadModule fcgid_module modules/mod_fcgid.so
</IfModule>
<Directory /var/www/my_app/public>
Options All
AllowOverride All
</Director>
** フロントコントローラ [#xcbda632]
/var/www/my_app/public/index.fcgiに設置する。
#!/usr/bin/perl
use strict;
use warnings;
use lib qw(
/var/www/my_app/lib
);
use Mojo::Server::FastCGI;
$ENV{MOJO_APP} = 'MyApp';
$ENV{BASE_URL} = '/myapp/';
Mojo::Server::FastCGI->new->run;
- $ENV{BASE_URL}はこの例でのウェブアプリ独自で使用する。
** mod_rewriteでフロントコントローラにリクエストを集める ...
/var/www/my_app/public/.htaccessに設置する。
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteBase /myapp
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.fcgi [QSA,L]
** アプリケーションクラスでのルーティング設定 [#n9797ad4]
__PACKAGE__->attr( base_url => $ENV{BASE_URL} );
sub startup {
my $self = shift;
my $base = $self->base_url;
my $r = $self->routes;
$r->route("${base}index")->to(controller => 'top', ac...
# (注)
$self->renderer->add_helper(
url_for => sub {
my $script_path = $self->base_url . $0;
$script_path =~ s/\./\\./g;
( my $url = shift->url_for(@_) ) =~ s#$script...
return $url;
}
);
}
*** 注 [#zefbdc60]
- このままだとurl_for()が"/my_app/index.fcgi/my_app/index...
- 同様の処理はMojolicious::Controllerクラスでも行う必要が...
ページ名: