Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

Google日本語入力の設定

こんにちは。

突然ですが自分はMacIMEにはGoogle日本語入力を使っています。
Windowsのときからずっと使っているのですが便利ですよねこれ。

しかし、すこし不便に思うところもありました。
Macの場合は command + space で入力モードを切り替えますが、使わないカタカナや全角英数モードを選んでしまったりターミナルで全角モードのまま入力になってしまったり・・・

今回、それを少し改善する方法を見つけたのでメモしておきます。

以下やったことです。

  1. Macのキーボード設定の入力ソースからカタカナモード、全角英数モードを削除
  2. 同じ設定画面にある「書類ごとに入力ソースを自動的に切り替える」にチェック

まずは使わない入力モードの削除。
私の場合はカタカナと全角英数モードを使うことがないので、これを削除しました。
そして、入力ソースを自動的に切り替えるようにしました。
これは、アプリケーション毎に前回の入力モードの状態を記録してくれ、切り替える毎にその入力ソースにしてくれるような設定です。
これで、例えばターミナルをいじっている途中でブラウザに切り替え、全角モードで打ってからターミナルに戻った際にも、半角モードに自動で変わってくれます。

以上、小技でした。
ところで、ターミナルを起動したら自動で半角モードにするような設定はないのでしょうか・・・?

Gist.vimのインストールと使い方

おはようございます。
ブログに書くソースコードをGistにアップロードしようと思って、何か良いのないかなーと思ってたらgist.vimというvimプラグインがあったのでそれのインストールと使い方をメモっておきます。(結構今更感ありますが・・・)
といってもほとんどプラグインGithubページに書いてありますが・・・

インストール

まずはインストールです。NeoBundleを使います。
.vimrc に以下を記述

NeoBundle 'mattn/gist-vim', {'depends': 'mattn/webapi-vim'}

そして git config の設定を追加します。

$ git config --global github.user <username>

その後、vimを起動してプラグインをインストールし、 :Gist コマンドを打つとGithubのパスワードを聞かれるので入力します。
そうすると ~/.gist-vim が作成されます。中身はtokenです。
Gist.vimは最近OAuth認証対応になったのでこれで終わりです。
Githubへのアプリケーション登録などをしている記事もありますが、必要なくなりました(この方法でも使用可能となっていますが)。

使い方

Githubページに書いてありますが、よく使いそうなやつだけ書いておきます。

コマンド 説明
:Gist [-P, -p] Gistに投稿。-P でpublic, -p でprivateに投稿。デフォルトはpublic
:'<,'>Gist 選択した部分だけGistに投稿。ビジュアルモードで選択してコマンドモードにしてGistを打てばOK
:Gist -l [user] gist一覧を取得。ユーザ指定も可能
:Gist -la 自分のpublicとprivate全てのgist一覧を取得
:w または :Gist -e gistの更新。gist編集バッファ内で打つ
:Gist -s hoge 説明の指定。-e との併用も可
:Gist -d 投稿の削除。gist編集バッファ内で打つ

以上です。
このプラグインはかなり便利ですね。

ちなみにHomebrewでgistをインストールしてgistコマンドで投稿することも出来ますがどっちが良いのでしょうね?
vimを使ってる場合はGist.vimで良い気がしますが・・・

それでは。

参考にさせていただいたサイト

mattn/gist-vim · GitHub
Gist.vimの導入とヘルパースクリプトの作成 - Nukino's memorandum

mecabにWikipediaのタイトル一覧とはてなキーワード一覧をユーザ辞書として追加し、PHPとRubyで使ってみる

こんばんは。最近mecabをいじっています。
今回はmecabWikipediaのタイトルとはてなキーワード一覧をユーザ辞書として追加してみたいと思います。そしてプログラム上で使ってみます。
といっても、結構他の人がやっていてやり方を分かりやすくまとめてくださっているので改めて書く必要はそんなにないんですが自分のメモとして残しておきます。

なお、私の場合はmecabをHomebrewでインストールしており、システム辞書にはnaist-jdicを用いていますのでそれに合わせます。

各ファイルのダウンロード

まずは最新版のWikipediaのタイトル一覧とはてなキーワード一覧を取得します。

$ curl -L http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-all-titles-in-ns0.gz | gunzip > jawiki-latest-all-titles-in-ns0

$ curl -L http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv | iconv -f euc-jp -t utf-8 > keywordlist_furigana.csv

CSVファイルの作成

mecabにユーザ辞書として追加する場合、指定のフォーマットのCSVファイルを作成する必要があります。
これはこちらの記事スクリプト(make_dict.rb)を使わせてもらいました。rubyで書かれているのでrubyが実行出来る環境が必要です。
ただし、こちらのスクリプトでは3文字以下のものは省くようにしているのですが(27行目)、自分は1文字以下のものを省くように変更しました。
一応若干改変したものを下記に示します。簡単ですが説明も加えました。

gista52a31be8604d7ba7725

このスクリプトを実行すればCSVファイルが作成されます!

$ ruby make_dict.rb

なお、コード内でスコア計算していますが、スコアについてはmecab公式ページケーススタディのところや、こちらの記事が参考になります。
用はこのスコアで長い単語を優先するようにしています。

辞書の作成(コンパイル

さて、CSVを作り終えたらいよいよ辞書の作成です。
辞書は以下のコマンドで作成出来ます。

$ /usr/local/Cellar/mecab/0.996/libexec/mecab/mecab-dict-index -d /usr/local/Cellar/mecab/0.996/lib/mecab/dic/naist-jdic/ -u wiki_hatena.dic -f utf-8 -t utf-8 wiki_hatena.csv 

オプションが表すのはそれぞれ以下の通りです。

これを実行すると、wiki_hatena.dic が作成されます。これが辞書ファイルとなります。

作成したユーザ辞書の使い方

早速作成した辞書を試してみましょう。
mecabでは -u オプションで辞書を指定することでその辞書を使えるようになります。

$ mecab
クラウド
クラ  名詞,固有名詞,一般,*,*,*,クラ,クラ,クラ,,
ウド  名詞,一般,*,*,*,*,ウド,ウド,ウド,,
EOS

$ mecab -u wiki_hatena.dic
クラウド
クラウド    名詞,一般,*,*,*,*,クラウド,*,*,wikipedia
EOS

上記はシステム辞書を使った場合と作成した辞書を使った場合の比較です。
これで使えるようになりました!
ただ、いちいちユーザ辞書を指定するのが面倒くさい場合は、設定ファイルにユーザ辞書を読み込ませることで -u を使わずともユーザ辞書を使うことが出来ます。

$ vim /usr/local/etc/mecabrc

# 以下の行を追加
userdic = /foo/bar/wiki_hatena.dic

なお、システム辞書とユーザ辞書両方に同じ単語があった場合はユーザ辞書が優先されるようです。
なのでユーザ辞書が優先されてほしくない場合は -u オプションを使うのが良さそうです。
また、ユーザ辞書はカンマ区切りで複数登録出来ます。

これでユーザ辞書を使えるように出来ましたね!

プログラム上から実行

最後にプログラム上からユーザ辞書を使ってみたいと思います。
mecabrcにユーザ辞書の設定を記述している場合は、普通に Mecab_Tagger を new すれば使えます。
しかし、ユーザ辞書を優先させないで個別に使いたい場合はプログラム上で指定する必要があります。
rubyの場合は以下のようにやると良いみたいです。

userdic_path = "/foo/bar/user.dic"
q = MeCab::Tagger.new("-u #{userdic_path}")
print q.parse("テスト用文字列")

PHPの場合は、php.iniの mecab.default_userdic で設定する必要があるみたいです(こちら参照)。
よって php.ini を直接編集するか、ini_set を使って以下のようにします。

<?php
ini_set('mecab.default_userdic', 'foo/bar/user.dic');
$this->mecab = new MeCab_Tagger();
$nodes = $mecab->parseToNode("テスト用文字列");
?>

以上で終わりです。
今回はほとんど参考記事の通りやれば出来たので簡単でした。先人の方達に感謝です。
それでは。

参考にさせていただいたサイト

mecabにwikipediaとhatenaキーワードのユーザ辞書を適用する(ついでに、辞書にない場合はそれもわかるようにするオプション付き) - すがブロ
MeCab の辞書構造と汎用テキスト変換ツールとしての利用
MeCabの辞書にはてなキーワードを追加しよう - 不可視点
MeCab: 単語の追加方法
mecab - 形態素解析のために Wikipedia とはてなキーワードからユーザー辞書を生成し利用する - Qiita
【なぜ!】php_mecabでユーザー辞書って有効にならない? - For Want Of A Better Word

mecabのインストールと辞書追加

こんばんは。
今回はMacmecabを入れ、PHPで使えるようにしたいと思います。
なお、私の場合はphpenvでPHPを管理しているので、以下はそちらに合わせた環境構成となります。

mecabインストール

まずはmecabのインストールです。
Homebrewで簡単に出来ます。ついでに辞書もインストールします。
辞書はipadicがデファクトスタンダードなようですのでこれをインストールします。

$ brew install mecab
$ brew install mecab-ipadic

# インストールが終わったらテストです
$ mecab
すもももももももものうち

テストしてみて結果が出ればOKです。
Homebrewでインストールした辞書は、必要最低限の構成しかないみたい(CSVとかがない)なので、ソースファイルをDLしてきて全てのファイルを移動しておきます。

$ wget http://code.google.com/p/mecab/downloads/detail?name=mecab-ipadic-2.7.0-20070801.tar.gz

$ cp ~/Downloads/mecab-ipadic-2.7.0-20070801/* /usr/local/Cellar/mecab/0.996/lib/mecab/dic/ipadic/

以上で必要最低限のことは終わりました。

辞書の追加

先ほどインストールしたipadicですが、今はその後継となる辞書があるようなのでそれをインストールして読み込ませます。
mecabはシステム辞書とユーザ辞書がありますが、今回はシステム辞書に追加します。

まずはこちらから最新版をDLし、解凍します(もしくはwgetで)。
その後、カレントディレクトリを解答したディレクトリにし、以下を実行。

# utf8オプションを付ける
$ ./configure --with-charset=utf8
$ make
$ make install

これで /usr/local/Cellar/mecab/0.996/lib/mecab/dicnaist-jdic がインストールされます。
以下のコマンドで確認出来ます。

$ mecab -d /usr/local/Cellar/mecab/0.996/lib/mecab/dic/naist-jdic/

naist-jdicを標準の辞書にする場合は、以下のファイルを編集します。
/usr/local/etc/mecabrc

; コメントアウト
;dicdir =  /usr/local/Cellar/mecab/0.996/lib/mecab/dic/ipadic
; 以下の行を追加
dicdir =  /usr/local/Cellar/mecab/0.996/lib/mecab/dic/naist-jdic

これで辞書の追加は終わりです。

php-mecabのインストール

最後に、mecabPHPで使えるようにしたいと思います。
php-mecabというスクリプトがあるので、これを使いたいと思います。

まず、こちらから最新版をDLし解凍。
その後カレントディレクトリを移動し、以下のコマンドを実行

$ phpize
$ ./configure --with-php-config=/Users/{username}/.phpenv/versions/5.6.4/bin
php-config --with-mecab=/usr/local/bin/mecab-config
$ make
$ make test
$ make install

これで以下のようなメッセージが表示されればOKです。

Installing shared extensions: /Users/{username}/.phpenv/versions/5.6.4/lib/php/extensions/

上記のディレクトリにmecab.soがあると思います。
このモジュールをPHPに読み込ませます。

# ~/.phpenv/versions/5.6.4/etc/conf.dに mecab.ini を作成します(もしくはコピーしてリネームで)。

$ vim mecab.ini
# 以下を記述
; Enable dbase extension module
extension=mecab.so

# apache 再起動
$ sudo apachectl restart

# 以下のコマンドで確認。mecabが読み込まれていればOK
$ php -i |grep -i "mecab"
$ php -m | grep mecab

一応phpinfoでも確認してみると良いと思います。
これでPHPで使えるようになったのでテストしてみましょう。

<?php
$result = mecab_split("テスト用文字列です");
print_r($result);
?>

あるいは以下のコードでも確認できるみたいです。

<?php
$mecab = new MeCab_Tagger();
$nodes = $mecab->parseToNode("テスト用文字列です");
foreach($nodes as $node){
    echo $node->getId()."<br />";
    echo $node->getSurface()."<br />";
    echo $node->getStat()."<br />";
    echo $node->getLength()."<br />";
    echo $node->getFeature()."<br />";
}
?>

以上です。
まぁ簡単でしたね!(モジュールがPHPに読み込まれなくて詰まりましたが・・・)
それでは。

参考にさせていただいたサイト

Ruby - Macにmecabインストール - Qiita

かいはつにっき

恵比寿のベンチャーで働くエンジニアのメモ帳|【mecab】mecabにnaist-jdic辞書を入れて単語を追加してみる

ローカルでCakePHPを動かしてmecab_splitを使ってみる(mac)|SystemTelescope

PHPでMecab利用 - リハビリ日記

さくらVPSにMeCabをインストールしてPHPから利用(CentOS6.4+PHP5.3.3/5.4.2) - 青春B■雑記blog‐青酸カリ カラメルシロップ味‐

HomebrewでApache、PHP、MySQL、phpMyAdmin追加

こんばんは。
ローカルでの開発環境として今までMAMPを使っていましたが、MacにはMAMPを使わずともApachePHPなどがあるので、どうせならそちらを使いたいと思い、MAMPを使わない環境構築をしてみました。
今回は、ApachePHPMySQLphpMyAdminを使えるようにしました。また、全てHomebrewで管理したかったので、デフォルトでPHPなどは入っているんですがそれは使わずにbrewでインストールしました。

PHPに関しては、PHP複数バージョンを入れられるphpenvというものがありますのでそれを使いました。
前にrbenvやpyenvなどを入れましたが(こちら)、その時みたいに結構簡単にできるかなーと思ったら意外と詰まってしまいました。

MySQLのインストール

まずはMySQLのインストールです。rootのパスワードまで決定しちゃいます。
やり方は以下の通り。

$ brew install mysql

$ mysql.server start

$ mysqladmin -u root password 'new-pass'

# (最初のrootパス以外は全てそのままでOK)
$ mysql_secure_installation

$ mysql.server stop

Apacheのインストールと設定

Apacheのインストール

次にApacheのインストールです。
ここではApache2.4をインストールしたいと思います。

$ brew tap homebrew/dupes
$ brew tap homebrew/apache

$ brew search httpd

# おまじないです。これやったほうがいいみたい。
$ sw_vers -productVersion | grep -E '^10\.([89]|10)' >/dev/null && bash -c "[ -d /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain ] && sudo -u $(ls -ld /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain | awk '{print $3}') bash -c 'ln -vs XcodeDefault.xctoolchain /Applications/Xcode.app/Contents/Developer/Toolchains/OSX$(sw_vers -productVersion).xctoolchain' || sudo bash -c 'mkdir -vp /Applications/Xcode.app/Contents/Developer/Toolchains/OSX$(sw_vers -productVersion).xctoolchain/usr && for i in bin include lib libexec share; do ln -s /usr/${i} /Applications/Xcode.app/Contents/Developer/Toolchains/OSX$(sw_vers -productVersion).xctoolchain/usr/${i}; done'"

$ brew install httpd24

# 以下のようになってればOKです
$ which apachectl
/usr/local/bin/apachectl

Apacheの設定

インストールが終わったら設定を変更します。
/usr/local/etc/apache2/2.4/httpd.conf

# 使用するポート番号の設定
# デフォルトで8080かもしれないが、今回は80にする
Listen 80

# ServerNameの設定
# 上でポート番号を80にしたので、ここも80にする
ServerName localhost:80

# DocumentRootの変更
DocumentRoot "/Users/ユーザ名/htdocs"

# .htaccessでURLのoverwriteを許可 (<Directory "/Users/furudate/htdocs">内)
AllowOverride All

# index.phpを使えるように修正 (IfModule dir_module内)
DirectoryIndex index.php index.html

# .phpを実行できるようにMIMEタイプを追加 (IfModule mime_module内)
AddType application/x-httpd-php .php

# バーチャルホストを利用できるようにコメントアウトを解除
Include /usr/local/etc/apache2/2.2/extra/httpd-vhosts.conf

バーチャルホストを追加してダミーホストをコメントアウト
/usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf

#
# Use name-based virtual hosting.
#
# NameVirtualHost *:80 (Apache2.4からはこの記述いらないみたい。一応コメントとして残しておきます)

<VirtualHost *:80>
    ServerName sample.local
    DocumentRoot /Users/ユーザ名/htdocs
    DirectoryIndex index.php index.html

    <Directory "/Users/ユーザ名/htdocs">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
#<VirtualHost *:8080>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot "/usr/local/opt/httpd22/docs/dummy-host.example.com"
#    ServerName dummy-host.example.com
#    ServerAlias www.dummy-host.example.com
#    ErrorLog "/usr/local/var/log/apache2/dummy-host.example.com-error_log"
#    CustomLog "/usr/local/var/log/apache2/dummy-host.example.com-access_log" common
#</VirtualHost>

#<VirtualHost *:8080>
#    ServerAdmin webmaster@dummy-host2.example.com
#    DocumentRoot "/usr/local/opt/httpd22/docs/dummy-host2.example.com"
#    ServerName dummy-host2.example.com
#    ErrorLog "/usr/local/var/log/apache2/dummy-host2.example.com-error_log"
#    CustomLog "/usr/local/var/log/apache2/dummy-host2.example.com-access_log" common
#</VirtualHost>

ここまでで、ドキュメントルート(上記の場合は /User/ユーザ名/htdocs)に設定したディレクトリにindex.htmlを置き、localhostにアクセスしてみて中身が見れたらOKです。
もし見れない場合は以下のコマンドでApacheの状態を見てみましょう。恐らくエラー文が出るはずです。

$ apachectl -t

phpenvを用いたPHPのインストール

次にPHPのインストールです。
先程も言ったように、ここではphpenvを使ってPHPを管理します。
まずはphpenvを使えるようにします。

$ brew install phpenv

phpenvをインストールしたら、パスを追加します。
が、rbenvをインストールしている場合は、共存させるようにパスを設定しなければなりません。
ただパスを追加すると、rbenvがphpenvと一緒にインストールされたものに置き換わってしまいます。
以下ではrbenvやpyenvとかも含めたパスの設定です。大事なのは順番です。

.bashrc

eval "$(pyenv init -)"
eval "$(plenv init -)"
export PATH=$PATH:$HOME/.phpenv/bin
eval "$(phpenv init -)"
eval "$(rbenv init -)"

.phpenv/bin を .rbenvのパスより後に設定します。
以下のコマンドで確認しましょう。

# PATHが以下のような順番になってればOK
$ echo $PATH
/Users/username/.rbenv/shims:/Users/username/.phpenv/shims:/Users/username/.plenv/shims:~(省略):/Users/username/.phpenv/bin

# rbenv, phpenvの場所を確認。以下のようになってればOK
$ which rbenv
/usr/local/bin/rbenv

$ which phpenv
/Users/username/.phpenv/bin/phpenv

これでphpenvが使えるようになりました。

次に、php-buildを入れます。
php-buildはbrewにもありますが、ここではgitからcloneしてきてプラグインとして追加します。
こうすることで、rbenvなどと同じようにphpenv installコマンドが使えるようになります。
brewでインストールした場合は php-build コマンドでインストールする必要があります。

$ cd ~/.phpenv
$ git clone git://github.com/CHH/php-build.git $HOME/.phpenv/plugins/php-build

これでphpenvコマンドをrbenvなどと同じように使えるようになりました。

いよいよPHPをインストールしていきます。
しかしその前に、PHPをインストールする際にApacehモジュールも生成するようにデフォルト設定を変更します。

$ vim ~/.phpenv/plugins/php-build/share/php-build/default_configure_options

# 以下の行を追加
--with-apxs2=/usr/local/bin/apxs

一応apxsのパスはwhichコマンドで調べて下さい。
これでPHPをインストールする毎に /usr/local/Cellar/httpd24/2.4.10/libexec/ に libphp5.so が追加されます。
ちなみに、色々ググるhttpd.confをいじっているものもありますが、今回の場合は上記の記述をしていれば勝手に追記されるので不要です。

さて、やっとインストールです。

# インストール可能なバージョン一覧
$ phpenv version -l

# 今回は5.6.4をインストール
$ phpenv install 5.6.4

インストールは結構長いです。
また、以下のようなエラーが出る場合はbrewで足りないパッケージをインストールします。

# configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
$ brew instal re2c

 # configure: error: jpeglib.h not found.
$ brew install libjpeg

 # configure: error: png.h not found.
$ brew install libpng

 # configure: error: mcrypt.h not found. Please reinstall libmcrypt.
$ brew reinstall libmcrypt

エラーを消し、インストールが終わったら確認します。

$ phpenv versions
* system
  5.6.4 (set by /Users/furudate/.phpenv/version)
$ phpenv global 5.6.4
$ phpenv rehash

$ php -v
PHP 5.6.4 (cli) (built: Jan 16 2015 02:05:44) 

これでやっとphpenvからPHPがインストールできました。
ここまでが本当長かった・・・

phpenv-apache-versionのインストール

次にApachePHPモジュールの切り替えをしてくれるスクリプトをインストールします。

$ git clone https://github.com/garamon/phpenv-apache-version ~/.phpenv/plugins/phpenv-apache-version

phpenv-apache-version は ~/.phpenv/versions/{version} 直下にある libphp5.so をコピーしてApacheモジュールとして読み込ませます。
そのため、PHPのインストールの際に生成されたlibphp5.soを上記のパスに移動しておく必要があります。

よって、phpenvで各バージョンをインストールした際には、以下のようにApachePHPモジュールを移動します(5.6.4の場合)。

$ mv /usr/local/Cellar/httpd24/2.4.10/libexec/libphp5.so ~/.phpenv/versions/5.6.4/

その後、以下のコマンドを実行すると、libphp5.soがコピーされ、Apacheが再起動されます。

$ phpenv apache-version {version}

しかし、上記のコマンドを実行しようとすると以下のエラーが出ると思います。

Error: No available formula for httpd 
Sorry your OS is not supported.

これはhttpdっていうformulaがないですよって意味ですが、今はhttpdではなくhttpd22かhttpd24となっているため、このようなエラーが出ます。(対応されてないようです)
そこで、スクリプトを直接いじって対応させちゃいます。

$ cd ~/.phpenv/plugins/phpenv-apache-version/bin/
$ cp -p rbenv-apache-version rbenv-apache-version.old
$ vim rbenv-apache-version

# 23行目らへんを以下のように変更
if command -v brew >/dev/null; then
  if [ -d "$(brew --prefix httpd24)" ]; then
    PHPENV_APACHE_MODULE_PATH="$(brew --prefix httpd24)/libexec"
  elif [ -d "$(brew --prefix httpd22)" ]; then
    PHPENV_APACHE_MODULE_PATH="$(brew --prefix httpd22)/libexec"
fi

if文でhttpd24かhttpd22のどちらかに対応させるようにしています。
これでスクリプトを実行すれば、PHPモジュールが読み込まれるようになると思います!

ここまでで apachectl restart でApacheを再起動しておきましょう。
その後、phpinfoなどを見てみるとphpenvでインストールしたPHPが読み込まれているはずです!!

なお、phpinfoを見てみると、PHPのtimezoneがEuropaとなっていると思うので、以下のようにします。

$ vim .phpenv/versions/5.6.4/etc/php.ini

# timezoneのところを以下のように変更
date.timezone = Asia/Tokyo

# apacheの再起動
$ sudo apachectl restart

Composerのインストール

PHP関連で、ついでにComposerもインストールしちゃいます

$ brew search composer
# このオプション付けないとPHPをbrewでインストールしろって言われます
$ brew install composer --ignore-dependencies

phpMyAdminのインストール

最後にphpMyAdminのインストールです。

$ brew install phpmyadmin


$ vim /usr/local/etc/apache2/2.4/httpd.conf

# httpd.confに以下を追加
Alias /phpmyadmin /usr/local/share/phpmyadmin
Alias /phpMyAdmin /usr/local/share/phpmyadmin
<Directory /usr/local/share/phpmyadmin/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted # この行がないと403エラーになる
</Directory>

続いて以下のファイルをいじる。 /usr/local/Cellar/phpmyadmin/4.3.4/share/phpmyadmin/config.ing.php ない場合は config.sample.inc.php をリネームしてコピー

$cfg['blowfish_secret'] = '任意の文字列'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';

/* Server parameters */
$cfg['Servers'][$i]['host'] = '127.0.0.1';

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
(中略)
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';

以上を終えて、http://localhost/phpmyadmin を開くとphpmyadminのTOPページが表示されるはず!

なお、下にスクロールするとエラー文が表示されていますが、このエラー文に関してはこちらのサイトにある通りのことをすれば消えました。

今回は以上です。
これでやっと環境が整いました。長かったです・・・
それでは!

参考にさせていただいたサイト

OS X YosemiteにHomebrew + DropboxでPHP環境構築 〜Apache, PHP, MySQL, ComposerをインストールしてFuelPHPの設定まで - Qiita

Mac OS X Mountain LionでMAMP環境を構築する - Qiita

phpenv + php-build + composer で開発環境作ってみた | 69log

Homebrew/homebrew-apache · GitHub

CHH/php-build · GitHub

Homebrewでphp-build及びphpenvインストール後に5.5系をインストールするための手順 - Qiita

Install: Install phpMyAdmin on 10.8.x

【Excel】条件付き書式でセル内の文字列が改行されているかを判断する

こんばんは。
今回はエクセルについての豆知識です。

エクセルで最近条件付き書式を使って強調表示とかをよく使います。
その際に、”セル内の文字列が改行されている場合セルの書式を変更する”というような条件付き書式を設定したかったのですが、ここで結構詰まったのでメモしておきます。

なお、私が使っているのはOffice2011 for Macです。

エクセルの改行コード

色々ググってみると、エクセルの場合改行コードはCHAR(10)で表せることが分かりました。
しかし、SEARCH関数とか使ってやってみてもうまくできず・・・
そこでもう少し調べてみると、Mac版の場合はCHAR(13)で表すということが分かりました。
やっぱりWindowsMacで違うんですね...(そりゃそうですけど)

ということで、エクセルの改行コードは以下で表せることが分かりました。

これを使って条件付き書式をしたいと思います。

条件付き書式の設定

ここでは”条件付き書式をするセル内の文字列に改行コードが含まれている場合、書式を変更する”という処理をします。
やり方は以下の手順になります.

  1. 条件付き書式で、セルの強調表示ルールを選びます。
  2. 「数式を利用して、書式設定するセルを決定」を選びます。
  3. 以下の数式を使います(A1のセルに文字列があるとします)

=IF(ISERROR(SEARCH(CHAR(13),$A$1)),0, 1)>0

以上です。Windowsの場合はCHAR(10)とします。
また、複数のセルにフィルしたい場合は絶対参照を外します。

解説

一応以下細かめな解説です。

使っている関数はSEARCH, ISERROR, IFの3つです。

  • SEARCH関数

SEARCH関数は検索対象の文字列が含まれている位置を返す関数です。それを使い、改行コードが含まれている位置を返しています(含まれていない場合はエラーとなります)。

  • ISERROR関数

ISERROR関数はエラー判定の関数です。エラーの場合はTRUE, そうじゃない場合はFALSEを返します。
よって、改行コードが含まれている場合はエラーではないのでFALSE、改行コードが含まれていない場合はSEARCH関数がエラーとなるのでTRUEを返します。

  • IF関数

最後に、IF関数でISERRORがTRUEの場合は0、FALSEの場合は1を返すようにし、IFが0より大きい値を返す場合、セルの書式を変更するという処理にしています。

以上です。
それでは。

参考にさせていただいたサイト

Office TANAKA - Excel Tips[セル内改行の前後で分割する]

Homebrewで入れたものまとめ

こんにちは。

今回はHomebrewで入れたものについてまとめたいと思います。自分のメモ用です。
随時更新すると思います。

インストールしたもの一覧

Ruby, Perl, Pythonらへんについてはこの記事で詳しく書いてます。

  • reattach-to-user-namespace
  • tmux

tmux周りについてはこの記事で。

  • the_silver_searcher
  • jq

the_silver_searcherはagコマンド使えるようにするためです。.vimrcでも使っています
ag, jqコマンドについてはこちらの記事で。

Homebrewで入れたGitにシンボリックリンク

Homebrewでは、インストールしたパッケージへのへのシンボリックリンクを/usr/localに作るようにしています。
しかし、Homebrewでインストールしたものの中には、シンボリックリンクが作られないものがあります。
opensslやreadline、sqlite3、gitなどがそうですね。

これらは keg-only なパッケージなのですが、つまりOS既存のものとバッティングしてしまうものです。
これらのパッケージは自動ではシンボリックリンクが作られないので、 brew install したあとに brew link packagename --force とすることでシンボリックリンクを作ることが出来ます。

なので、brew install してもインストールしたバージョンに変わらない場合や which コマンドで /usr/bin の中を参照したりしてしまっている場合は、 brew link してみると良いです。

しかし、gitの場合は brew link してもインストールしたバージョンになりません。
which コマンドで見ても以下のようになると思います。

$ which git
/usr/bin/git

これに対応するためには /etc/paths を vim 等で開いて編集します。sudoコマンド忘れずに。

/etc/paths

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/usr/local/bin # この行を /usr/bin の上に持ってくる(優先度の変更)
/usr/bin
/bin
/usr/sbin
/sbin

以上を行い、 git --version や which git をやるとうまく反映されていることが確認出来ると思います。

$ which git
/usr/local/bin/git

以上です。 それでは。

参考にさせていただいたサイト

積んメモ: keg-onlyなパッケージはシンボリックリンクが作られない