2011/06/28

YiiでURLからindex.phpを消す方法

.htaccessを変更するだけだとウィジェットで作られるリンク(デフォルトのテンプレートで使われている)
にはindex.phpが付いたままにななるので

config/main.php

'urlManager' => array(
'showScriptName' => false ,
.....

を追加

2011/06/23

centOSのvsftpdの設定で詰まったorz

centOSのvsftpdの設定でつまりました。
ひと通りvsftpd.confの設定を行ったあとffftpから接続しようとすると繋がらない。
色んな設定を試してみたけど解決しない。

※ここまで1時間

接続自体はできているみたいなのでプロンプトからftpで接続してみる
ftp example.com

つながるじゃないか!
普通にコマンドも通る。。。

受動モードの場合だと上手くいかないようだ。
そりゃそうだ。ポート開けてねーよ。

vsftpd.confに
pasv_min_port=60000
pasv_max_port=60100

iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 60000:60100 -j ACCEPT

両方再起動すると無事ftpを使えるようになりました。
あー。無駄な時間使った

2011/06/07

codeigniterでpostgresqlのlike検索にバグがある件

基本的にMySQL向けに作られているフレームワークだとしてもこれはさすがにひどいでしょ。。。
バグは2点みつけてます。
CIのバージョンは1.7.3です。

①点目
[RESOLVED] Undefined property: CI_DB_postgre_driver::$_like_escape_char | CodeIgniter Forums
↑のURLに書いてあるとおりただのスペルミスです。。

From
$like_statement = $like_statement.sprintf($this->_like_escape_str, $this->_like_escape_char);

To
$like_statement = $like_statement.sprintf($this->_like_escape_str, $this->_like_escape_chr);

②点目
「%(パーセント)」「_(アンダースコア)」を含むライク検索が出来ない。

/database/drivers/postgre/postgre_driver.php
299行目

$str = str_replace( array('%', '_',$this->_like_escape_chr),
array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_' , $this->_like_escape_chr.$this->_like_escape_chr),
$str);

str_replaceでエスケープを行っているが配列の順番がおかしいため
エスケープ文字が2コ付くようになってしまっています。
下記のように修正

$str = str_replace( array($this->_like_escape_chr ,'%', '_'),
array($this->_like_escape_chr.$this->_like_escape_chr ,$this->_like_escape_chr.'%', $this->_like_escape_chr.'_' ),
$str);

置換前、置換後の配列の3番目の要素をそれぞれ1番目にもってくる。これでOK。
こんなすぐ分かるバグぐらい誰かフィックスしとけよと。