subversion

これまで私はきちんとバージョン管理をしてプログラムを書いたことがほとんどありませんでしたが、やはりプログラマのたしなみとしてバージョン管理 くらいしたほうがいいと思います。特に年をとってくると記憶力も悪くなるので余計にバージョン管理がありがたくなるのではないでしょうか。

世間で広く使われているバージョン管理ソフトにSubversionというのがあります。svnというコマンドです。フリーソフトでLinuxなど にはデフォルトでインストールされていると思われます。もしインストールされていなくても、Fedoraの場合ですとyum install svnでインストールできます。

まず普通に使う方法ですが、svnadmin create hogeでリポジトリを作成し、svn importとかsvn commitとかすると簡単に使用できます。本当に簡単だと思います。Subversionの基礎演習というページが非常に参考になると思います。コマンド実行例はWindowsのコマンドプロンプトですが、Linuxでも大差はありません。

でもこれだとひとつのマシンでしか使えないのであまりうれしくないと思います。そこでネットワーク経由で使う方法ですが、それはこれから調べます。

mysqldump

WordPressでMySQLのデータベースを使っているので、データベースのデータのバックアップもしたいと思います。

基本的なバックアップツールとしてmysqldumpというのがあるようです。これはさくらインターネットのサーバに入ってます。

以下のように実行します。ホスト名などの情報はコントロールパネルで確認できます。

$ mysqldump –host=ホスト名 –user=ユーザ名 –password=パスワード データベース名 > dump

これでdumpというファイルにデータがダンプされます。ダンプされたデータはSQLになっていて、これを実行するとデータベースが復元できるようです。復元は試していませんが。

テキストデータなのでgzipで圧縮して保存するのがいいようです。

$ mysqldump –host=ホスト名 –user=ユーザ名 –password=パスワード データベース名 | gzip > dump

WinSCP

以前のエントリでLinuxのマシンからscpでさくらインターネットのサーバにファイルを転送する話とかを書きましたか、LinuxだけでなくWindowsのマシンからもscpしたいという要求が当然のようにわきあがってきます。

Windows用のscpクライアントと言えばWinSCPがあります。おそらくこれが一番有名なのではないでしょうか。しかもフリーです。スクリーンショットはこんな感じです。エクスプローラ的な操作でWindowsに親しんでる人にぴったりだと思います。

そうなると今度は、以前のエントリで作成したDSA鍵をWinSCPでも使いたくなります。しかし、WinSCPではPuTTY形式の鍵しか使えないようです。私はPuTTYは使っていませんので、ここではこの件はこれ以上追求しないことにします。

ちなみにTera Termにもscp機能はあります。メニューのファイル→SSH SCPです。操作性はやや難でしょうか。しかし、ひとつふたつのファイルを転送するには十分使える機能だと思います。

zshのグローバルエイリアス

Unix環境で作業するときには使い慣れたシェルを使うのが一番ですが、なんといっても機能的な意味でおすすめなのはzshだと思います。

そのおすすめな機能のひとつがグローバルエイリアス。普通のエイリアスはコマンドの部分しか有効ではありませんが、グローバルエイリアスはコマンドラインの途中でも使用できます。

よくある使い方は以下のような設定です。

alias -g L=’| less’

-gというのがグローバルエイリアスを使いますというオプションです。例えば以下のように使うと簡単にlessできます。

# dmesg L

scpのときに毎回ホスト名をしていするのが面倒なときに以下の設定が使えるのではないでしょうか。

alias -g SKR:=ユーザ名@ホスト名.sakura.ne.jp:

これを使うとこんな感じでscpできると思います。

$ scp hoge SKR:

あまりやりすぎるとわけがわからなくなってしまいますが似たような入力を何度も繰り返すことがあるときには便利だと思います。

WP-SLIMSTAT-EX V2.0をインストール

WordPressにはデフォルトではアクセス解析機能がついていないようです。特に何が解析したいというわけではありませんが、本日のアクセス数とかくらいは見れるとうれしいというわけで、特に機能にこだわりはありません。

検索してみるとWP-SLIMSTAT-EXというプラグインが見つかったので試しにこれをインストールしてみました。本家のサイトはこちらです。韓国のかたのようです。こちらのサイトで日本語での解説と日本語化のためのファイルが公開されています。これを参考にしてインストールしました。

インストールは非常に簡単ですがプラグイン自体が初めてなので若干戸惑いました。

  1. ファイルをダウンロード
  2. 解凍したファイルをwp-contents/plugin/ディレクトリに置く
  3. 管理画面のプラグイン→インストール済みからプラグインを選択
  4. で?このあとどうするの?

どうやらこの時点で使用可能なようです。このWP-SLIMSTAT-EXプラグインの場合、設定のメニューにSlimStatという項目が追加さ れていて設定が行えます。またアクセス解析の結果はダッシュボードのメニューに追加されたSlimStatの項目を選ぶことで見ることが出来ます。

どうやらダッシュボードというのはこの管理画面全体を指す言葉ではないみたいですね。前に書いたエントリは勘違いだったようです。なんとなくニュアンスが理解できた気がします。

まだアクセスがほとんどないので解析結果がどうとかはいえませんが、とりあえず見た感じでは十分な機能があるように思います。

rsyncでバックアップ

個人の趣味で使用しているサーバですし、厳密にバックアップを考えた運用をしたいと言うわけではありませんが、万が一というときにバックアップがあ ると安心というのはあると思います。これはさくらインターネットのサーバでデータがどの程度バックアップされているかという以外にも、ミスによりデータを 消したり変更したりしてしまったときの保険という意味でも安心につながります。

そこでサーバのデータをお手軽にローカルのマシンにもコピーするツールとしてrsyncを使いたいと思います。もっとも私はrsync以外のバックアップツールや業務レベルでバックアップの運用知識はありませんが。

とりあえずrsyncの使い方は簡単です。

$ rsync オプション コピー元 コピー先

rsyncが最近どの程度使われているかは知りませんが、ツール自体は自宅のFedora環境にも入ってますし、さくらインターネットのFreeBSD環境にも入ってます。

今回はローカル側からrsyncコマンドを実行することにします。

$ rsync -a –delete ユーザ名@サーバ名:www sakura

これでサーバ上のwwwディレクトリがローカルのsakuraディレクトリにバックアップされます。-aというのは属性の保存などをまとめて指定す るバックアップ用の便利なオプションです。デフォルトの動作ではコピー元で削除されたファイルがコピー先に存在しても削除されませんが–deleteを指 定することで削除されます。これで完全にコピー元のミラーがコピー先に構築されることになります。

初回はすべてのファイルをコピーするので多少時間がかかりますが、2回目以降は変更された部分のみのコピーなので無駄もありません。

他にもよく使われるオプションとして、-vでコピーしているファイル名の表示、-zでコピーするファイルを圧縮して転送などがあります。こちらのIT mediaの記事にもう少し詳しい説明があります。ディレクトリの指定をするときの末尾のスラッシュは慣れるまで注意が必要だと思います。

データのやりとりはsshを使って行われています。以前はrshを使うのがデフォルトであったため、-eオプションでsshを指定する必要がありましたが、どうやら最近はsshがデフォルトになったようです。

前回のエントリでDSA認証を使ってパスワードなしでsshを使用する設定をしていますので、今回のこのバックアップでもパスワードを要求されることはなく便利です。

Tera Termを使ってWindowsからssh

ブラウザを使ったりとか日本語を入力したりとかも含めて日常的な端末としてはやっぱりWindowsを使う人は多いと思うのですが、Windows のマシンからシェル作業をするためのターミナルソフトの定番と言えばTera Termだと思います。一時期開発が終了していましたが、現在はオープンソースで開発されているようで、UTF-8対応もssh機能も組み込まれててかな りいい感じです。私も愛用させていただいています。サイトはこちら。Tera Term以外だとPuTTYが有名ですね。

前回のエントリではUnix環境でのDSA認証の設定を行いましたが、Tera TermでもDSA認証を行うことが出来ます。

まず鍵の生成ですが、メニューの[設定]→[SSHキー生成]を選ぶと鍵を生成することができます。ここではDSA鍵を生成することにします。キー が生成されると公開鍵と秘密鍵をそれぞれ保存できます。適当に自分の使いやすいディレクトリに保存すればいいと思います。このときにパスフレーズを入力す ると秘密鍵は暗号化されて保存されます。前のエントリにもあるように、今回はパスワード入力を省略するのが目的ですので、パスフレーズは入力しません。

生成された公開鍵は前回のエントリと同様にリモートのマシンの~/.ssh/authorized_keysファイルに追加します。

これで準備はOKです。sshで接続するときにDSA鍵認証というのを選び、先ほど生成した鍵を指定すればパスワードを入力することなくログインで きます。UIの都合上もありますが、Unix環境の場合ほどパスワードを入力しないことによる手間軽減のメリットはないかもしれません。

一応デフォルトの設定を変更することが出来て、メニューの[設定]→[SSH認証]であらかじめDSA認証をするということと、鍵ファイルを指定し ておくことが出来ます。それとTera Term一般の注意事項ですが、設定を変更してもメニューの[設定]→[設定の保存]を選ばないと変更が保存されないので注意が必要です。

DSA認証を使ってパスワードなしでssh

sshでサーバにログインするときやscpでファイルをコピーするときに毎回パスワードを入力するのは面倒だなあと考えるのが人情です。

そこで毎回パスワードを入力しなくてすむような設定にしようと考えるわけですが、sshではパスワード認証以外に、DSA認証やRSA認証という公開鍵を使った認証が使用できます。細かい違いがあるとは思いますがここではあまり深く気にせずDSA認証を使うことにします。

ローカルのマシンで以下のコマンドを実行すると~/.sshディレクトリにDSA鍵が生成されます。

$ ssh-keygen -t dsa

ここで鍵を生成するときにパスフレーズの入力を求められます。秘密鍵をパスフレーズで保護するのがセキュリティ的にはよりよいのでしょう。しかし、 それだとせっかくパスワード認証をやめてパスワードの入力をしなくてすむようになったのに、DSA秘密鍵を使うためにパスフレーズを入力しなくてはいけな くなり本末転倒です。

そこでパスフレーズを入力しなくていい方法を探すことになりますが、おそらくよりセキュリティ的に正しい方法はssh-agentを利用して一度パスフレーズを入力するとその後は入力しなくてすむようにする方法だと思われます。

しかし、個人的にはssh-agentを使うというのは面倒な上に中途半端なイメージで出来れば避けたいものです。そこで最初の鍵生成の所に話が戻 りますが、鍵を生成するときにパスフレーズを指定しなければ、パスフレーズなしの鍵が生成されます。具体的には上記のコマンドを実行後にエンターを連打し てればOKです。

そして公開鍵をリモートのマシンの~/.ssh/authorized_keysというファイルに追加します。今回の私の環境ではさくらインターネットのサーバですね。

$ scp ~/.ssh/id_dsa.pub ユーザ名@リモートマシン:

リモートのマシンにログインした後に

$ mkdir .ssh

$ cat id_dsa.pub >> .ssh/authorized_keys

$ rm id_dsa.pub

これで毎回パスワードを入力することなくログインできるようになります。セキュリティ的な議論はどうなるのでしょうか。秘密鍵が盗まれるような状況でパスフレーズがあるのは気休めかそれとも本質的にセキュリティが向上するのか。

Fedora

せっかくブログを始めたので色々とネタを投入していきたいと思いますが、まずは初めに私の作業環境的なものを書いておきましょう。

レンタルサーバとしてさくらインターネットのスタンダードプランを契約していると以前のエントリに書きました。たしかにこのサーバはシェルも使えて いろいろ楽しめるのですが、ルート権限が使えるわけではないですし、インストールされているソフトも限られているのでいろいろ試してみるには面倒な部分も あります。

そこでそういうときは自宅のマシンで作業を行うわけですが、私が使用しているLinuxマシンのディストリビューションはFedoraです。一応サイトはここで すかね。わざわざ説明する必要もないくらい有名だと思います。ずいぶんと以前にインストールしたものをyum upgradeしつづけて現在Fedora 10を使用しています。なにかちょっと試してみたくなったときでもたいてい既にインストールされているか、yum installで簡単にインストールできて非常に便利です。

ちなみにさくらインターネットのサーバはFreeBSDで動いていますが、私はBSDはあまり使用した経験がないのでLinuxのほうが好みです。

ダッシュボード

WordPressの管理画面はダッシュボードという名前のようですね。ダッシュボードという言葉を車以外で聞くのは初めてなのでなかなか慣れない感じですが、意味的にはそういう風に使えるんだなあと思いました。

それにしてもこのダッシュボードは非常によく出来てると思います。これがブラウザで表示されている画面だというのを忘れてしまうくらいですね。最近のWebアプリケーションではこのくらいの作りは常識なのでしょうか。

一通り眺めて設定をいじったりとかいろいろ試してみました。

外観というメニューで外観が変更できるようです。そのままですが。テーマを選択することで簡単に全体を変更できるようです。テーマのページからリン クされているオフィシャルサイトのテーマからgearをダウンロードして使ってみました。現在のテーマがそのgearですね。なかなかよく出来ていると思 います。

テーマのインストールも非常に簡単でwp-contents/themeというディレクトリにテーマのファイルを置くだけです。するとメニューからそのテーマが選べるようになります。

ウィジェットという機能もあり、サイドバーに配置するカレンダーやリンクなどを個別に設定できるようですが、このウィジェットを設定するとテーマで 最初から用意されているサイドバーは使用できないようです。これはしかたのないことかもしれませんが、ウィジェット機能はあまり使いそうにないですね。基 本はテーマでデザインを選択し、もの足りない部分は個別にカスタマイズするのことになるでしょうか。もっともテーマはよく出来ていますのでそれだけで十分 に満足できます。今使っているgearのテーマだとこのサイドバーに最近のコメントを追加したいとは多少思いますが。

論理的な構造で言うと、ブログのエントリ以外の内容を書くところをページと呼ぶようです。最初この部分が理解できませんでした。新規投稿と新規ペー ジの違いってなんだ?って感じでした。わかってみれば非常に妥当な仕組みです。プロフィールのような静的なコンテンツはページとして管理するということで すね。こういうブログエントリ以外の部分もあわせて管理できるという意味でCMSとも言えるのでしょう。ちょっとしたサイトならWordPressだけで サイト全体を作っても十分だなと思いました。そうです、ちょっとしたサイトとは例えばこのサイトのことです(笑)。