Archives

You are currently viewing archive for March 2010

[メモ] 22 March 2010 はてなブックマーク - ECCUBEの管理画面でリダイレクト先が異常な件の傾向と対策 Twitterでつぶやく

ECCUBEの管理画面でリダイレクト先が異常な件の傾向と対策

管理画面にログインしてもURLがおかしくなってリダイレクトに失敗する現象の傾向と対策。
主に、LAMP環境でECCUBEのinstall.phpで定義してあるHTML_PATHにシンボリックリンクを含むディレクトリが利用されていると発生する。
# ホスティングサービスなんかだと、ユーザは知らなくてもリンクが利用されていたりFTPでは隠蔽されていたりするのでみんな遭遇してるのでは無いかと思う。

▽ 対策
LC_Page.phpのgetRootPathメソッド以下、255行目(2.4.3の場合)にある下記
$htmlPath = str_replace("\\", "/", HTML_PATH);

を、以下のように書き換える。
$htmlPath = str_replace("\\", "/", realpath( HTML_PATH) );

▽ ポイント
URLを合成する際になぜかHTML_PATHをリアルパスへ展開後、再びリアルパスを排除するというやり方を取っているのだけれど、そのリアルパスを排除する部分ではHTML_PATHをリアルパスへ展開していないために展開したHTML_PATHが排除されずに妙な事になってしまう。

[Programing] 20 March 2010 はてなブックマーク - 超軽速BTSのStarbug1をamalgamation版Sqlite3で半生静的ビルドのメモ Twitterでつぶやく

超軽速BTSのStarbug1をamalgamation版Sqlite3で半生静的ビルドのメモ

starbug1
@smegheadさんがOSSで公開されている超軽速BTS Starbug1(日英中対応)についてはこちらを見てください。

Starbug1 Official WebSite - start

http://starbug1.sourceforge.jp/start

でもsqliteは既に入っていたりして動的リンクだと競合しそうで試せない人もいるかもしれないので、手軽に利用するためにSqlite3とcgicを静的ビルド化して、ついでにSqlite3に10%程度高速らしいというamalgamation版を使ってみたメモです。

※3/22 追記: ここから
@smegheadさんの本体側でパッチを取り込みかつ、ビルドの方法が大幅に簡単になりました。
Re: 超軽速BTSのStarbug1をamalgamation版Sqlite3で半生静的ビルドのメモ - 週記くらい(BTS開発記)

ですので、以降の文章はまあ参考までということでよろしくお願いします。
---------- ここまで

▽ 環境について
LTSなので使っている人も多いUbuntu8.04.3 JeOS版です。
下準備として下記を行ってください。
sudo apt-get install build-essential gettext rsync

# 以降の方法でビルドしたバイナリを動かすためだけならgettext/rsyncが入ってれば問題ないはずです。

次に下記からそれぞれファイルを落として来てください。
・ starbug1-1.3.10.tar.gz
http://sourceforge.jp/projects/starbug1/
・ cgic205.tar.gz
http://www.boutell.com/cgic/cgic205.tar.gz
・ sqlite-amalgamation-3.6.23.tar.gz
http://www.sqlite.org/sqlite-amalgamation-3.6.23.tar.gz
・ static build用のパッチ
http://blog.makino-style.org/static_option.patch

▽ ビルド準備
全部解凍しちゃってください
for archive in $(ls *.tar.gz); do tar xvzf $archive; done

cgicのビルドをします。
  cd cgic205
make

sqlite3のビルドをします。
  cd sqlite-3.6.23
./configure
make

▽ Starbug1のビルド
まずstarbug1のMakefileにパッチをあてます。
  cd starbug1-1.3.10
patch < ../static_option.patch

つぎにライブラリとヘッダファイルをコピーします。
  cp ../cgic205/cgic.o ./
cp ../cgic205/cgic.h ./
cp ../sqlite-3.6.23/sqlite3.o .
cp ../sqlite-3.6.23/sqlite3.h .

最後に下記のオプションでmakeします。
  make INITIAL_LOCALE=ja_JP IS_STATIC=yes
make webapp

以上でdistの中に半生スタティック版のStarbug1ができてるはずです。
後は本家のドキュメントを参照してください。

[Programing] 14 March 2010 はてなブックマーク - TwitterにRTボタンを追加するUserScript for Chrome/GreaseMonkey(正式版) Twitterでつぶやく

TwitterにRTボタンを追加するUserScript for Chrome/GreaseMonkey(正式版)

RT Button
昨日試しにGMで作ったもの@smegheadさんの助けもあって、Tweetに自動でRTボタンが追加されるようになりました。それぞれLinux、Windowsで動作します。

機能としては非常に単純で、公式のTwitterのインタフェースに"RT"(RTとは?)ができるボタンを追加するスクリプトです。
TwitterのインタフェースとかCSSが変更されると、対応が必要かもしれませんがその時はコメントにでも書き込んでおいてください。



※Chrome版とGreaseMonkey版は微妙に異なるため間違ってインストールすると動作しません。その場合はスクリプトをアンインストールしてから、正しい版を入れ直してください。
▽ GoogleChrome(4以上)の場合は、下記をクリックするだけでExtentionとしてインストールされます
Chrome用 userrt_chrome.user.js

▽ Firefoxの場合はまずGreaseMonkeyのAddonをインストールしてから下記をクリックしてください。
GreaseMonkey用 userrt_gm.user.js

@smegheadさん、ありがとうございましたw
ちなみに@smegheadさんはこちらでCによる高速なバグトラッキングシステムStarbug1をOSSで公開しています。

▽ 追記
3/15 Tweetのテキストボックスが無い場合は、Homeに遷移してテキストボックスにRTを挿入する機能を追加。
3/16 Chrome版のみバグ修正。

▽ 既知のバグ
3/15 Windows版Chrome にてRTがうまく表示されないらしい。CSSのノード追加でNO_MODIFICATION_ALLOWED_ERRが発生。
→ 対応しました。Windows版Chromeではstyleやscriptタグの中身を追加するときは下記の様にしてやらないとちゃんと動作しない模様。
 var scriptNode = document.createElement('style');
scriptNode.setAttribute('type','text/css');
var textNode = document.createTextNode();
textNode.nodeValue = 'CSSとかの値を書き込む';
scriptNode.appendChild(textNode);

[Programing] 12 March 2010 はてなブックマーク - Twitter公式ページ用のGreasemonkey(とChromeExtention)によるRTスクリプト Twitterでつぶやく

Twitter公式ページ用のGreasemonkey(とChromeExtention)によるRTスクリプト

RT_01
作りました。
FFならGreaseMonkeyが入ってれば動くはずです。ChromeはLinux版の5.0.307.11 betaで確認しました。
GreasMonkey用 userrt_gm.user.js
Chrome用 userrt_chrome.user.js
利用方法は簡単。上記をインストールした後、twitter.comのページで背景をダブルクリックすればRTボタンが現れます。
自動更新でTLが更新されたらまた背景をダブルクリックしてください。
# なおunsafeWindow使ってるのでChromeでは動きません。Chrome対応はそのうち・・・
注意: いろいろ大幅に修正しましたのでTwitterにRTボタンを追加するUserScript for Chrome/GreaseMonkey(正式版)から最新をダウンロードしてください。
«Prev || 1 || Next»