さくらインターネット


さくら共有サーバー、UTF-8の辞書でmecabを使う方法

(mecab本体のインストールはこちら。ただしさくら共用にはあらかじめ mecab がインストールされているので不要。php-mecab を使用する場合も不要。)
さくら共用サーバーにmecabをインストールする

さくらインターネットにはmecabが最初からインストールされている。
しかし辞書の文字コードがEUC-JPなので自分の環境では文字化けしてしまう。

これを解決するためには、UTF-8の辞書をインストールする。以下、その方法。

まず、インストール先を決める。さくら共有サーバーでインストール権限があるのは、ホームディレクトリ以下。
自分でコンパイルしたアプリケーションをインストールする場所は、ホームディレクトリ以下のlocalフォルダが一般的のよう。

0.インストールするディレクトリを作成しておく
------------------------------------------------
/home/username/local/mecab-dic/ipadic-utf8 ←localディレクトリはないので新規作成
------------------------------------------------

1.辞書のダウンロードと解凍を行う
------------------------------------------------
(ポデローサで打ったコマンド)
cd local ←ローカルディレクトリに移動(ダウンロード先)

wget http://sourceforge.net/projects/mecab/files/mecab-ipadic/2.7.0-20070801/mecab-ipadic-2.7.0-20070801.tar.gz ← 辞書をダウンロード

tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz ←解凍
------------------------------------------------

2.「configure」の実行

2-1
------------------------------------------------
cd mecab-ipadic-2.7.0-20070801 ←configureファイルのあるディレクトリに移動
------------------------------------------------

2-2
------------------------------------------------
自前のmecabがある場合
./configure --with-charset=utf8
※「/home/username/local/lib/mecab/dic/」以下に ipadic フォルダがインストール先される

インストール先としてipadic-utf8というフォルダが作ってある場合
./configure --with-charset=utf8 --with-dicdir=~/local/mecab-dic/ipadic-utf8 ←実行。
------------------------------------------------
※インストール先を、今後辞書を追加する可能性も考慮し「~/local/mecab-dic/ipadic-utf8」にする場合、フォルダはあらかじめ作っておく必要がある。
ホームディレクトリ以下に自前のmecabをインストールしている場合「--with-dicdir=~/local/mecab-dic/ipadic-utf8」を書くとmake install時にエラーになった。その場合は、インストールは指定しないことでやり過ごせる。

※「configure」というシェルスクリプトを実行することでMakefileが作成される。Makefileは、ソースファイルをコンパイルする前にインストール対象となるシステム特有の機能/情報をチェックし、チェック状況を記述したファイル。

以下の2ファイルは元々ある
------------------------------------------------
Makefile.in
Makefile.am
------------------------------------------------

configureを実行すると3つファイル増える
------------------------------------------------
config.log
config.status
Makefile
------------------------------------------------

3.インストールの実行
------------------------------------------------
make ←「configure」の実施で作られた「Makefile」を元にコンパイルを実行
make install ← インストールを実行
------------------------------------------------

4.動作テスト
------------------------------------------------
mecab -d ~/local/mecab-dic/ipadic-utf8 ←辞書を指定
これはテストです
------------------------------------------------

結果
------------------------------------------------
これ 名詞,代名詞,一般,*,*,*,これ,コレ,コレ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
テスト 名詞,サ変接続,*,*,*,*,テスト,テスト,テスト
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
------------------------------------------------

↓ターミナル経由でmecabを実行して解析結果が空欄だった場合、ターミナルの文字コードが違う可能性が考えられる。
自分の場合、辞書をUTF-8にしてもターミナルの文字列はEUC-JPに設定する必要があった。
------------------------------------------------
これはテストです
これは ̾,,*,*,*,*,*
テスト ̾,,*,*,*,*,*
です ̾,,*,*,*,*,*
------------------------------------------------

mecab -d ~/local/mecab-dic/ipadic-utf8 -D
これで辞書情報が確認できる。charsetがutf8であればOK

問題なく動くことを確認する。

mecabを終了するときは、「Ctrl + D」

本来ここまでの作業でUTF-8化した辞書がインストールできているはず。が、別アカウントのサクラサーバーで同じように辞書をインストールするとうまくいかない。手順どおり辞書のインストールを行うと滞りなく進むのだが、いざmecabで形態素解析を行うと、UTF-8を認識しない。EUC-JPで辞書がインストールされているようだ。
いろいろ調べたが根本的理由はわからず。バグかな?
下記の方法を行えばとりあえずUFT-8でmecabを動かせるようになります。

辞書インストール時、辞書のフォルダを解凍した後(configure実行の前)に2つのことを行う。

1.辞書フォルダ内の「csv」と「def」の拡張子のファイルをUTF-8に変換して上書きする。

テキストファイルで保存しなおしてもいいし、コマンドラインなら次のように打つ(cshellの場合)。

//まず、今の文字コードを確認
------------------------------------------------
cd mecab-ipadic-2.7.0-20070801 ← 辞書フォルダ内に移動

nkf -g Noun.csv ← とりあえずひとつのファイルの文字コードを確認してみる。gオプションは文字コードを出力。この時点ではEUC-JPが返るはず。
------------------------------------------------

//「csv」のファイルをUTF-8に変更
------------------------------------------------
foreach f ( *csv ) ← フォルダ内のcsvファイルに対して繰り返す(fは何の文字でもいい)

nkf -w --overwrite $f ← UTF-8に変更して上書き

end ← 「foreach?」と出てるはずなので終える
------------------------------------------------

//UTFになっていることを確認
------------------
foreach f ( *csv )
nkf -g $f
end
------------------

//「def」も同じようにUTF-8に変更する
------------------------------------------------
foreach f ( *def )

nkf -w --overwrite $f ← UTF-8に変更して上書き

end ← 「foreach?」と出てるはずなので終える
------------------------------------------------

2.dicrcファイルを書き換える

dicrcファイルは辞書フォルダ内にある
------------------------------------------------
config-charset = EUC-JP ← 書き換え前

 ↓↓↓

config-charset = UTF-8 ← 書き換え後
------------------------------------------------

この後は、configure → make → make install の順でインストールを済ませばいい。

FFFTPで消せないファイルやフォルダの消し方

まずは次のページに書かれていることをやってみる

http://www.hereticanthem.co.jp/old/215

それでも消せない場合↓↓↓

ポデローサなどでサーバーにログインして、以下のコマンドで削除する

------------------------------------------------
rm -rf 消せないファイルやフォルダ名
------------------------------------------------

オプションの意味
------------------------------------------------
-f, --force
存在しないファイルは無視し、確認をとらない。強制的に削除する

-i, --interactive
削除する前に確認を取る

-r, --recursive
ディレクトリの中身を再帰的に削除する
------------------------------------------------

さくらのphp.ini設定場所は2箇所(独自ドメインのphp.iniについて)

さくらインターネットのphp.iniファイルの設定場所は2箇所ある

ひとつはサーバーコントロールパネルへログインして「PHP設定の編集」で変更。

しかし独自ドメインを設定している場合、ここで変更しても反映されない。

phpinfoで確認しても、php.iniファイルを読み込むパス情報の

「Loaded Configuration File」には (none) と表示される。これは読み込みされる場所にphp.iniファイルが存在しないということ。

ではどうすればいいのかという、独自ドメインのルートフォルダに直接php.iniファイルを書き込んで転送すればいい。その後phpinfoで「Loaded Configuration File」を確認すれば読み込みできていることがわかる。

ちなみに、自分の場合はinclude_pathの設定をしようと上記の解決策を見つけるまではまったのだが、.htaccessでinclude_pathを変更してもエラーが出てできなかった。

サーバーコントロールパネル内「PHP設定の編集」に次の記載がある。

//////////////////////////////////////////////
.htaccess に PHP_Flag や PHP_Value を指定せず、php.ini に設定してください。htaccess に記述した場合、Internal Server Error になります。
//////////////////////////////////////////////

さくらサーバーでinclude_pathを変更するには、php.iniを変更するのが正しい。

SSH(poderosa)を使って、さくらのMySQLサーバーに接続する方法

SSH(poderosa)を使って、さくらのMySQLサーバーに接続する方法の覚書。

現在のさくらサーバーでは、新規ユーザーはTELNETが使えない。なので、データベースをコマンドラインで操作するには、SSHで接続する必要がある。

1.poderosaでサーバーにログインする。

詳しくは↓
http://support.sakura.ad.jp/manual/rs/others/ssh.html

2.ログインできたら、データベースの情報を入力

mysql -u データベースユーザー名 -h  データベースサーバー名(mysql***.db.sakura.ne.jp) -p

入力したらENTER。

するとパスワードが求められるので入力(この際、カーソルは動かないが仕様)、そしてENTER。

ログインに成功すると、「mysql>」と出るはず。

なお、自身のデータベースユーザー名、データベースサーバー名はさくらのサーバーコントロールパネル空確認しておく必要がある。また、初回はそこからパスワードを設定することも必要。

5 / 512345