Movable Type 5.2 Overview at MTDDC 2012
Upcoming SlideShare
Loading in...5
×
 

Movable Type 5.2 Overview at MTDDC 2012

on

  • 7,473 views

 

Statistics

Views

Total Views
7,473
Views on SlideShare
4,271
Embed Views
3,202

Actions

Likes
1
Downloads
8
Comments
0

12 Embeds 3,202

http://www.movabletype.jp 1535
http://localhost 601
http://www.skyarc.co.jp 523
http://blog.sixapart.jp 471
http://www.mtcms.jp 56
http://webcache.googleusercontent.com 5
https://si0.twimg.com 4
https://twimg0-a.akamaihd.net 2
http://pinterest.com 2
http://leapf.org 1
http://us-w1.rockmelt.com 1
http://www.pinterest.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • システム管理者は、ブログ・ウェブサイトの\n公開パスを特定のディレクトリ内に\n制限する事が出来ます。\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • ここまでで5〜7分程度が望ましい\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • ま、nginxだとCGI動かないからね\n
  • ま、nginxだとCGI動かないからね\n
  • \n
  • ま、nginxだとCGI動かないからね\n
  • ま、nginxだとCGI動かないからね\n
  • \n
  • ま、nginxだとCGI動かないからね\n
  • ま、nginxだとCGI動かないからね\n
  • \n
  • \n
  • ま、nginxだとCGI動かないからね\n
  • ま、nginxだとCGI動かないからね\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Movable Type 5.2 Overview at MTDDC 2012 Movable Type 5.2 Overview at MTDDC 2012 Presentation Transcript

  • MOVABLE TYPE 5.2 OVERVIEW (若干エンジニア目線) 2012.8.4 (Sat) YUJI TAKAYAMA Six Apart, Ltd.
  • it tra orlf pSe YUJI Takayama @yuji Software Engineer, Movable Type, Six Apart
  • NEW FEATURE‣ Rich Text Editor‣ Site Path Restriction‣ SMTP AUTH‣ tools/upgrade‣ Cloud
  • NEW FEATURE‣ Rich Text Editor‣ Site Path Restriction‣ SMTP AUTH‣ tools/upgrade‣ Cloud
  • TinyMCE Next session...
  • ちなみに・・・Lekumo ビジネスブログでもTinyMCEが利用可能になります Coming soon...
  • NEW FEATURE‣ Rich Text Editor‣ Site Path Restriction‣ SMTP AUTH‣ tools/upgrade‣ Cloud
  • NEW FEATURE‣ Rich Text Editor‣ Site Path Restriction‣ SMTP AUTH‣ tools/upgrade‣ Cloud
  • System Administrator can restricts publishing path
  • NEW CONFIGURATION DIRECTIVE BaseSitePath /path/to/site_root HideBaseSitePath [0 / 1]
  • NEW FEATURE‣ Rich Text Editor‣ Site Path Restriction‣ SMTP AUTH‣ tools/upgrade‣ Cloud
  • NEW FEATURE‣ Rich Text Editor‣ Site Path Restriction‣ SMTP AUTH‣ tools/upgrade‣ Cloud
  • ‣ Mail::Sendmail → Net::SMTP Family ‣ Net::SMTP ‣ Net::SMTP::SSL ‣ Net::SMTP::TLS‣ SSL/TLS | STARTTLS support‣ Submission Port support‣ Debug support‣ Function interface is same as 5.1x
  • NEW CONFIGURATION DIRECTIVE SMTPAuth [0 / 1 / ssl / starttls] SMTPUser login username SMTPPassword login password SMTPPort port number
  • NEW FEATURE‣ Rich Text Editor‣ Site Path Restriction‣ SMTP AUTH‣ tools/upgrade‣ Cloud
  • NEW FEATURE‣ Rich Text Editor‣ Site Path Restriction‣ SMTP AUTH‣ tools/upgrade‣ Cloud
  • % perl tools/upgrade
  • Installs or upgrades a database to the current MT schema. --quiet Stop progress reports. --dryrun Determine the upgrade steps required without executing any changes. --sql Report the SQL that would be performed instead of executing it. --name <name> The author as whom to perform the upgrade steps. Required when performing an upgrade (not at initial install).
  • Installs or upgrades a database to the current MT schema. --quiet Stop progress reports. --dryrun Determine the upgrade steps required without executing any changes. --sql Report the SQL that would be performed instead of executing it. --name <name> The author as whom to perform the upgrade steps. Required when performing an upgrade (not at initial install).At initial install, these parameters are all required. All values must be URI escaped. --username <name> --password <pass> --nickname <name> --email <name> --use_system_email [0 or 1] --preferred_language [ja|de|en-us|es|fr|nl] --site_name <name> --site_url <url> --site_path <path> --site_theme <theme> --site_timezone <timezone in numeric> --rebuild [0|1]
  • NEW FEATURE‣ Rich Text Editor‣ Site Path Restriction‣ SMTP AUTH‣ tools/upgrade‣ Cloud
  • NEW FEATURE‣ Rich Text Editor‣ Site Path Restriction‣ SMTP AUTH‣ tools/upgrade‣ Cloud
  • Movable Typeon the Cloud
  • Run on...Windows AzureMovable Type Advanced Next session...
  • PSGI/Plack
  • Perl webServerGatewayInterface
  • “Plack is a set of tools for using the PSGIstack. It contains middleware components, a reference server and utilities for Webapplication frameworks. Plack is like Rubys Rack or Pythons Paste for WSGI.” cite: http://search.cpan.org/~miyagawa/Plack-1.0001/lib/Plack.pm
  • before Apache mod_cgi mod_perl mod_fcgi CGI mod_perl FastCGI Movable Type
  • after Apache mod_cgi mod_perl mod_fcgi Plack Movable Type
  • $ cpanm Task::Plack
  • Movable Type meets PSGI/Plack
  • ‣ mt.psgi / MT::PSGI‣ Auto mount applications‣ Graceful reloading‣ Support for plugins
  • ‣ mt.psgi / MT::PSGI‣ Auto mount applications‣ Graceful reloading‣ Support for plugins
  • mt.psgi / MT::PSGI• mt.psgi #!/usr/bin/perl # Movable Type (r) Open Source (C) 2001-2012 Six Apart, Ltd. # This program is distributed under the terms of the # GNU General Public License, version 2. # # $Id$ use strict; use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/lib" : lib; use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/extlib" : extlib; use MT::PSGI; my $app = MT::PSGI->new()->to_app(); $ starman --workers 2 --port 5000 --pid=/var/run/mt.pid /path/to/mt.psgi• MT::PSGI • Like a MT::Bootstrap • Wrapping Movable Type applications as PSGI application
  • ‣ mt.psgi / MT::PSGI‣ Auto mount applications‣ Graceful reloading‣ Support for plugins
  • ‣ mt.psgi / MT::PSGI‣ Auto mount applications‣ Graceful reloading‣ Support for plugins
  • Auto mount applications• Read application information from the registry at initializing• Not only for core applications. Your application in the plugin will be able to auto-mountapplications: community: handler: MT::App::Community script: $Community::MT::App::Community::script_name ~ addons/Community.pack/config.yaml ~ applications => { xmlrpc => { handler => MT::XMLRPCServer, script => sub { MT->config->XMLRPCScript }, type => xmlrpc, }, atom => { handler => MT::AtomServer, script => sub { MT->config->AtomScript }, }, ~ lib/MT/Core.pm ~
  • ‣ mt.psgi / MT::PSGI‣ Auto mount applications‣ Graceful reloading‣ Support for plugins
  • ‣ mt.psgi / MT::PSGI‣ Auto mount applications‣ Graceful reloading‣ Support for plugins
  • Graceful reloading• reboot() method in MT::App=head2 $app->rebootReboot all MT instance. Now, this method sends SIGHUP to the process managerwhich specified by PIDFilePath config directive. If PIDFilePath isnt set, nosignals would be sent. ~ lib/MT/App.pm : POD ~my $app = MT->instace;$app->reboot();• Currently, reloading automatically at following event • Install / Upgrade • Post save mt_config (settings) • Post save mt_field (custom fields)• Your plugin should call reboot method if you want to reload
  • NEW CONFIGURATION DIRECTIVE PIDFilePath /path/to/pid_file/filename
  • ‣ mt.psgi / MT::PSGI‣ Auto mount applications‣ Graceful reloading‣ Support for plugins
  • ‣ mt.psgi / MT::PSGI‣ Auto mount applications‣ Graceful reloading‣ Support for plugins
  • Support for plugin• If your plugin have an application, should set following attribute • script: Required, Subroutine reference that returns your scripts endpoint name • cgi_path: Optional, If you want to mount your application on the path different from other applications, you can set subroutine reference that returns path to your application • type: Optional, Specify the application type. Only run_once and xmlrpc are acceptable value. default, persistent CGI script • run_once: Run as non-persistent CGI script • xmlrpc: Special mode for apps which constructed on XMLRPC::Lite. Make PSGI app with using XMLRPC::Transport::HTTP::Plack• Your plugin will never change about output (almost)
  • Sample config.yamlid: NewAppname: NewAppapplications: newapp: handler: NewApp::App script: > sub { MT->config->NewAppScript } cgi_path: > sub { MT->config->NewAppCGIPath; } methods: hello: $NewApp::NewApp::App::helloconfig_settings: NewAppCGIPath: default: /mt/test/ NewAppScript: default: new-app.cgi
  • Online Beta Trialhttp://www.movabletype.jp/beta/52/online.html
  • IDC FrontierCloud Servicehttp://www.idcf.jp/cloud/service/
  • IDC FrontierCloud Service XS Plan1 CPU0.5GB Memory5GB HDD nginx (Port:80,443) php-fpm / dynamic publishing handler Reverse Proxy Starman (Port:5000) PSGI Movable Type
  • IDC FrontierCloud Service XS Plan1 CPU0.5GB Memory5GB HDD nginx (Port:80,443) php-fpm / dynamic publishing handler Reverse Proxy Starman (Port:5000) PSGI Movable Type
  • Nginx“high-performance HTTP Server and reverse proxy”
  • Nginx ‣ Speed‣ Smart‣ Scalability‣ Super lightweight
  • Nginx ‣ Nginx does not serve CGI script by default‣ Nginx does not support .htaccess
  • Starman“high-performance preforking PSGI/Plack web server”
  • IDC FrontierCloud Service XS Plan1 CPU0.5GB Memory5GB HDD nginx (Port:80,443) php-fpm / dynamic publishing handler Reverse Proxy Starman (Port:5000) PSGI Movable Type
  • Starman‣ Launch PSGI application‣ Starman is reference implementation for Plack server
  • Dynamic Publishing Handler “.htaccess redirect handler for Dynamic Publishing”
  • Dynamic Publishing Handler‣ For Dynamic Publishing‣ Implemented by Six Apart‣ By Perl‣ Will be public, coming soon
  • Check out the code$ git clone git@github.com:movabletype/movabletype.git$ git checkout -b develop origin/develop$ make me Try online Beta http://www.movabletype.jp/beta/52/online.html
  • Any questions?
  • Thank you for listening