WordPress + Windows Live Writer で画像のアップロードができない場合

WordPress のバージョンを 2.3 にしていろいろ検証しているうちに気がついたのですが、どうも hiromasa.another で Windows Live Writer から xmlrpc 経由での画像のアップロードができなくなってしまいました。

image

とりあえず チケットは close されてしまっていますが、以下の修正を class-IXR.php にいれれば正常に動作するようになります。

#3906 (Windows Live Writer can’t upload image) – WordPress Trac – Trac

Windows Live Writer can’t upload image

2.2.2 のときは間違いなくできていたのですが、その上に時間の経過もあったので、もしかすると CORESERVER 側の PHP のバージョンアップがあった可能性も考えられます。

さて、この Windows Live Writer、まだβ版ですがなかなか良いできです。 CSS をサイトから自動的に取得してきて、それが編集画面で使えるので What you see is what you get できます。 (なにか前のベータは、完全な表示、Web プレビューの中でも編集できていたような気がしたのですが、気のせいでしょうか。。)

matopc :: computing » Windows Live Writer Beta

これが結構気に入っちゃいました。

サイトからデザインCSSを取得して同じフォーマットで記事が書けるんです。Webレイアウト」モードは、とても自然なWYSIWYGだと思います。もちろん「Webプレビュー」モードで完全にレンダリングしてみることも可能。

matopc さんのところで、レンダリングの例がいろいろ紹介されています!。 🙂

やっぱり見たままで編集できるっていうのは良くて、”このサイトのデザインだからこういう文章になる” みたいなところは絶対あると思います。 2ちゃんねるだってあの無骨なデザインだから、ああいう書き込みになるんじゃねーのかな、とか。

HTML + CSS の意味とデザインの分離という思想は、方式的には正しくても本来的にはできないことだと思うのですが、どんなもんなんでしょう。 🙂

CORESERVER & XREA での SSH 接続

最近はレンタルサーバで SSH の接続を許可しているところも多くなりました。 SSH 経由で UNIX に接続できると、たとえば FTP では結構面倒な一括ファイル操作や、前のエントリで書いたような svn、また cron の設定とか、gcc を使った C ベースの CGI のコンパイルとかいろいろできるようになります。

ぼの 「YOU、SSH 使っちゃいなYO!」

完全にうそです、、すいません。。。

てなわけで、やったことがない方のために方法を書いてみます。  ここでは、CORESERVER と XREA 向けに書いてみますが、他のレンタルサーバも似たような物でしょう。

XREA 系では、まずは管理画面で、SSH を使うホストをサーバに登録する必要があります。

5 分くらいするとホストが登録されて、その PC から SSH でサーバに接続できるようになります。 ややおまちを。

その間に SSH 対応のターミナルエミュレータでもインストールしておきましょう。 業界標準は teraterm + SSH ですが、ここではよりモダンな Poderosa を使ってみます。

index – Terminal Emulator Poderosa

ようこそ Poderosa.org へ。Poderosa(ポデローサ) は、タブ式 GUIを持ち、プラグインで機能拡張ができるオープンソースの Windows 用高機能ターミナルエミュレータです。

.NET 2.0 でできていますので、ランタイム入っていない方はそちらも合わせてインストールします。

で、起動して。  ファイル -> 新規 telnet/SSH 接続を選択します。

でもって、アカウントを設定します。 ホスト名、アカウント、パスワードは FTP と同一物です。 プロトコルは SSH1 に、認証方法はパスワードに変更します。 で、OK。

 

うまくホストが登録済みであれば上記のようにホスティング先の UNIX に接続されるはずです。 ls -alF とかうってみましょう。 🙂

coreserver につないで気がついたのですが、 SUSE Linux 使っているんですね。 XREA は Fedora だったので、こっちも Redhut 系かと思っていました。

てなわけで、前エントリで Subversion アクセスに興味を持った方はやってみるとよいかもしれません。 🙂

WordPress を Subversion でアップグレードする

プログラムのソースコードを管理するのに、そのバージョン管理システムは半ば必須のようなソフトウェアです。  開発現場では CVS とか Visual SourceSafe、オープンソースでは Subversion といったソフトウェアを使っているのをよく見ます。

WordPress の開発でも Subversion を使っていて、そのリポジトリは一般に開放されているので、開発者はアクセスして最新のソースファイルを取り出すことができます。(ただし、もちろんそのリポジトリのソースを更新(コミット)できる人は限られています。 matt とか ryan とか markjaquith とかのコアデベロッパーですね。)

今日、本家の WordPress Codex をみていたら、この Subversion を使って WordPress のアップグレードをする方法が書いてあるのを発見しました。(thx. ぼのさん)

Installing/Updating WordPress with Subversion « WordPress Codex

If you have command-line access to your web server, and if your server has a Subversion (svn) client installed, you can use Subversion to install and update WordPress. Although SubVersion is mostly a software developers’ tool, non-developers can also use it to install and upgrade WordPress. Some people consider this to be much easier than following the standard WordPress installation and upgrade methods (downloading and unzipping archives, then using FTP to put them on your web host), and this article explains how to do it.

非開発者でも Subversion 使うと、WP のインストール、アップグレードが簡単だよ。 みたいな感じでしょうか。

matt 「YOU 、Subversion つかっちゃいなYO!」

うそです、すいません。。

バージョン管理システムを知らない方のために、Subversion の機能をかいてみます。

  • 1つのファイル(ソース)に対して、更新履歴をもてます。 修正前のリビジョンの内容も全て保持するので、修正箇所を把握するのが簡単です。
  • ファイルの更新はもちろん、削除や移動といったトランザクションも扱えます。 要は “アップデート差分ファイル.zip” 上書きでは不可能な、不要ファイル削除とかができます。
  • ファイル集合の特定の状態を、バージョンタグという機能で保持することができます。 リリースを行ったときの状態をもちつつ、さらに最新版の開発を行うことができます。

他にもいろいろ機能はありますが、基本はこんな感じです。

言葉的には、”ファイル更新” を コミット。 バージョンタグを tag。 ”最新版” を trunk (CVS では HEAD) といったりします。

この Subversion サーバにアクセスするには Subversion クライアントと呼ばれるソフトが必要です。 Windows では TortoiseSVN というクライアントが優秀ですね。 これで WordPress のリポジトリをみてみると概要はすぐわかります。

 WordPress のリポジトリにアクセスした図です。 tag に歴代のバージョンがならんでいるのが見えます。

で、Subversion を使った WP のバージョンアップの話です。

ぼくのローカル PC は、Eclipse を Subversion クライアントとして、プロジェクトは WordPress の “trunk” に接続されています。 開発最新版で遊ぶためなんですが、たまに “更新” というメニューを選んであげるだけで、そのプロジェクトは最新版になります。 .zip とかおとしてきて削除、上書きする必要がなく、ものすごくお手軽なわけです。 :-) .zip からの更新の場合、一度ファイルを削除しなければならないのは、前述の通りファイルの削除、移動トランザクション処理は “.zip ファイルの上書き” ではできないためです。(ゴミが残る)

本家の codex に書いてあるのは、この機能を使って WordPress サイトのアップグレードをしよう、というのが趣旨です。 この場合接続先は trunk ではなくて tags です。まさか trunk を本サイトにつかう人もいまい。

最初に特定バージョンタグをチェックアウト(取得)して、その後バージョンがあがった際はその向き先を新しいバージョンタグに向けてあげるとなにも考えずにアップグレードができます。 やることは、コマンドで言えば1行打ち込むだけでアップグレード。 🙂

で、ですよ。 本サイトは多くの場合レンタルサーバ上の UNIX だと思います。 その UNIX に接続できて、かつ Subversion クライアントがインストールされている必要があります。 具体的に言えば、 SSH や telnet でサーバに接続できること。 svn というコマンドが使えること。

svn 使えるサーバなんかねぇよな。。

そう思って、なんとなく hiromasa.another で使っている CORESERVER さんに SSH して、svn help って打ってみました。

svn 入ってるじゃん!!

ちょっと笑ってしまいましたが、 CORESERVER ではできるようです。(もしかしたらぼくのサーバがたまたまかもしれませんが。。

まぁ、たとえばお客様先の本サイトなどを Subversion で update するのもどうだろう、と個人的には思うのですが(やるなら削除後エクスポートだよね)、個人で使う分には一度チェックアウトしちゃえば、コマンド一発で、どのバージョンからでもアップグレードできますので便利です。

てなわけで、hiromasa.another も codex の手順通りやってみました。 2.2.2 だったのでひとつとばしで、2.3 にアップグレード。

でけた!

もしかして XREA も入っているのかな。。 (追記、入っているそうです)

ものぐさな方はやってみてください。 :-) (初期チェックアウト前はサーバのファイルを FTP でバックアップして、削除後中身を空にしてからやってください)

え、SSH のつなぎ方が分からない? では次のエントリで。 🙂