Help us understand the problem. What is going on with this article?

phpenvのコマンドとphpenv-apache-versionの切り替えコマンド

More than 1 year has passed since last update.

忘れるので、メモ書き。おまけは、導入時にこけたのでそれのメモ書きです。

導入時に参考にしたサイト
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を新しく入れたときにLoadModulelibphp5.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

まぁ何というかちゃんと動くようになって嬉しいね(・∀・)

miosee
WordPressの構築がメインです。最近はFuelPHPも覚えてます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away