ページ更新: 2010-03-24 (水) (4750日前)
(2006-04-29 新規作成) メモやトラブルシューティングなど。 目次
[メモ] 画面内のチケットのリンクを全部開くブックマークレット (デバッグ中) #(2010-11-11) 画面内のチケットを全部開きたいと思ったので、ブックマークレットを作ってみた。 #がついているリンクをを一括で開くブックマークレット - めも帖 は重複しても全部開くので、重複を省くようにしてみた(いったん連想配列に入れた)。 Firebugのコンソール画面で以下のコードを書いてデバッグした: anchors=document.getElementsByTagName('a'); rep=[]; for(var i=0;i<anchors.length;i++){ m=anchors[i].innerHTML.match(/\#([0-9]+)/); if(m){ rep[m[1]]=anchors[i]; } } for(var a in rep){ window.open(rep[a],'#'+a); } document.close(); このコードをBookmarklet Builder に入れて、Compress, Functionすれば、ブックマークレットが出来る。 なお、このままだと、「チケットに添付ファイルを付加した」ら、その添付ファイルも開いてしまうので、いまいち。 [編集][メモ] Python付属のsqlite3モジュールのバージョン #(2010-08-31) マイルストーン 0.12 – The Trac Project に 「Be sure to read TracUpgrade and TracInstall (notably be sure to use a recent pysqlite >= 2.5.5 if you need upgrade existing 0.11 environments) 」とあるので、Pythonに添付されているpysqliteのバージョンを調べた。 Python 2.7: C:> c:\python27\python -V Python 2.7 > c:\python27\python -c "import sqlite3; print sqlite3.version" 2.6.0 Python 2.6.6: C:> python -V Python 2.6.6 C:> python -c "import sqlite3; print sqlite3.version" 2.4.1 Python 3.1.2: C:> c:\python31\python -V Python 3.1.2 C:> c:\python31\python -c "import sqlite3; print(sqlite3.version)" 2.4.1 Python 2.6.5: C:> python -V Python 2.6.5 C:> python -c "import sqlite3; print sqlite3.version" 2.4.1 Python 2.6.x や Python 3.1.x を使っている場合、pysqlite で sqlite3 モジュールを入れ替える必要があるのかも。 [編集][メモ] Tracのバージョンアップ時のtrac-admin upgrade の半自動化用シェルスクリプト #(2010-03-24) Tracをバージョンアップした後に、trac-admin upgrade, trac-admin wiki upgrade を行う際に使っているスクリプトを以下に示す。 Debian GNU/Linux 5.0 (lenny) で用いているが、他のLinux/UNIXでも sudo があれば動作すると思う。 前提条件:
/var/trac/upgrade.sh #!/bin/sh for project in `find /var/trac -maxdepth 2 -name VERSION -printf '%h '` do echo $project sudo -u www-data trac-admin $project upgrade sudo -u www-data trac-admin $project wiki upgrade done 実行方法 $ cd /var/trac $ sudo ./upgrade.sh[編集] [不具合] Trac 0.11.4-ja1: base_urlが未定義、use_base_url_for_redirect = False のとき、通知メールのTicket URLが不正 (2009-06-17) #1. base_urlが未定義、use_base_url_for_redirect = False, urlを定義 $ grep ^base_url /var/trac/project/conf/trac.ini $ grep ^use_base_url /var/trac/project/conf/trac.ini /var/trac/project/conf/trac.ini:use_base_url_for_redirect = False $ grep ^url /var/trac/project/conf/trac.ini url = http://example.jp/trac/project/ 1.の通知メール。チケットURLが不正 Ticket URL: </ticket/4#comment:53> My Project <http://example.jp/trac/project/> 2. base_url, use_base_url_for_redirect を未定義, urlを定義 $ grep ^base_url /var/trac/project/conf/trac.ini $ grep ^use_base_url /var/trac/project/conf/trac.ini $ grep ^url /var/trac/project/conf/trac.ini url = http://example.jp/trac/project/ 2.の通知メール。チケットURLが正しい。 Ticket URL: <http://example.jp/trac/project/ticket/12#comment:2> My Project <http://exaple.jp/trac/project/> なお、use_base_url_for_redirect は trac-admin initenv したときに、すでにtrac.iniに含まれている。 $ trac-admin -v trac-admin 0.11.4.ja1 $ trac-admin /tmp/sample initenv $ grep ^use_base /home/hamatani/tmp/sample/conf/trac.ini use_base_url_for_redirect = False よって、本来ならbase_urlをちゃんと定義すべき (TracIni#tracセクション?)。 でも、URLを何度も書くのはおっくうなので、use_base_url_for_redirect を消してみた。 2009-06-18 Ticketのコメントに記入して、メール通知される場合は、正しいURLが設定される (たしか、クライアントがアクセスしているURLを用いていたはず) しかし、Subversionのコミットがメール通知される場合はURLが不正になる。 よって、やはり、ちゃんとbase_urlは指定すべきなようだ(いま設定したけど、まだ動作確認してない)。 [編集][エラー] Windows XP, Apache 2.2.8 + svn-win32-1.5.0.zip + svn-win32-1.5.0_py25.zip でエラー、Apache 2.2.9はOK (2008-07-04) #注意: 今回はTracと無関係、なおかつ、複数の環境で裏を取っていない。 Apache 2.2.8, Subversion 1.4.6, Trac 0.11で運用していた環境をSubversion 1.5.0に入れ替えてみた。 subversion: ドキュメント & ファイル: Windows Apache 2.2.xから svn-win32-1.5.0.zip を入手して所定の場所にコピーする。 Apache 2.2.8 + svn-win32-1.5.0.zip + svn-win32-1.5.0_py25.zip だと、次のエラーが出てApacheを起動できなかった。 C:> chcp 65001 ★エラーメッセージが文字化けするので、コードページをUTF-8に切り替える。 Active code page: 65001 C:> httpd ★Apacheを起動すると、mod_dav_svn.soのロードでエラーが発生する httpd: Syntax error on line 128 of C:/Program Files/Apache Software Foundation/Apache2.2/conf/ht tpd.conf: Cannot load C:/Program Files/Subversion/bin/mod_dav_svn.so into server: The specified procedure could not be found. Apache 2.2.9 + svn-win32-1.5.0.zip だと、OK。 でも、subversion: ドキュメント & ファイル: Windows Apache 2.2.x には「Apache 2.2.4 or higher is required.」とあるので、Apache 2.2.8でもよさそうなのだけどなあ。 ついでに、Python bindingのsvn-win32-1.5.0_py25.zip について。展開して、C:\Python25\Lib\site-packages\に libsvnとsvnをコピーした後、 libsvnディレクトリ内の_*.dllの拡張子は*.pydに変更しておく(注意:libsvn_swig_py-1.dllはそのまま)。 で、pythonを起動して「from svn import client, core, delta, diff, fs, ra, repos, wc」を実行してエラーが出なければOK。 (要するに、*.pydを全部ロードしているわけだ) この作業を行わないと、以下のWarningがでる。 「Warning: Can't synchronize with the repository (Unsupported version control system "svn". Check that the Python support libraries for "svn" are correctly installed.)」 [編集][エラー] TracLink処理のエラーの原因を表示するようにした (2008-06-06) #Trac 0.10.4-ja-1, Debian 4.0, Subversion にて。 InterTrac + TracLinkで日本語のファイルに対するリンクを作ったとき、Timeline が表示できなくなった。 代わりに次のエラーが表示される: Internal Error チケットの更新, チケットの詳細 event provider (TicketModule) failed: KeyError: u'\u4e92' You may want to see the other kind of events from the Timeline TracGuide ― The Trac User and Administration Guide log/trac.logにもエラーは記録されない(DEBUGに設定しても)ので、 調査のために、トレースバックを表示するように修正した: # hg diff -r0 diff -r 95d6fc18f09a trac/Timeline.py --- a/trac/Timeline.py Fri Jun 06 16:42:07 2008 +0900 +++ b/trac/Timeline.py Fri Jun 06 18:07:23 2008 +0900 @@ -215,9 +215,11 @@ class TimelineModule(Component): args = [(a, req.args.get(a)) for a in ('from', 'format', 'max', 'daysback')] href = req.href.timeline(args+[(f, 'on') for f in other_filters]) + import sys, traceback + trace = ','.join(traceback.format_tb(sys.exc_info()[2])) raise TracError(Markup( '%s event provider (<tt>%s</tt>) failed:<br /><br />' - '%s: %s' + '%s: %s %s' '<p>You may want to see the other kind of events from the ' '<a href="%s">Timeline</a></p>', - ", ".join(guilty_kinds), ep_name, exc_name, to_unicode(exc), href)) + ", ".join(guilty_kinds), ep_name, exc_name, to_unicode(exc), to_unicode(trace), href)) 場所がわかったので、KeyErrorが発生している個所で例外を捕まえて「KeyError」と表示するようにした: diff -r 95d6fc18f09a trac/wiki/formatter.py --- a/trac/wiki/formatter.py Fri Jun 06 16:42:07 2008 +0900 +++ b/trac/wiki/formatter.py Fri Jun 06 18:07:23 2008 +0900 @@ -391,7 +391,10 @@ class Formatter(object): else: url = '%s/search?q=%s' % (url, urllib.quote_plus(target)) else: - url = '%s/intertrac/%s' % (url, urllib.quote(target)) + try: + url = '%s/intertrac/%s' % (url, urllib.quote(target)) + except KeyError: + return "(KeyError)" return self._make_ext_link(url, label, '%s in %s' % (target, name)) else: return None これでTimelineを表示してみたところ、エラーの原因は、チケットのコメントの1行目にInterTrac + TracLink で [INTERTRACNAME:source:/trunk/path/to/日本語ファイル名] の用にInterTrac + TracLinkでリポジトリブラウザを参照している部分だとわかった。 そこで、TicketDeletePluginを使って、このコメントをいったん消した。これでエラーが出なくなった。 さらに、コメントを「[INTERTRACNAME:source:/trunk/path/to/] の 日本語ファイル名」というように、 「日本語ファイル名」の部分をTracLinkに含めないようにして回避した。 [編集][カスタマイズ] リポジトリブラウザの「コミット時期」にコミット日時の表示を追加 (2007-12-11) #リポジトリブラウザの「コミット時期」は経過時間(「××分前」とか)しか表示されないので、 コミット日時を追加してみた。 単に ClearSilver の file.date を挿入すればよい。 (注意: Trac 0.11.x 以後はClearSilverではなく Genshiを使っているので、書式が変わるはず。) 変更後の画面 (trac-0.10.4-ja-1.zip), リポジトリブラウザで閲覧 変更点 (trac-0.10.4-ja-1.zip) share/trac/template/browser.cs: $ diff -u browser.cs.org browser.cs --- browser.cs.org 2007-12-12 01:04:41.000000000 +0900 +++ browser.cs 2007-12-12 01:07:16.000000000 +0900 @@ -86,7 +86,7 @@ if:!browser.is_dir ?><tr> <th scope="col"> リビジョン <a href="<?cs var:file.changeset_href ?>"><?cs var:file.rev ?></a>, <?cs var:file.size ?> - (コミッタ: <?cs var:file.author ?>, コミット時期: <?cs var:file.age ?> 前) + (コミッタ: <?cs var:file.author ?>, コミット時期: <?cs var:file.date ?>, <?cs var:file.age ?>前) </th></tr><tr> <td class="message"><?cs var:file.message ?></td> </tr><?cs /if ?><?cs なお、discypus.jpのTracでは日付はJST-9で表示されている。これはサーバのタイムゾーンと同じ。
[カスタマイズ] Ticket.csの修正 (2007-06-23) #
職場のTracも経過時間表示だけだとウケが悪かったので、日付と経過時間を両方表示させている。 変更点をメモしておく。 (さっき、discypus.jpのTracも同じように設定してみた) 変更後の画面 (trac-0.10.4-ja-1.zip): 変更点 (trac-0.10.4-ja-1.zip): $ diff -u ticket.cs.org ticket.cs --- ticket.cs.org 2006-10-13 16:36:12.000000000 +0900 +++ ticket.cs 2007-06-23 02:44:19.000000000 +0900 @@ -40,9 +40,9 @@ <div id="searchable"> <div id="ticket"> <div class="date"> - <p title="<?cs var:ticket.opened ?>">登録: <?cs var:ticket.opened_delta ?> 前</p><?cs + <p>登録: <?cs var:ticket.opened ?> (<?cs var:ticket.opened_delta ?>前)</p><?cs if:ticket.lastmod ?> - <p title="<?cs var:ticket.lastmod ?>">最終更新: <?cs var:ticket.lastmod_delta ?> 前</p> + <p>最終更新: <?cs var:ticket.lastmod ?> (<?cs var:ticket.lastmod_delta ?>前)</p> <?cs /if ?> </div> <h2 class="summary"><?cs var:ticket.summary ?></h2>[編集] [メモ] Tracプロジェクト作成時の初期値 (2007-04-17) #(人に聞かれたので) Tracプロジェクトを作成するとき(trac-admin でinitenvを実行)の初期値は、 Python/Lib/site-packages/trac/db_default.py に格納されている。 [編集][エラー] trac-0.10.3.1-ja-1 の trac-admin, tracd の改行コードを修正 (2007-03-15, 2007-04-08) #(2007-03-15:作成, 2007-04-08:16進ダンプを加えて書き直した, 2007-04-28:オリジナルの改行コードを調べた, 2007-05-20:trac-0.10.3.1-ja-2の改行コードを調べた) trac-0.10.3.1-ja-1 の trac-admin を Linux上で実行すると、以下のようなエラーが発生する: $ ./trac-admin : そのようなファイルやディレクトリはありません あるいは: $ ./trac-admin : No such file or directory エラーメッセージを16進ダンプする。(注:英語のほうが解析しやすいのでLANGをクリアしてtrac-adminを実行している): $ LANG= ./trac-admin 2>&1 | xxd -g1 0000000: 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 3a 20 70 79 /usr/bin/env: py 0000010: 74 68 6f 6e 0d 3a 20 4e 6f 20 73 75 63 68 20 66 thon.: No such f 0000020: 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 ile or directory 0000030: 0a この16進ダンプから次の2つのことが判る:
これで原因はわかった。 (実はエラーメッセージを見たとたんに2.だと判っていて、そこからたぶん1.だと推測しており、それを確かめるために16進ダンプを使ったのだが) 後は先頭行のCRを取り除いてやれば良い。 trac-adminの先頭32バイトを16進ダンプすると、改行コードがCR LF (0d 0a) であることが判る: $ xxd -g1 -l 32 ./trac-admin 0000000: 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 #!/usr/bin/env p 0000010: 79 74 68 6f 6e 0d 0a 23 20 2d 2a 2d 20 63 6f 64 ython..# -*- cod ↑ここにCR (0d) が入ってる ↑ trac-adminの先頭1行目末尾のCRを取り除いて(=改行コードをLFのみにする)、16進ダンプすると: $ xxd -g1 -l 32 ./trac-admin 0000000: 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 #!/usr/bin/env p 0000010: 79 74 68 6f 6e 0a 23 20 2d 2a 2d 20 63 6f 64 69 ython.# -*- codi 今度はちゃんと実行できる: $ ./trac-admin trac-admin - The Trac Administration Console 0.10.3.1 Usage: trac-admin </path/to/projenv> [command [subcommand] [option ...]] : (略) あるいは、trac-admin と tracd からCR (trでは"\r") をすべて取り除いてもよい: $ cd path/to/trac/bin $ tr -d "\r" < trac-admin > ta $ mv ta trac-admin $ tr -d "\r" < tracd > td $ mv td tracd この処理が必要なのは以下のファイルだと思われる(ファイルの先頭に#!があるもの): $ find . -type f | xargs grep -n "^#!/" | grep ":1:" ./cgi-bin/trac.cgi:1:#!/usr/bin/python ./cgi-bin/trac.fcgi:1:#!/usr/bin/python ./contrib/bugzilla2trac.py:1:#!/usr/bin/env python ./contrib/emailfilter.py:1:#!/usr/bin/python ./contrib/htdigest.py:1:#!/usr/bin/env python ./contrib/migrateticketmodel.py:1:#!/usr/bin/env python ./contrib/trac-post-commit-hook:1:#!/usr/bin/env python ./contrib/trac-pre-commit-hook:1:#!/usr/bin/env python ./scripts/trac-admin:1:#!/usr/bin/env python ./scripts/tracd:1:#!/usr/bin/env python ./setup.py:1:#!/usr/bin/env python ./trac/test.py:1:#!/usr/bin/env python ./wiki-default/checkwiki.py:1:#!/usr/bin/python[編集] 各バージョンの改行コードを調べた (2007-04-28) #Edgewallのオリジナル (tar.gzとzip) とインタアクトのja版 (zip) の「script/trac-admin」の改行コードを調べてみた。 Edgewallがリリースした時点で、リリース毎に改行コードがまちまちだったり。
trac-0.5〜0.8は手元にも残していないので不明。 [編集]trac-0.10.3.1-ja-2で改行コードが修正された (2007-05-20) #trac-0.10.3.1-ja-2 (2007-05-05) にて、 改行コードがLFに変更されたようだ。 trac-0.10.3.1-ja-1.zip と trac-0.10.3.1-ja-2.zip を展開して、Cygwinのdiff (diffutils 2.8.7) で比較してみた。 ファイルを比較して、変更されたファイルの個数を数える。205個のファイルに差がある。 $ diff -rq trac-0.10.3.1-ja-1 trac-0.10.3.1-ja-2 | wc -l 205 ファイルをCRを取り除いて比較して、 変更されたファイルの個数を数える。どのファイルにも差がない。 $ diff -rq --strip-trailing-cr trac-0.10.3.1-ja-1 trac-0.10.3.1-ja-2 | wc -l 0[編集] [カスタマイズ] CSSへの追加 (2006-11-05, 2006-12-15, 2009-05-09) #Trac 0.10.xでは、$TracEnv/templates/site_css.cs を次のようにカスタマイズした。 <?cs ################################################################## # Site CSS - Place custom CSS, including overriding styles here. ?> .wikipage h2 { border-bottom: 1px solid #b00; border-left: 6px solid #b00; font-size: 120%; margin-top: .5em; margin-bottom: .5em; padding-left: 5px; padding-top: 3px; padding-bottom: 0px; width:98%; } .wikipage h3 { border-bottom: 1px dashed #b00; width:98%; padding-left: 11px; } /* Quick search */ #proj-search { width: 20em } /* Navigation */ .nav li { padding: 0 .4em; } /* Main navigation bar */ #mainnav :link, #mainnav :visited { padding: .2em 0.8em; } /* changeset diff, code */ table.sidebyside td.l, table.sidebyside td.r, table.inline td.l, table.inline td.r, table.code tbody tr td { font-size: 12.0px; }
Trac 0.11.xの場合は、templates/site.htmlを使った。また、今回はスタイルシートを別のファイル(/trac_custom.css)に分離してみた: $TracEnv/templates/site.html: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/" py:strip=""> <!--! Add site-specific style sheet --> <head py:match="head" py:attrs="select('@*')"> ${select('*|comment()|text()')} <link rel="stylesheet" type="text/css" href="/trac_custom.css" /> </head> </html> ApacheのDocumentRootの/trac_custom.css: .wikipage h2 { border-bottom: 1px solid #b00; border-left: 6px solid #b00; font-size: 120%; margin-top: .5em margin-bottom: .5em; padding-left: 5px; padding-top: 3px; padding-bottom: 0px; width:98%; } .wikipage h3 { border-bottom: 1px dashed #b00; width:98%; padding-left: 11px; } /* Quick search */ #proj-search { width: 20em } /* Navigation */ .nav li { padding: 0 .4em; } /* Main navigation bar */ #mainnav :link, #mainnav :visited { padding: .2em 0.8em; } /* changeset diff, code */ table.sidebyside td.l, table.sidebyside td.r, table.inline td.l, table.inline td.r, table.code tbody tr td { font-size: 12.0px; } #dirlist td.change, #dirlist td.size { color: #000000; } #info .props { color: #000000; }[編集] [Tips] Firefox 1.5 でBasic認証/Digest認証をクリアする (2006-09-29) #Tracで真のログアウトを行う方法の1つ。Webブラウザが認証データを保持しているのだから、それを消去してしまえばよい。 Trac Users メーリングリストの Logout button does othing を見てて、Firefox 1.5には認証データを消去する機能があることに気がついたので、試してみた。 Tracにログインし、ログアウトする。2回目以後のログインでは認証ダイアログが表示されない: Firefox 1.5の「Tools」→「Clear Private Data...」を選択する: 「Authenticated Session」にチェックを付け、「Clear Private Data Now」を押す: なお、このダイアログのデフォルト設定は Tools → Options... → Privacy → Cacheタグ → Settings...ボタン で変更できる。 (2006-10-25) Tracにログインしようとすると、再度認証ダイアログが表示される: [編集] [Tips] TracでCamelCaseな文字列を検索するなら (2006-09-10) #検索したい文字列を""で括ると検索できる。 例: TracWiki を検索すると、Wikiページ TracWiki が表示される "TracWiki" を検索すると、ページやチケットの一覧が 得られる 検索結果 - Sandbox - Trac [編集][メモ] チケットのフィールドの種別 (2006-06-06, 2007-06-10) #手元の某プロジェクトのチケットの場合、次のようにしている。★がチケット作成時のデフォルトの値。 http://trac.edgewall.org/ の設定値(Tracのデフォルトとは異なる)を参考にした。 コンポーネント (Components) :割とおおざっぱ
優先度 (priority) ... ビジネス面の指標
重要度 (severity) ... 技術面の指標
チケットの分類 (Ticket Type)
作業見積は重要度に含めず、代わりに ../TimingAndEstimationPlugin で追加される「Estimated Number of Hours」項目を使っている。 メモ (2007-06-10): [編集][メモ] TimeTracking パッチ (2006-05-28) #(2007-04-08 追記:Trac-0.10ではTiming and Estimation pluginを使うほうが容易) TimeTracking http://trac.edgewall.org/wiki/TimeTracking $ patch -p0 < trac-time-tracking-0.9.5.diff patching file trac/ticket/roadmap.py patching file templates/roadmap.cs Hunk #1 succeeded at 61 (offset -2 lines). patching file templates/milestone.cs Hunk #1 succeeded at 143 (offset -2 lines). patching file contrib/trac-post-commit-hook[編集] [メモ] Trac Environmentのバックアップ (2006-05-09) #バックアップ。trac-admin hotcopy を実行後、ファイルをtar.gzにする。 #!/bin/bash TRACENV=sandbox TRACBASE=/var/trac TRACBACKUP=/var/backupdisk/trac FILENODE="$TRACENV-`date +%Y%m%d`" mkdir -p $TRACBACKUP trac-admin $TRACBASE/$TRACENV hotcopy $TRACBACKUP/$FILENODE (cd $TRACBACKUP; tar czpf $FILENODE.tar.gz $FILENODE; \rm -rf $FILENODE )[編集] [エラー] Windows XP, Windows 2000のメモ帳でtrac.iniを修正すると、エラーが発生 (2006-04-29) #環境は All-In-One Trac v0.1.0、Windows 2000 SP4。 [編集]エラー画面 #default: Error (File contains no section headers. file: C:/trac-0.1.0/trac_repo/projects \default\conf\trac.ini, line:1 '\xef\xbb\xbf[wiki]\n')
エラーの出ないtrac.iniの16進数ダンプ (Cygwinのvimに入っているxxdを使用) $ xxd -g1 -l 64 trac.ini 0000000: 5b 77 69 6b 69 5d 0d 0a 69 67 6e 6f 72 65 5f 6d [wiki]..ignore_m 0000010: 69 73 73 69 6e 67 5f 70 61 67 65 73 20 3d 20 66 issing_pages = f 0000020: 61 6c 73 65 0d 0a 0d 0a 5b 68 65 61 64 65 72 5f alse....[header_ 0000030: 6c 6f 67 6f 5d 0d 0a 73 72 63 20 3d 20 63 6f 6d logo]..src = com trac.iniの16進数ダンプ(notepadで保存した後) $ xxd -g1 -l 64 trac.ini 0000000: ef bb bf 5b 77 69 6b 69 5d 0d 0a 69 67 6e 6f 72 ...[wiki]..ignor 0000010: 65 5f 6d 69 73 73 69 6e 67 5f 70 61 67 65 73 20 e_missing_pages 0000020: 3d 20 66 61 6c 73 65 0d 0a 0d 0a 5b 68 65 61 64 = false....[head 0000030: 65 72 5f 6c 6f 67 6f 5d 0d 0a 73 72 63 20 3d 20 er_logo]..src = Trac自体のエラーメッセージにもあるように、セクションヘッダー(この場合は[wiki])の行の先頭にBOM (0xef 0xbb 0xbf) が付加されているため、セクションヘッダーと認識されなかったのが原因。 よって、これを取り去ってやればよい。 (あるいは、BOMの直後で改行を入れてやってもいいかもしれないが、試してない) でも、UTF-8にBOM付ける意味ってあったっけ? 参照:
コメント # |