UWSCでファイルをリネームして保存する

UWSCでファイルをリネームしたときの覚書

----------------------------------------
CMD = "CD " + GET_CUR_DIR //カレントディレクトリに移動

DOSCMD(CMD)

CMD = "ren 変更前ファイル名 変更後ファイル名"

DOSCMD(CMD)
----------------------------------------

ファイル名に半角スペースを含む場合はダブルクォートで囲む
----------------------------------------
CMD = "ren <#DBL>変更前 ファイル名<#DBL> <#DBL>変更後 ファイル名<#DBL>"
----------------------------------------

リネーム前のファイルを残す場合はコピーする
----------------------------------------
CMD = "copy 変更前ファイル名 after_copy\変更後 ファイル名"
----------------------------------------
※after_copyフォルダにリネーム後の保存先にした場合

PHPで一秒ごとにカウントを出力する【進捗表示】

PHPで進行状況をその都度出力したかったので、テストコードを書いた。

毎秒カウントアップ表示するサンプルコード
------------------------------------------

<?php

for ($i = 0; $i < 10; $i++) { echo $i; sleep(1); } ?> ------------------------------------------ これで1秒ごとにカウントして経過時間が表示されるはず。 そう思ったがうまくいかない。 調べてみると、PHPは出力のバッファリングがオンになっていることが多く、先ほどのようなスクリプトを実行しても毎秒ごとに出力してくれないらしい。 その都度出力は行われず、 代わりに内部バッファに保存される。そして後でまとめて表示される。ループのたびに出力するには「ob_end_flush()」でバッファリングをオフにすればいい。 先ほどのコードを修正 ------------------------------------------ <?php echo str_pad('',4096)."\n"; //←空文字を送る ob_end_flush(); //バッファリングをオフ for ($i = 0; $i < 10; $i++) { echo $i; flush(); // ← フラッシュする sleep(1); } ?> ------------------------------------------ テスト表示のとき意外と重要なのが「str_pad('',4096)」の部分。 多くのブラウザは、ある程度の文字列をバッファしてから表示を開始するため、ob_flush() や flush() によって、出力バッファをフラッシュしても、ブラウザのバッファに蓄積されてしまい、表示されない。 そこで、空白文字列をあらかじめ送るで、この問題を回避している。 これでもうまくいかないときは、PHP以外の何かがバッファリングを行っている疑いがある。 打開策のひとつとして、.htaccessに次の記述をする ------------------------------------------ mod_gzip_on Off ------------------------------------------ レンタルサーバ等の設定によっては、HTTPの応答がmod_gzipにより圧縮されることがあるのでOFFにする。

PHPの正規表現を実行するとApacheが落ちる

windows7 64bitにインストールしたxamppのPHPにて。

特定のページを読み込もうとするとと読み込み途中で「ページが見つかりません」エラーが出る現象に遭遇。

xamppのコントロールパネルからapacheのエラーログを見る。

エラーメッセージ
----------------------------------------------
ri Feb 07 02:21:38.898457 2014] [mpm_winnt:notice] [pid 3540:tid 248] AH00428: Parent: child process 10068 exited with status 3221225725 -- Restarting.
----------------------------------------------

よくわからないが再起動している。

原因を探っていくとPHPのpreg_match_all()の実行時に問題が起こっているようで、この問題はApacheのスタックサイズが足りなくなるのが発端のよう。

スタックメモリーとは、
----------------------------------------------
そのタスクや関数内だけで使われる変数やアドレス情報なんかを置いておくためのメモリ領域だ。タスクを終了する、または関数から抜けると、スタックの内容も破棄される。
----------------------------------------------

らしい。こちらより

で、このスタックサイズを増やすには、editbinコマンドを実行すればよくて、ただ実行するにはVisual Studioに入っているeditbin.exe(Microsoft COFF Binary File Editor)が必要とのこと。

「Visual Studio Express 2012 for Windows Desktop」をダウンロード。こちら
(最新版はVisual Studio2013だったが、マイクロソフトのアカウントを作ってサインインしろと、面倒くさそうだったので手間のない前ののバージョンにした)

インストールして目的のツールを確認

editbin.exeがあるフォルダのパス
----------------------------------------------
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
----------------------------------------------

まず、現状のメモリサイズを確認する。
xamppのapacheフォルダ内にあるhttpd.exeをeditbin.exeのあるフォルダにいれる。cdでその場所まで移動してコマンドを実行。

----------------------------------------------
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin>dumpbin /headers httpd.exe
----------------------------------------------

エラーが出た。
----------------------------------------------
コンピューターにmspdb110.dllがないため、プログラムを開始できません
----------------------------------------------

環境変数を反映させればなくなるエラーらしく、同じフォルダにある「vcvars32.bat」を実行。

----------------------------------------------
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin>vcvars32.bat
----------------------------------------------

その後先ほどのコマンドを再び実行。
----------------------------------------------
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin>dumpbin /headers httpd.exe
----------------------------------------------

たくさん表示される情報の中、
「OPTIONAL HEADER VALUES」の見出し中に該当の項目を発見

「40000 size of stack reserve」

「40000」は16進法であり、10進数にすると262144 (256×1024) → 256k

根拠はないが、4倍に増やせば十分かと「1048576」と指定してeditbinを実行。
(式: 目的のメモリ数(単位はKbyte)×1024。今回は1024×1024。)

----------------------------------------------
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin>editbin /stack:1048576 httpd.exe
----------------------------------------------

エラーがでる。
----------------------------------------------
LINK : fatal error LNK1104: ファイル 'httpd.exe' を開くことができません。
----------------------------------------------

どうも権限の都合でフォルダ内のファイルは変更できないらしい。
httpd.exeをデスクトップに移動させて再び実行する。
----------------------------------------------
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin>editbin /stack:1048576 C:\Users\PC名\Desktop\httpd.exe
----------------------------------------------

エラーは出ず。「dumpbin」でサイズ変更されていることを確認。

----------------------------------------------
100000 size of stack reserve
----------------------------------------------

PHPでApacheが落ちる問題も解消された。

参考にしたページ
こちらこちら

【mysql】大容量のCSVファイルをload data infileで読み込めなかった時の対処法

mysqlで、load data infileを使いデータを読み込もうとしたがぜんぜん完了しない。しまいには、エラーが出た。

エラー内容
----------------------------------------------------------
ERROR 2013 (HY000): Lost connection to MySQL server during query
----------------------------------------------------------

4~6時間くらいか放っておいたら、切断がされたらしい。

実行環境
----------------------------------------------------------
Windows7にインストールしたxamppのmysql
----------------------------------------------------------

読み込んだCSVファイル
----------------------------------------------------------
'','だいこん[改行]
きゅうり[改行]
たくあん[改行]
レンコン[改行]
たまねぎ[改行]・・・・・' (←ここまで一件)
(こんなデータが1万2000件)
----------------------------------------------------------
2列でできたレコードが1万2000件ほど続くCSVファイル。行数にして8000万行以上(670MB)。
※1列目の空文字はプライマリキーなので読み込んだ後は一意の数字が入る。
※2列目は四文字くらいの単語の後に改行が入る。改行を数千回繰り返したものがひとつのレコード

xamppのコントロールパネルからエラーログを見ると、
----------------------------------------------------------
2014-02-04 05:12:30 3748 [Note] c:\xampp\mysql\bin\mysqld.exe: ready for connections.
Version: '5.6.14' socket: '' port: 3306 MySQL Community Server (GPL) ←実行開始時間
2014-02-04 11:19:23 3748 [ERROR] InnoDB: InnoDB: Unable to allocate memory of size 702845016. ← エラー発生時間
----------------------------------------------------------

「メモリが割り当てられない」みたいなことを言っている。
調べると、mysqlに使用するメモリは次の項目で設定できるらしい。

my.ini(旧my.cnf)の中身から抜粋(初期値)
----------------------------------------------------------
## You can set .._buffer_pool_size up to 50 - 80 %
## of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
## Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
----------------------------------------------------------
項目の詳細は、こちらこちらが分かりやすい。ここも。

青字がメモリに関する箇所。
そこで次のように変更を加える。

----------------------------------------------------------

innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 256M
innodb_log_file_size = 512M
innodb_log_buffer_size = 768M

----------------------------------------------------------

mysqlをリブートして再び「load data infile」を実行。
するとできた。

----------------------------------------------------------
Query OK, 11827 rows affected, 11828 warnings (1 min 5.00 sec)
----------------------------------------------------------

所要時間およそ1分で読み込み完了。

/////////////////////////////////////////////////////////////
追記:
ただひとつのレコードに8000万の改行を含むデータを入れると別のエラーが出た。
----------------------------------------------------------
ERROR 5 (HY000): Out of memory (Needed 308285964 bytes)
----------------------------------------------------------
これについてはググっても設定ファイルいじっても解決せず。とりあえず保留。
/////////////////////////////////////////////////////////////

ちなみに行数を減らしたら次のような結果になった。

設定変更前
----------------------------------------------------------
300万行 44秒(改行LF + CRでエラー)
5秒 (LF 正常)
----------------------------------------------------------

↓↓↓

設定変更後
----------------------------------------------------------
300万行 2.5秒
----------------------------------------------------------

設定変更前
----------------------------------------------------------
1000万行 読み込めずエラー
----------------------------------------------------------

↓↓↓

設定変更後
----------------------------------------------------------
1000万行 7分(改行LF + CRでエラー)
1000万行 8秒(改行LF)
----------------------------------------------------------

WindowsにインストールしたxamppのphpをUTF-8化

WindowsにインストールしたxamppのphpをUTF-8化時のメモ。

2014年2月3日現在の最新版で行った。

1.「C:\xampp\php」にあるphp.iniを開く

下記の箇所を見つけて、コメントアウトをはずしていく。

----------------------------------------------
;mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http_output = SJIS
;mbstring.encoding_translation = Off
;mbstring.detect_order = auto
;mbstring.substitute_character = none
;mbstring.func_overload = 0
----------------------------------------------

2.さらに、該当箇所は値を変更する

変更箇所と値
----------------------------------------------
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
----------------------------------------------

XAMPPでFFFTPを使う

XAMPPでFFFTPを使うには、FTPユーザーの登録が必要。
ユーザー登録は、FTPサーバーであるFileZillaをXAMPPのコントロールパネルから起動して行う。

設定したIDとPASSを利用して、FFFTPを設定すればいい。

また、FileZillaで作ったユーザーには、書き込み・読み込み等の権限を同時に与えておくこと。
設定をしないとアップロードすらできない。

さくら、poderosaでmysqlのデータ表示すると文字化けする

さくらのmysqlサーバーの文字コードはEUC-JP。

poderosaの文字コードもEUC-JPに合わせれば、きちんと見れる。

【mysql】テキストファイルに書かれたクエリを読み込んで実行する

テキストファイルに書いたmysqlのクエリ文を実行するには「source」コマンドを使う。

用意したファイル
------------------
test.txt
------------------

ファイルの中身
------------------
insert into テーブル名 (カラム名) VALUES ('内容1'),('内容2')
------------------

ターミナルでさくらのサーバーにログインして、mysqlに接続する。
データベースを選択して、「source」コマンドを実行する。

実際のコマンド
------------------
source /home/username/www/test.txt
------------------

mecabに新しい辞書を追加する

mecabに新しい辞書を追加した際の手順の記録。

1.辞書の元になるデータをダウンロードする

データとしてよく利用されているものに、wikipediaのタイトルリストやはてなキーワード、人名事典などがある。今回はwikipediaのタイトルリストを利用した。(はてなキーワードも追加した。このページの下のほう)

ダウンロード先URL
-------------------------------------

http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-all-titles-in-ns0.gz

-------------------------------------

人名事典ならこちらのページからダウンロードできる
(個人的には人名事典は使わない。人名が普通名詞と結構かぶって、名詞の読みが人名なったり、長めの普通名詞が人名と区切られたりと不都合が起こる)
-------------------------------------

http://www.mwsoft.jp/programming/munou/ime_dictionary_link.html#person

-------------------------------------

2.不要なタイトルは削除する

ここからタイトルリストをCSVファイルに加工していく。保存名はwikipedia.csvとした。
まず秀丸エディタで開き、置換の繰り返しで不要タイトルを削除した。

個人的に削除したタイトルの条件

・数字だけのもの
・「(曖昧さ回避)」を含むもの
・3文字以下のもの

・次の言葉で始まるタイトル
-------------------------------------
「日本の~」「日本に~」「日本と~」「日本で~」
「中国に~」「中国の~」
「アメリカに~」「アメリカの~」
「ヨーロッパに~」「ヨーロッパの~」
「.(ドット)~」
-------------------------------------

次の文字を含むタイトル
-------------------------------------
「,(カンマ)」←あるとフォーマットエラーになる。カンマを残すならエスケープが必要。
-------------------------------------

・次の言葉で終わるタイトル
-------------------------------------
「_(何か)」「一覧」「の登場人物」
-------------------------------------

秀丸エディタのマクロで置換するファイル: 右クリックしてダウンロード

3.辞典に登録できる状態に整形する

辞書に登録されている単語は通常CSVファイルでこのようになっている

-------------------------------------
工藤,1223,1223,6058,名詞,固有名詞,人名,名,*,*,くどう,クドウ,クドウ
-------------------------------------

値の意味は左から
-------------------------------------
表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音
-------------------------------------

なので一旦こうした。(スコア)は後で数字に置き換える。

-------------------------------------
日清どん兵衛
-------------------------------------

↓↓↓

-------------------------------------
日清どん兵衛,0,0,(スコア),名詞,固有名詞,*,*,*,*,日清どん兵衛,*,*,ウィキペディア
-------------------------------------


<20150814 追記>
固有名詞のスコアは1でいいと思う。
-------------------------------------
日清どん兵衛,0,0,1,名詞,固有名詞,*,*,*,*,日清どん兵衛,*,*,ウィキペディア
-------------------------------------

このとき利用した秀丸エディタの正規表現

検索:^(.+)$

置換:¥1,0,0,(スコア),名詞,固有名詞,*,*,*,*,\1,*,*,ウィキペディア


<20150814 追記>
スコア1の場合
-------------------------------------

置換:¥1,0,0,1,名詞,固有名詞,*,*,*,*,\1,*,*,ウィキペディア
-------------------------------------

次にスコアを登録する。
コストは、その単語がどれだけ出現しやすいかを示していて、小さいほど出現しやすいという意味になるらしい。

長いキーワードが優先されるよう設定したいので、文字数に比例してコストが小さくなるように設定した。こちらのサイトにある式を参考にコスト値を求める。

コストを求める式
-----------------------------------------
コスト値 = -400 * (文字の長さの1.5乗)の整数
但し、最小で-36000
-----------------------------------------

スコアの登録はUWSCでファイルから一行ずつ読み込んで置換。(秀丸エディタでの計算がよくわからなかったので)

//UWSCファイルの一部抜粋
///////////////////////////////////////////////////////

//タイトルの文字数
moji_suu = POS(",0,0,(スコア)",Line_data) - 1

cost = 0 //初期化

//文字数がマイナス(取得失敗)でべき乗するとエラーが出るようなのでIFで回避
IFB moji_suu > 0
cost = INT(-400 * POWER(moji_suu, 1.5))
 IF cost < -36000 THEN cost = -36000 ENDIF Line_data = REPLACE(Line_data,"(スコア)", cost) /////////////////////////////////////////////////////// 最初からすべてUWSCでやればよかったとも思った。秀丸エディタで面倒な置換を何度も繰り返す必要なかったなと。 4.辞書のコンパイルとインストール

これ以降の作業は必要な辞書を全部そろえてからでいい。

参考サイト

辞書登録には「システム辞書」と「ユーザー辞書」があるが今回はシステム辞書に追加する。(登録に時間はかかるが解析は早い)

csvファイルをmecab-ipadic-2.7.0-20070801ディレクトリに移動する。
ここにcsvファイルも入れておく。この際、改行コードも「LF」になってることを確認した。

自分の環境のパス(cd でココに移動
--------------------------------------------
/home/username/local/mecab-ipadic-2.7.0-20070801
--------------------------------------------
※↑おそらくこのパスは、辞典CSVファイルが入ったディレクトリならどこでもいい。既に消去してしまっていたら、一時ファイルを作ればいいと思う。そこで次のコマンドを実行する。

mecab-dict-indexを実行するので場所を確認
--------------------------------------------
/home/username/local/libexec/mecab/mecab-dict-index
--------------------------------------------
mecabが使える状態ならどこかにあるはず

コマンドを実行する。

実際のコマンド
--------------------------------------------
/home/username/local/libexec/mecab/mecab-dict-index -f utf8 -t utf8
--------------------------------------------
「-f」はCSVの文字コード、-「t」はバイナリ辞書の文字コードを指定。
「mecab-ipadic-2.7.0-20070801」がカレントディレクトリでないとエラーが出る

また、最初に実行した際、こんなエラーも出た
--------------------------------------------
reading ./wikipedia.csv ... dictionary.cpp(167) [n == 5] format error:
--------------------------------------------

「,」を含むタイトルが残っていて、削除することでうまくいった。

最後にインストールも忘れずに行う
--------------------------------------------
make install
--------------------------------------------
※もし、インストール前のmecabディレクトリを消してしまっていた場合、インストールはできない。そのときはインストールは諦めて、新しくできた辞書ファイルを所定の場所に移動させる(置換)で辞書を追加することができる。

移動させるファイル名
------------------------------------------
char.bin
sys.dic
unk.dic
matrix.bin
------------------------------------------

移動前(ファイルができる場所)
------------------------------------------
/home/username/local/mecab-ipadic-2.7.0-20070801
------------------------------------------
↓↓↓

移動先
------------------------------------------
/home/username/local/lib/mecab/dic/ipadic
------------------------------------------

はてなキーワードの登録もやってみた

やりかたはwikipediaのときとほぼ一緒。

1.データをダウンロード

ダウンロード元
----------------------------
•http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv
----------------------------

2.CSVファイルの整形

次の条件のタイトルは削除。

・「,(カンマ)」を含むもの
・「2001-01-01」のような日付だけのもの
・数値文字参照「&#~」を含むもの
・「ぱーせんとぜろぜろ」のタイトル(UTF-8に文字コード変換するとタイトルの%00(?
)が半角スペースに置き換わり、インストールエラーが出る。こんなの→「empty word is found, discard this line」)
・「明日(ぬくい)」という人名。残しておくと、「明日(あした)」が「ぬくい」と解釈されて邪魔
・「???」という項目

秀丸エディタのマクロで置換するファイル: 右クリックしてダウンロード

そして、辞書用に並び替え。
-----------------------------------------------------------------
ひかりのもり(タブ)光の森
-----------------------------------------------------------------

↓↓↓

-----------------------------------------------------------------
光の森,0,0,(スコア),名詞,固有名詞,*,*,*,*,光の森,ひかりのもり,ひかりのもり,はてなキーワード
-----------------------------------------------------------------

wikipediaのタイトルリストと違い、多くのタイトルにふりがな情報がある。

実際に使った秀丸エディタの正規表現

ふりがながある項目に対して有効
-----------------------------------------------------------------
検索:^(.+)\t(.+)$

置換:\2,0,0,(スコア),名詞,固有名詞,*,*,*,*,\2,\1,\1,はてなキーワード
-----------------------------------------------------------------

ふりがながない項目用に次の置換も実行
-----------------------------------------------------------------
検索:^\t(.+)$

置換:\1,0,0,(スコア),名詞,固有名詞,*,*,*,*,\1,*,*,はてなキーワード
-----------------------------------------------------------------

上記の正規表現で置換すると、ふり仮名のないタイトルにおいて、空欄「,,(連続カンマ)」ができてしまう。空欄は「*」に置き換える「,,」→「,*,」

あとは(COST)の部分を数値に置き換えて「mecab-dict-index」を実行、そしてインストール「make install」。(もしくは、ファイル移動)

さくら共用サーバーにmecabをインストールする

さくら共用サーバーで php-mecab を使うだけならサービスに元々含まれている mecab を利用できる。自前の mecab は不要なのでこのエントリーの作業は不要。自前で mecab はインストールすべき。デフォルトの mecab は php のバージョンアップなどでフォルダが変わることがある。php-mecab は mecab のフォルダを指定してるので不具合が起こる。

さくら共用サーバーにmecabをインストールに至った経緯↓↓

=========================================
さくら共用サーバーには最初からmecabが入っている。但し辞書はEUC-JPなのでUTF-8で利用するには自前で辞書を用意しなくてはならない。で、辞書のみをインストールしたがどうもうまくいかない。UTF-8でインストールしても文字化け、EUC-JPで文字を扱ってしまう。
いろいろ調べると、当方サーバーにインストールされているmecabのバージョンは、「0.995」で、このバージョンはUTF-8の辞書をうまく使えないバグがあるらしい。
ということで別バージョンのmecabを共用サーバーにインストールした。
=========================================
↑こう書いたもののいざやってみると、v0.97でも辞書のutf-8化ができない場面に遭遇。mecab本体のインストールは問題なし。mecabのバージョンと辞書の文字コードは関係ないのかもと思い始める。ただutf-8の文字コードで動かすことはできた。詳しくは下記のリンク。

utf-8の辞書、インストール方法はこちら

インストールするmecabのバージョン
-----------------------------------------
mecab 0.97 ←別サーバーでバグがないことを確認済み
-----------------------------------------

インストール先(localは自分で作る)
-----------------------------------------
/home/username/local/
-----------------------------------------

1.ダウンロードしたファイルを解凍
-----------------------------------------
tar xzvf mecab-0.97.tar.gz
-----------------------------------------

2.「configure」実行
-----------------------------------------
cd mecab-0.97 ←フォルダ移動

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

3.コンパイルとインストール
-----------------------------------------
make ← コンパイル

make install ← インストール
-----------------------------------------

すると、インストール時にエラーが出る。

エラー内容
-----------------------------------------
%make install
.././install-sh: Permission denied
*** Error code 126
-----------------------------------------

mecab-0.97フォルダ内のinstall-shファイルにアクセス権限がないとのことで、確認してみる
-----------------------------------------
ls -l install-sh
-----------------------------------------
こう表示された
-----------------------------------------
-rw-r--r-- 1 username users 5569 Jan 29 2007 install-sh
-----------------------------------------

アクセス権限を変更(「install-sh」は「install -sh」でないよ。ハマッた)
-----------------------------------------
chmod 755 install-sh
-----------------------------------------

再びインストールを試みる
-----------------------------------------
make install
-----------------------------------------
(make cleanで不要はファイルは消せる)

インストール成功。

接続し直してバージョンを確認。binフォルダはインストールが成功するとできる。
-----------------------------------------
~/local/bin/mecab -v
-----------------------------------------
~(チルダ)は、ユーザのホームディレクトリ(home/username)のこと。$HOMEも同じ。

4.簡単に使えるようにパスを通す

現在のPATHを確認してみる
-----------------------------------------
echo $PATH
-----------------------------------------

結果
-----------------------------------------
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/username/bin
-----------------------------------------
:」は区切り。

パスを書き換えるため、exportを実行するがエラーが出る

コマンド
-----------------------------------------
export PATH=~/local/bin:$PATH
-----------------------------------------

結果
-----------------------------------------
export: Command not found.
-----------------------------------------

ファイルを直接書き換えることにする。
利用しているシェルを確認してみる

コマンド
-----------------------------------------
echo $SHELL
-----------------------------------------

結果
-----------------------------------------
/bin/csh
-----------------------------------------

この場合、ホームディレクトリ直下にある.cshrcファイルを編集することになる。
パスは左から優先されるので、自前のmecabが選択されるよう、一番左にパスを追加する。

編集内容
-----------------------------------------
#set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin) ←コメントアウト
set path = ($HOME/local/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin) ←追加行
-----------------------------------------

(エックスサーバーは bash なので .bashrc に↓追記)
-----------------------------------------
export PATH=$HOME/local/bin:$PATH
-----------------------------------------

PATHが通ったことを確認
-----------------------------------------
echo $PATH
-----------------------------------------

mecabのバージョンを確認
-----------------------------------------
mecab -v
-----------------------------------------

なお辞書をインストールしていないとエラーが出る
-----------------------------------------
param.cpp(69) [ifs] no such file or directory: /home/username/local/lib/mecab/dic/ipadic/dicrc
-----------------------------------------

辞書のインストールはこちら