カテゴリー : mac

MacにMariaDB入れようと思ってくっそハマった件

そもそもMariaDBだろうがMySQLだろうがbrewで簡単にいくでしょ、と思ったら
とんでもなくめんどくさかった。

$ brew update

この時点でまずくっそめんどくさかった。
エラー出まくり。
たぶんOSのメジャーアップデートをしたのが原因っぽかった。
この時点で発狂して、brew自体を入れ直す。

$ /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)”
$ /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
$ brew update

これでとりあえず進める。

$ brew remove mysql
$ brew install mariadb
$ unset TMPDIR
$ mysql_install_db

はいここでまたエラー。
mysqlを消した時に残っているdataディレクトリやらmy.cnfやらが邪魔をする。

$ sudo rm -rf /usr/local/var/mysql
$ rm -f /etc/my.cnf
$ unset TMPDIR
$ mysql_install_db

これでやっとできた。

$ mysql.server start

無事に起動。
ついでにセキュリティ対策も。

$ mysql_secure_installation

最後に起動時に自動起動するように設定。

$ cp /usr/local/Cellar/mariadb/10.1.11/homebrew.mxcl.mariadb.plist ~/Library/LaunchAgents/

ここまでくるのに数時間…いやぁつらかった。
PHP7を入れるのは明日にしようorz

久しぶりに開発環境を触ってみたら…

いやぁハマったハマった(汗

開発環境(macbook)のmysqlが自動でアップデートされていたようで
(homebrewの設定どうしてあったか覚えてないなぁ…まぁいいや)

その関連でmysql_upgradeかけずに動かしていたわけですが…

エラーでまくってました。
直そうとしたらmysqlが起動もしなくなりました。

原因はエラーログの所有者が勝手に_mysqlに変わっていたことだったので
さっさと自分に所有者を変更して再起動で助かりました。

mysql_upgradeをかけてwarningを1つずつつぶしていますが…

timestampの変更やばいですね。
結構手軽に使っていたので、意識してcreate文を作らないと。

また勝手に自動更新されて上手く動かなくなるパターンなのが見え見えなのでw

簡単に画面遷移図が作りたい。

ということで模索開始。

blockdiagなるものを入れてみることに。
公式?:http://blockdiag.com/ja/blockdiag/introduction.html

前提条件としてpython2.4以降(3.xは未対応)とか色々あるらしい。
とりあえず当方の環境ではpythonから入れないといけないが、
下記でうまくいった…はず。
※色々あって当方はfreetype2を自力で入れているから楽だったのです。
freetype2を入れてない人はbrewのformulaを書いてfreetype2を入れるのが
良いのかもしれません。

brew install python
sudo easy_install pil
sudo easy_install blockdiag

で、インストールが終わったらテキスト形式で簡単に記載して、

/usr/local/share/python/blockdiag sample.diag

とかやってやれば、simple.diagと同じパスにsimple.pngとして画面遷移図になってくれるみたい。

画面遷移図の書き方も非常に簡単で、

blockdiag{ a -> b;}

みたいな書き方をするだけ。
書式にかなり惹かれた。

あとは、毎回/usr/local/share/python/blockdiagとか書くのが面倒なので、
.bashrcに下記のように追記してやって、ターミナル再起動すれば話が早くなる。

# for python(homebrew)
export PATH=/usr/local/share/python:$PATH

これで、さっきの長いコマンドが

blockdiag sample.diag

で動くようになった。

macでPHP開発環境をつくる 細かい設定

色々とモジュールやら何やらは入ったが、じゃあ実際開発…となると
更に色々設定しないといけないので、そのあたり。

・hosts
hostsは

sudo vi /private/etc/hosts

で書き加えた後に

sudo dscacheutil -flushcache

でdnsのcacheをクリア。
その後ping飛ばして、実際に動くかどうかチェックという感じでしょうか。

macでmkpasswd

brew install expect

こんだけ。
私的には、
mkpasswd -2 -l 12
とかって感じでよく使ってた記憶がありますね。

eclipseが起動しなくなった

winをmacに移行したり、色々やった弊害なのか、
それとも開発環境を急に膨らませた弊害なのか、
eclipseが起動しなくなった。

.snapも見つからなかったので、潔くworkspace内の.metadataを削除して
起動するようになった
…というものの、プロジェクトを全てインポートし直さないといけなかったが。

とりあえず痛手になる程ではなかったのでひと安心。

windowsのノートPCを卒業する

今までは、ノートPC2台を使用していたんだが、
ついに1台に統合する日がやってきた…という所でしょうか。

…まぁ、まだ作業途中ですが。

今までは
【Windows7】hp ProBook 4515s
【Mac os X】MacBook Pro (15-inch ,Mid 2012)
の2台を使用していたのだが、
「Parallels Desktop」なるものを使用すれば、
Windows環境をそっくりそのままMacに移行できる。
…というか、できた。

Parallels Desktop
http://trial.parallels.com/?terr=jp&lang=jp

要は仮想PCですね。
でもこれ、むっちゃ凄いです。
何が凄いって、既に稼働しているWindows環境をそのまま持ってこれる。

これをインストールして、Windows側には
Parallels Transporter Agent for Windowsをインストールする。
ココの下のほうにある)

で、後はMacはParallels Desktopを、WinはParallels Transporter Agentを起動して
Windowsをそっくりそのままmacに移動させてくる。

…とは言っても、むちゃむちゃ時間かかります。
うちの環境では16時間くらいかかりました。

そして、入れた後にバーチャルPCがネットに繋がらなくて少し苦労しました。
ここに解決方法があったので、手順通りにデバイスマネージャからドライバ削除をして
ちゃんとネットに繋がりました。

で、ネットに繋がると同時にMac側にも恩恵が!
MacのDock内に「Windows 7 Applications」とか出て、一発でWindowsのアプリが起動できます。
仮想PCが起動していない場合、仮想PCの立ち上げから自動でやってくれます。

仮想Windows7のライセンス認証も普通に通ったし、
今の所なんにも問題なし!

これで、ProBook 4515sには完全なバックアップ機として暫く眠ってもらえるようになりました。
そして完全にメイン機はMacBook Proになりましたね。

…必要になったらMacBook Proの中で疑似ProBook 4515sを動かすんですけどね。

いやぁ、BootCamp使うか?とか色々考えていたんですが。
多分こっちが正解だと思う。早めに正規版に上げたいなぁ。

macでPHP開発環境構築 おまけ(apache編)

Homebrewでapacheを入れたは良いが、virtualhost系で困ったので追記。

eclipseのworkspaceはDocument内。
ということで、例えばexample.comの公開ディレクトリを
/Users/XXXXXX/Documents/workspace/YYYYYYYYYYYY/trunk
にしたかったんだけど。

パーミッションの関連でうまく動いてくれない。
かといって、パーミッション側をいじるのも面倒。

ということで、httpd.confをいじって回避することにした。
apacheを動かすUserとGroupを
User XXXXXX
Group Staff
としてやった。

これで見れるので、とりあえず良しとしようかと。
また何か問題が出たら、そのときに考えようと思う。
その時はeclipseのワークスペース設置箇所から変更だな。

macでPHP開発環境構築 完結編

やっとこさ、実用レベルのPHPが入れられそうなので。

ここまでの経緯は、macでPHP開発環境の構築macでPHP環境構築の続き。を参照。

2013/4/3段階の最新版のPHPは5.4.13と5.3.23。
php-buildには記述がないバージョンなので、それぞれ記述する。

/usr/local/share/php-build/definitions/5.4.13

install_package “http://php.net/distributions/php-5.4.13.tar.bz2”
install_pyrus
install_xdebug_master

/usr/local/share/php-build/definitions/5.3.23

install_package “http://php.net/distributions/php-5.3.23.tar.bz2”
install_pyrus
install_xdebug_master

こんな感じ。
いずれはここからPHP5.1.6と5.2.17も入れたいが、とりあえず今は5.3系と5.4系だけで。

さて、ここで少し脱線。
EC-CUBEを入れる前提でやっているのだが、このまま入れるとPHPからfreetype2が使えない。
freetype2自体はXCodeにも入ってるみたいだけど、何か変更があると嫌なのでHomebrewで入れて、
そこにパスを通してPHPのconfigureを構築しようと思う。

XCodeで入れるって人はここを省略して下へ…。

freetype2をHomebrewで入れる方法はこちらを参照。

/usr/local/Library/Formula/freetype2.rb

require 'formula'

class Freetype2 <Formula
  url 'http://sourceforge.net/projects/freetype/files/freetype2/2.4.4/freetype-2.4.4.tar.gz/download'
  homepage 'http://freetype.sourceforge.net/index2.html'
  md5 '9273efacffb683483e58a9e113efae9f'
  version '2.4.4'

  # depends_on 'cmake'

  def install
    system "./configure", "--disable-debug", "--disable-dependency-tracking",
                          "--prefix=#{prefix}"
    # system "cmake . #{std_cmake_parameters}"
    system "make install"
  end
end

上記を設置してから、

brew install freetype2

で完了。
次はPHPのconfigureを書きます。

/usr/local/share/php-build/default_configure_options

–without-pear
–with-gd
–enable-sockets
–with-jpeg-dir=/usr
–with-png-dir=/usr
–enable-exif
–enable-zip
–with-zlib
–with-zlib-dir=/usr
–with-kerberos
–with-openssl
–with-mcrypt=/usr
–enable-soap
–enable-xmlreader
–with-xsl
–enable-ftp
–enable-cgi
–with-curl=/usr
–with-tidy
–with-xmlrpc
–enable-sysvsem
–enable-sysvshm
–enable-shmop
–with-mysql=mysqlnd
–with-mysqli=mysqlnd
–with-pdo-mysql=mysqlnd
–with-pdo-sqlite
–enable-pcntl
–with-readline
–enable-mbstring
–disable-debug
–with-apxs2=/usr/local/sbin/apxs
–with-freetype-dir=/usr/local/include/freetype2

うちの場合はこんな感じ。
freetype2をXCodeのものを使う場合は、最終行が

–with-freetype-dir=/opt/X11/include/freetype2

って感じになるのではないかと。

実際に追記したのは下の2行だけなので、他は必要があれば書き換える感じですかね。

ではインストール。
PHP5.4.13から。

php-build 5.4.13 ~/.phpenv/versions/5.4.13
mv /usr/local/Cellar/httpd/2.2.23/libexec/libphp5.so ~/.phpenv/versions/5.4.13

これでOK。
続いてPHP5.3.23。

php-build 5.3.23 ~/.phpenv/versions/5.3.23
mv /usr/local/Cellar/httpd/2.2.23/libexec/libphp5.so ~/.phpenv/versions/5.3.23

これでOK。
phpenv versionsでちゃんと入ってるか確認して、
phpenv global 5.4.13とかやってCLI側を切り替えて、
php -vでCLI側のバージョン切り替わるか確認して、
phpenv apache-version 5.4.13とかやってapache側を切り替えて、
phpinfo.phpとか作ってapache側のバージョン切り替わるか確認して。

…確認作業についてはサラっと流しました。
細かい確認としては、phpinfoを見る時にGD内のFreeType Support欄があるかどうか、ですかね。

やっとここまで来ました…。
apacheの設定とかも必要ですが、とりあえずPHPに関しては相当カスタマイズできる環境ができたので
うれしい限りです。

なにせ、同じPHPのバージョンでもconfigure optionを変えた版、とかも作って置いておけますしね。
phpenv + php-build、最高です。

macでPHP環境構築の続き。

以前の記述の追加で。

こことかこことかここを参考にさせて頂いて、macで複数バージョンのPHPを入れるということでがんばってみた。

◆事前準備

brew tap Homebrew/dupes
brew tap josegonzalez/php

◆ついでなのでapacheもbrewから入れておく

brew install httpd

うちの環境ではhttpd.confは/usr/local/etc/apache2/httpd.confにありました。

◆phpenv

brew install –HEAD phpenv

その後、.bashrcに

# phpenv
export PATH=”$HOME/.phpenv/bin:$PATH”
eval “$(phpenv init -)”

と追記して、

source ~/.bashrc

と叩いて読み込み直しして完了、だと思う。

◆php-build

brew install php-build

# php-buildのPATHを追加

$ vi ~/.bashrc
export PATH=/usr/local/bin:$PATH
# 設定したPATHの設定を有効にする
$ source ~/.bashrc

上記を入れて、その後php-buildから各バージョンのPHPを入れる。

php-build X.X.X ~/.phpenv/versions/X.X.X
mv (生成したlibphp5.soのパス) ~/.phpenv/versions/X.X.X

っていう感じで。

php-build –definitions
で出てくるリストは、
/usr/local/share/php-build/definitions
内に追記すれば自分で追加できる。
最新のものとか、ベータ版とか入れる時には自分でここに入れると良いかも。

で、最終的にいろいろやってインストールできたら、

phpenv versions

でインストールされているものが確認できて、

phpenv global X.X.X

でCLI側のPHPが切り替えできる。
CLI側で使用しているPHPのバージョンを調べるのは簡単で、

php -v

って叩けば出てきてくれる。

けど、apache側は上記では切り替えできないので、それ用のスクリプトを用意する。

~/.phpenv/libexec/rbenv-apache-version

#!/usr/bin/env bash

set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
  echo system
  exec rbenv-versions --bare
fi
RBENV_VERSION="$1"
RBENV_ON_FILE="${RBENV_ROOT}/versions"
APACHE_ROOT="/usr/local/Cellar/httpd/2.2.22"
APACHE_MODULE_PATH="${APACHE_ROOT}/libexec"
# Make sure the specified version is installed.
RBENV_PREFIX_PATH="${RBENV_ROOT}/versions/${RBENV_VERSION}"
if [ ! -d "$RBENV_PREFIX_PATH" ]; then
  echo "rbenv: version \`${RBENV_VERSION}' not installed" >&2
  exit 1
fi
PHP_MODULE_PATH="$RBENV_PREFIX_PATH/libphp5.so"
if [ ! -f "$PHP_MODULE_PATH" ]; then
  echo "apache module not found \'${PHP_MODULE_PATH}'" >&2
  exit 1
fi
if [ ! -d "$APACHE_MODULE_PATH" ]; then
  echo "Directory not found \'${APACHE_MODULE_PATH}'" >&2
  exit 1
fi
echo "copy ${PHP_MODULE_PATH} to ${APACHE_MODULE_PATH}"
cp "$PHP_MODULE_PATH" "$APACHE_MODULE_PATH"
echo "Restarting apache..."
sudo apachectl restart

上記ファイル生成後、

chmod 755 /Users/***/.phpenv/libexec/rbenv-apache-version

で実行権限をつけてやる。
上記が終われば、
phpenv apache-version X.X.X
でapache側のPHPが切り替えできる。
apacheの再起動がかかるのと、sudoするからパスワードを聞かれることがあるのはお忘れなく。

とりあえず、入れられること、切り替えができることまでは確認できたので
本当に入れたいバージョンやら、入れたいオプションやらを追求して
改めて開発環境が整うのは…いつだろw