SlideShare une entreprise Scribd logo
1  sur  61
MOVABLE TYPE 5.2
  OVERVIEW
    (若干エンジニア目線)



                    2012.8.4 (Sat)
                  YUJI TAKAYAMA
                    Six Apart, Ltd.
it
       tra
    or
lf p
Se




                 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 Type

on the Cloud
Run on...
Windows Azure
Movable Type Advanced
                 Next session...
PSGI/Plack
Perl web
Server
Gateway
Interface
“Plack is a set of tools for using the PSGI
stack. It contains middleware components,
  a reference server and utilities for Web
application frameworks. Plack is like Ruby's
     Rack or Python's 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-mount
applications:
    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->reboot

Reboot all MT instance. Now, this method sends SIGHUP to the process manager
which specified by PIDFilePath config directive. If PIDFilePath isn't set, no
signals 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 script's
           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.yaml
id: NewApp
name: NewApp

applications:
    newapp:
        handler: NewApp::App
        script: >
            sub {
                MT->config->NewAppScript
            }

       cgi_path: >
           sub {
               MT->config->NewAppCGIPath;
           }

        methods:
            hello: $NewApp::NewApp::App::hello
config_settings:
    NewAppCGIPath:
        default: /mt/test/
    NewAppScript:
        default: new-app.cgi
Online Beta Trial
http://www.movabletype.jp/beta/52/online.html
IDC Frontier
Cloud Service
http://www.idcf.jp/cloud/service/
IDC Frontier
Cloud Service XS Plan
1 CPU
0.5GB Memory
5GB HDD                nginx (Port:80,443)
               php-fpm / dynamic publishing handler

                                         Reverse Proxy

                        Starman (Port:5000)


                                         PSGI

                          Movable Type
IDC Frontier
Cloud Service XS Plan
1 CPU
0.5GB Memory
5GB 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 Frontier
Cloud Service XS Plan
1 CPU
0.5GB Memory
5GB 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

Contenu connexe

Tendances

Using Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityUsing Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivity
Claus Ibsen
 
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryRemedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Tatsuhiko Miyagawa
 
Plack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and serversPlack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and servers
Tatsuhiko Miyagawa
 
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A GrzesikApache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
mfrancis
 

Tendances (20)

A few words about WAMP
A few words about WAMPA few words about WAMP
A few words about WAMP
 
Using Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivityUsing Apache Camel connectors for external connectivity
Using Apache Camel connectors for external connectivity
 
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryRemedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
 
Plack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and serversPlack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and servers
 
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
 
OSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian SchneiderOSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian Schneider
 
[네이버오픈소스세미나] What’s new in Zipkin - Adrian Cole
[네이버오픈소스세미나] What’s new in Zipkin - Adrian Cole[네이버오픈소스세미나] What’s new in Zipkin - Adrian Cole
[네이버오픈소스세미나] What’s new in Zipkin - Adrian Cole
 
Microservices with apache_camel_barcelona
Microservices with apache_camel_barcelonaMicroservices with apache_camel_barcelona
Microservices with apache_camel_barcelona
 
Getting Started with Apache Camel - Malmo JUG - March 2013
Getting Started with Apache Camel - Malmo JUG - March 2013Getting Started with Apache Camel - Malmo JUG - March 2013
Getting Started with Apache Camel - Malmo JUG - March 2013
 
Taming AEM deployments
Taming AEM deploymentsTaming AEM deployments
Taming AEM deployments
 
Getting started with Apache Camel - jDays 2013
Getting started with Apache Camel - jDays 2013Getting started with Apache Camel - jDays 2013
Getting started with Apache Camel - jDays 2013
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
 
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A GrzesikApache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
 
Tatsumaki
TatsumakiTatsumaki
Tatsumaki
 
Accelerate your web app with a layer of Varnish
Accelerate your web app with a layer of VarnishAccelerate your web app with a layer of Varnish
Accelerate your web app with a layer of Varnish
 
Find bottleneck and tuning in Java Application
Find bottleneck and tuning in Java ApplicationFind bottleneck and tuning in Java Application
Find bottleneck and tuning in Java Application
 
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
 
Paris Monitoring meetup #1 - Zabbix at BlaBlaCar
Paris Monitoring meetup #1 - Zabbix at BlaBlaCarParis Monitoring meetup #1 - Zabbix at BlaBlaCar
Paris Monitoring meetup #1 - Zabbix at BlaBlaCar
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
 
How to test code with mruby
How to test code with mrubyHow to test code with mruby
How to test code with mruby
 

Similaire à Movable Type 5.2 Overview at MTDDC 2012

Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
Tatsuhiko Miyagawa
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever building
Edmond Yu
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick Rethans
Bachkoutou Toutou
 

Similaire à Movable Type 5.2 Overview at MTDDC 2012 (20)

Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
 
Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011
 
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
 
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
 
Nginx pres
Nginx presNginx pres
Nginx pres
 
Docker for mac & local developer environment optimization
Docker for mac & local developer environment optimizationDocker for mac & local developer environment optimization
Docker for mac & local developer environment optimization
 
Scale Apache with Nginx
Scale Apache with NginxScale Apache with Nginx
Scale Apache with Nginx
 
What's New and Newer in Apache httpd-24
What's New and Newer in Apache httpd-24What's New and Newer in Apache httpd-24
What's New and Newer in Apache httpd-24
 
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTGE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoT
 
Wt vs phalcon
Wt vs phalconWt vs phalcon
Wt vs phalcon
 
php & performance
 php & performance php & performance
php & performance
 
AMIMOTO: WordPress + Amazon Web Services Hands-on PARIS
AMIMOTO: WordPress + Amazon Web Services Hands-on PARISAMIMOTO: WordPress + Amazon Web Services Hands-on PARIS
AMIMOTO: WordPress + Amazon Web Services Hands-on PARIS
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever building
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick Rethans
 
Get your teeth into Plack
Get your teeth into PlackGet your teeth into Plack
Get your teeth into Plack
 
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
 
Integrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache AirflowIntegrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache Airflow
 
Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotCloud
 
Android 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation reportAndroid 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation report
 

Plus de Yuji Takayama

MT東京03 - Movable Type for AWS
MT東京03 - Movable Type for AWSMT東京03 - Movable Type for AWS
MT東京03 - Movable Type for AWS
Yuji Takayama
 
Data api workshop at Co-Edo
Data api workshop at Co-EdoData api workshop at Co-Edo
Data api workshop at Co-Edo
Yuji Takayama
 
Mtとクラウドと私
Mtとクラウドと私Mtとクラウドと私
Mtとクラウドと私
Yuji Takayama
 
Movable Type 6 overview spec3
Movable Type 6 overview spec3Movable Type 6 overview spec3
Movable Type 6 overview spec3
Yuji Takayama
 
Movable Type 6 Overview - New York Perl Mongers Tech Talk
Movable Type 6 Overview - New York Perl Mongers Tech TalkMovable Type 6 Overview - New York Perl Mongers Tech Talk
Movable Type 6 Overview - New York Perl Mongers Tech Talk
Yuji Takayama
 
Mtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 OverviewMtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 Overview
Yuji Takayama
 

Plus de Yuji Takayama (20)

Movable Type 7 のすべて
Movable Type 7 のすべてMovable Type 7 のすべて
Movable Type 7 のすべて
 
詳説 Movable type 7
詳説 Movable type 7詳説 Movable type 7
詳説 Movable type 7
 
Data API ことはじめ
Data API ことはじめData API ことはじめ
Data API ことはじめ
 
概説 Data API v3
概説 Data API v3概説 Data API v3
概説 Data API v3
 
詳説 Data api mtddc 拡張版 v3対応
詳説 Data api mtddc 拡張版   v3対応詳説 Data api mtddc 拡張版   v3対応
詳説 Data api mtddc 拡張版 v3対応
 
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api   cms どうでしょう - 大阪夏の陣初めての Data api   cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
 
Movable Type for AWS Hands-on
Movable Type for AWS Hands-onMovable Type for AWS Hands-on
Movable Type for AWS Hands-on
 
初めての Data api
初めての Data api初めての Data api
初めての Data api
 
Data API + AWS = (CMS どうでしょう 札幌編)
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)
 
Data API 2.0
Data API 2.0Data API 2.0
Data API 2.0
 
Movable Type for AWS - JAWS-UG 沖縄 CMS祭り!
Movable Type for AWS - JAWS-UG 沖縄 CMS祭り!Movable Type for AWS - JAWS-UG 沖縄 CMS祭り!
Movable Type for AWS - JAWS-UG 沖縄 CMS祭り!
 
MT東京03 - Movable Type for AWS
MT東京03 - Movable Type for AWSMT東京03 - Movable Type for AWS
MT東京03 - Movable Type for AWS
 
Data api workshop at Co-Edo
Data api workshop at Co-EdoData api workshop at Co-Edo
Data api workshop at Co-Edo
 
Mtとクラウドと私
Mtとクラウドと私Mtとクラウドと私
Mtとクラウドと私
 
Movable Type 6 overview spec3
Movable Type 6 overview spec3Movable Type 6 overview spec3
Movable Type 6 overview spec3
 
Movable Type 6 Overview - New York Perl Mongers Tech Talk
Movable Type 6 Overview - New York Perl Mongers Tech TalkMovable Type 6 Overview - New York Perl Mongers Tech Talk
Movable Type 6 Overview - New York Perl Mongers Tech Talk
 
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2
 
Mtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 OverviewMtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 Overview
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Movable Type 5.2 Overview at MTDDC 2012

  • 1. MOVABLE TYPE 5.2 OVERVIEW (若干エンジニア目線) 2012.8.4 (Sat) YUJI TAKAYAMA Six Apart, Ltd.
  • 2. it tra or lf p Se YUJI Takayama @yuji Software Engineer, Movable Type, Six Apart
  • 3. NEW FEATURE ‣ Rich Text Editor ‣ Site Path Restriction ‣ SMTP AUTH ‣ tools/upgrade ‣ Cloud
  • 4. NEW FEATURE ‣ Rich Text Editor ‣ Site Path Restriction ‣ SMTP AUTH ‣ tools/upgrade ‣ Cloud
  • 5. TinyMCE Next session...
  • 7. NEW FEATURE ‣ Rich Text Editor ‣ Site Path Restriction ‣ SMTP AUTH ‣ tools/upgrade ‣ Cloud
  • 8. NEW FEATURE ‣ Rich Text Editor ‣ Site Path Restriction ‣ SMTP AUTH ‣ tools/upgrade ‣ Cloud
  • 9. System Administrator can restricts publishing path
  • 10.
  • 11. NEW CONFIGURATION DIRECTIVE BaseSitePath /path/to/site_root HideBaseSitePath [0 / 1]
  • 12. NEW FEATURE ‣ Rich Text Editor ‣ Site Path Restriction ‣ SMTP AUTH ‣ tools/upgrade ‣ Cloud
  • 13. NEW FEATURE ‣ Rich Text Editor ‣ Site Path Restriction ‣ SMTP AUTH ‣ tools/upgrade ‣ Cloud
  • 14.
  • 15. 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
  • 16. NEW CONFIGURATION DIRECTIVE SMTPAuth [0 / 1 / ssl / starttls] SMTPUser login username SMTPPassword login password SMTPPort port number
  • 17. NEW FEATURE ‣ Rich Text Editor ‣ Site Path Restriction ‣ SMTP AUTH ‣ tools/upgrade ‣ Cloud
  • 18. NEW FEATURE ‣ Rich Text Editor ‣ Site Path Restriction ‣ SMTP AUTH ‣ tools/upgrade ‣ Cloud
  • 20. 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).
  • 21. 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]
  • 22. NEW FEATURE ‣ Rich Text Editor ‣ Site Path Restriction ‣ SMTP AUTH ‣ tools/upgrade ‣ Cloud
  • 23. NEW FEATURE ‣ Rich Text Editor ‣ Site Path Restriction ‣ SMTP AUTH ‣ tools/upgrade ‣ Cloud
  • 25. Run on... Windows Azure Movable Type Advanced Next session...
  • 28. “Plack is a set of tools for using the PSGI stack. It contains middleware components, a reference server and utilities for Web application frameworks. Plack is like Ruby's Rack or Python's Paste for WSGI.” cite: http://search.cpan.org/~miyagawa/Plack-1.0001/lib/Plack.pm
  • 29. before Apache mod_cgi mod_perl mod_fcgi CGI mod_perl FastCGI Movable Type
  • 30. after Apache mod_cgi mod_perl mod_fcgi Plack Movable Type
  • 32. Movable Type meets PSGI/Plack
  • 33. mt.psgi / MT::PSGI ‣ Auto mount applications ‣ Graceful reloading ‣ Support for plugins
  • 34. mt.psgi / MT::PSGI ‣ Auto mount applications ‣ Graceful reloading ‣ Support for plugins
  • 35. 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
  • 36. mt.psgi / MT::PSGI ‣ Auto mount applications ‣ Graceful reloading ‣ Support for plugins
  • 37. mt.psgi / MT::PSGI ‣ Auto mount applications ‣ Graceful reloading ‣ Support for plugins
  • 38. 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-mount applications: 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 ~
  • 39. mt.psgi / MT::PSGI ‣ Auto mount applications ‣ Graceful reloading ‣ Support for plugins
  • 40. mt.psgi / MT::PSGI ‣ Auto mount applications ‣ Graceful reloading ‣ Support for plugins
  • 41. Graceful reloading • reboot() method in MT::App =head2 $app->reboot Reboot all MT instance. Now, this method sends SIGHUP to the process manager which specified by PIDFilePath config directive. If PIDFilePath isn't set, no signals 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
  • 42. NEW CONFIGURATION DIRECTIVE PIDFilePath /path/to/pid_file/filename
  • 43. mt.psgi / MT::PSGI ‣ Auto mount applications ‣ Graceful reloading ‣ Support for plugins
  • 44. mt.psgi / MT::PSGI ‣ Auto mount applications ‣ Graceful reloading ‣ Support for plugins
  • 45. Support for plugin • If your plugin have an application, should set following attribute • script: Required, Subroutine reference that returns your script's 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)
  • 46. Sample config.yaml id: NewApp name: NewApp applications: newapp: handler: NewApp::App script: > sub { MT->config->NewAppScript } cgi_path: > sub { MT->config->NewAppCGIPath; } methods: hello: $NewApp::NewApp::App::hello config_settings: NewAppCGIPath: default: /mt/test/ NewAppScript: default: new-app.cgi
  • 49. IDC Frontier Cloud Service XS Plan 1 CPU 0.5GB Memory 5GB HDD nginx (Port:80,443) php-fpm / dynamic publishing handler Reverse Proxy Starman (Port:5000) PSGI Movable Type
  • 50. IDC Frontier Cloud Service XS Plan 1 CPU 0.5GB Memory 5GB HDD nginx (Port:80,443) php-fpm / dynamic publishing handler Reverse Proxy Starman (Port:5000) PSGI Movable Type
  • 52. Nginx  ‣ Speed ‣ Smart ‣ Scalability ‣ Super lightweight
  • 53. Nginx  ‣ Nginx does not serve CGI script by default ‣ Nginx does not support .htaccess
  • 55. IDC Frontier Cloud Service XS Plan 1 CPU 0.5GB Memory 5GB HDD nginx (Port:80,443) php-fpm / dynamic publishing handler Reverse Proxy Starman (Port:5000) PSGI Movable Type
  • 56. Starman ‣ Launch PSGI application ‣ Starman is reference implementation for Plack server
  • 57. Dynamic Publishing Handler “.htaccess redirect handler for Dynamic Publishing”
  • 58. Dynamic Publishing Handler ‣ For Dynamic Publishing ‣ Implemented by Six Apart ‣ By Perl ‣ Will be public, coming soon
  • 59. 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
  • 61. Thank you for listening

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. &amp;#x30B7;&amp;#x30B9;&amp;#x30C6;&amp;#x30E0;&amp;#x7BA1;&amp;#x7406;&amp;#x8005;&amp;#x306F;&amp;#x3001;&amp;#x30D6;&amp;#x30ED;&amp;#x30B0;&amp;#x30FB;&amp;#x30A6;&amp;#x30A7;&amp;#x30D6;&amp;#x30B5;&amp;#x30A4;&amp;#x30C8;&amp;#x306E;\n&amp;#x516C;&amp;#x958B;&amp;#x30D1;&amp;#x30B9;&amp;#x3092;&amp;#x7279;&amp;#x5B9A;&amp;#x306E;&amp;#x30C7;&amp;#x30A3;&amp;#x30EC;&amp;#x30AF;&amp;#x30C8;&amp;#x30EA;&amp;#x5185;&amp;#x306B;\n&amp;#x5236;&amp;#x9650;&amp;#x3059;&amp;#x308B;&amp;#x4E8B;&amp;#x304C;&amp;#x51FA;&amp;#x6765;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. &amp;#x3053;&amp;#x3053;&amp;#x307E;&amp;#x3067;&amp;#x3067;&amp;#xFF15;&amp;#x301C;&amp;#xFF17;&amp;#x5206;&amp;#x7A0B;&amp;#x5EA6;&amp;#x304C;&amp;#x671B;&amp;#x307E;&amp;#x3057;&amp;#x3044;\n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. &amp;#x307E;&amp;#x3001;nginx&amp;#x3060;&amp;#x3068;CGI&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x304B;&amp;#x3089;&amp;#x306D;\n
  34. &amp;#x307E;&amp;#x3001;nginx&amp;#x3060;&amp;#x3068;CGI&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x304B;&amp;#x3089;&amp;#x306D;\n
  35. \n
  36. &amp;#x307E;&amp;#x3001;nginx&amp;#x3060;&amp;#x3068;CGI&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x304B;&amp;#x3089;&amp;#x306D;\n
  37. &amp;#x307E;&amp;#x3001;nginx&amp;#x3060;&amp;#x3068;CGI&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x304B;&amp;#x3089;&amp;#x306D;\n
  38. \n
  39. &amp;#x307E;&amp;#x3001;nginx&amp;#x3060;&amp;#x3068;CGI&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x304B;&amp;#x3089;&amp;#x306D;\n
  40. &amp;#x307E;&amp;#x3001;nginx&amp;#x3060;&amp;#x3068;CGI&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x304B;&amp;#x3089;&amp;#x306D;\n
  41. \n
  42. \n
  43. &amp;#x307E;&amp;#x3001;nginx&amp;#x3060;&amp;#x3068;CGI&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x304B;&amp;#x3089;&amp;#x306D;\n
  44. &amp;#x307E;&amp;#x3001;nginx&amp;#x3060;&amp;#x3068;CGI&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x304B;&amp;#x3089;&amp;#x306D;\n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n