2014curlで叩ける年齢計算サイト本日のやっつけ仕事です。きっかけcurlで簡単に取得できる生年月日入力したら年齢がかえってくるサービスないの。22というレスポンスを得る。アプリケーションサーバはこのTrac同様に​uWSGIです。フロントエンドはnginxです。callable.というエラーを得た。(0)Tracを1.0.1にアップグレードしましたくりすです。本サイトのTracを0.12.3から1.0.1にアップグレードしましたので、その手順をメモしておきます。ねらい今回Tracを1.0.1にアップグレードするにあたって、単なるアップグレードではなく、サーバの構成をより細分化することも目的としました。構成の細分化とはここでいう構成の細分化とは、システムに搭載する個々のアプリケーションの影響範囲をできるだけ小さくする工夫です。tracところが、パッケージマネージャを使う方法には次のようなデメリットがあります:パッケージマネージャで提供されるアプリケーションは必ずしも最新版ではないシステム全体に対してインストールすることになってしまうので、サーバの構成への影響が大きいレンタルサーバなどを使っていてroot権限を持っていない場合などは、そもそもこの方法を用いることができないそこで、virtualenvを用いて、専用のPython環境を構築することにしました。virtualenvって何だvirtualenvとは、Python環境のセットを好きなだけ錬成するしくみ、つまりPythonの仮想環境です。virtualenvを使うと、システムのPythonに影響を及ぼさない一般ユーザの権限でもライブラリのインストールが容易/etcや/usrなどに余計なファイルを作らないパッケージマネージャで入れたライブラリと競合しない必要なだけ専用のPython環境を作ることができる​Pythonのバージョンが選べるといったメリットを得ることができます。以下、例示しているディレクトリは/home/trac/curが従来のTrac環境、/home/trac/newが新しいTrac環境を表します。各自の環境に合わせて読み替えてください。virtualenvのセットアップvirtualenvはサラのUbuntuには入っていませんでしたので、インストール。python-virtualenvまず、現在のデータをコピーします。/home/trac/new​rsyncコマンドにおいて、末尾の`/`のあるなしは極めて重要です。/home/trac/new下にvirtualenvを生成します。envそうすると、5秒ほどで専用のPython環境/home/trac/new/envが爆誕します。trac_python_envとすれば、/home/trac/new/trac_python_envが生まれます。新しく作ったPython環境を起動します。env/bin/activateそうすると、先ほど生成したPython仮想環境が起動し、(env)$というプロンプトに変化します。(env)という表示は、envという名称のvirtualenvを使用していることを示します。virtualenvを使った、最新版Tracのインストール新しく作ったPython環境においては、基本的にeasy_installあるいはpipを用いて追加モジュールのインストールをします。中にはGenshi(後述)などコンパイルを要するモジュールもあるので、build-essentialを用意しておいたほうがよいでしょう。tracを実行します。root権限やsudoは不要。python-devとしてこれをインストールしてやると、Genshiの高速化機能の恩恵を受けることができます。Tracを0.12.3から1.0.1にアップグレードするTracのアップグレードについては詳しい手順は​公式ドキュメントに譲ります。upgradeこれで、Tracは最新版(1.0.1)になりました。最後に、uwsgiの設定を更新しましょう。uwsgiの設定を書き換える本ブログの一番最初の記事に記載していますtrac.xmlがベースです。これを/etc/uwsgi/sites-available/trac.xmlとして準備します。最新版のuwsgi(2.0)では異なる部分が結構あるので、その場合以下は参考にできないかもしれません。アップグレードなので/etc/uwsgi/sites-enabled/trac.xmlは既に/etc/uwsgi/sites-available/trac.xmlのシンボリックリンクとして存在します。nginxの設定には変更はありません。最後に、uwsgiを再起動してアップグレード作業は完了です。restart次はnginxを1.4.4に、uwsgiを2.0にアップグレードしたいので勉強します。あとUpstartを用いて、uwsgiをソケットアクティベーション型の運用にしたいですね。開催しましたあけましておめでとうございます。今年もよろしくお願いします。問題の解説記事を記します。ルール説明はじめに、ルールをおさらいします。ターゲットサーバ最深部にあるキーを入手し、提出するだけ。あらゆる手を尽くして構いません。