忘れるので、メモ書き。おまけは、導入時にこけたのでそれのメモ書きです。
導入時に参考にしたサイト
HomebrewでApache、PHP、MySQL、phpMyAdmin追加 - Furudateのブログ
phpenvのコマンド
インストールできるバージョンの一覧表示
$ phpenv install -l
インストールされているバージョンの表示
$ phpenv versions
* system (set by /Users/{ユーザー名}/.phpenv/version)
5.6.4
# * 印が現在設定されているPHPのバージョンです。
# systemであればOSに搭載されてるバージョンを指す
# Yosemite 10.10.4の場合、PHP 5.5.24となる
インストール
$ phpenv install {version}
# 例えば 5.4.27をインストールしたい場合
$ phpenv install 5.4.27
クライアント側のPHPバージョンを切り替える
$ phpenv global 5.4.27
# hashの更新を行う
$ phpenv rehash
# 設定ができた場合は確認をする
$ php -v
PHP 5.4.27 (cli) 〜中略
ローカル側のPHPバージョンを切り替える
phpenvでのローカルは、今いるディレクトリの場所だけ切り替える感じです。
# 切り替えたいディレクトリまで移動する
$ cd /var/www/project/sample
# バージョン変更
$ phpenv local 5.4.27
# unsetするまで維持するので、global環境のPHPに戻す
$ phpenv local --unset
使用中のShellだけPHPのバージョンを切り替える
iTerm2とかで試してます。
# タブで開いていれば、変更したいタブでコマンド実行
$ phpenv shell 5.4.27
# unsetして、global環境に戻す
$ phpenv shell --unset
phpenv-apache-versionのコマンド
PHPをインストール時に libphp5.so をphpenvのバージョン管理フォルダにコピーしておく必要がある
libphp5.soをコピーする
$ cp /usr/local/opt/httpd22/libexec/libphp5.so ~/.phpenv/versions/5.4.27/
# apacheのバージョンは適宜置き換えてください。
バージョンを切り替える
$ phpenv apache-version {version}
# 例
$ phpenv apache-version 5.4.27
実行後apacheの再起動を行うので、Macの場合はsudoでのパスワードが要求される
おまけ
apache
を新しく入れたときにLoadModule
のlibphp5.so
がエラーで読み込めないというかapacheのシンタックスエラーで凄く悩んだので、忘れないようにメモ。
まぁ原因はあれです。色々わけも分からずやってたら、apxs
のパスが変わっちゃったのに気づかず、php-build
の設定がクライアント側のapxsのままだったという落ちです。
httpd: Syntax error on line 117 of /usr/local/etc/apache2/2.2/httpd.conf: Cannot load /usr/local/Cellar/httpd22/2.2.29/libexec/libphp5.so into server: dlopen(/usr/local/Cellar/httpd22/2.2.29/libexec/libphp5.so, 10): Symbol not found: _ap_unixd_config\n Referenced from: /usr/local/Cellar/httpd22/2.2.29/libexec/libphp5.so\n Expected in: /usr/local/Cellar/httpd22/2.2.29/bin/httpd\n in /usr/local/Cellar/httpd22/2.2.29/libexec/libphp5.so
上記のようなシンタックスエラー吐いてる場合に、php-build
の--with-apxs2
のパスを確認しなおしましょう。
ちなみにエラーの原因は、libphp5.soのmake時にapxs
のパスが違うために起きているためですね。
Symbol not found: _ap_unixd_config
の部分でapacheの場所が参照できなかったんだと思ってます。
なので、which
コマンドでちゃんとパスの確認をして、再度PHPのインストールを実行すればapacheに怒られずにすみます。
$ which apxs
# 結果(apacheを新規インスコしたら以下)
/usr/local/bin/apxs
# クライアントのままだと
/usr/sbin/apxs
まぁ何というかちゃんと動くようになって嬉しいね(・∀・)