phpenvで利用するPHPバージョンを管理

2019年9月4日水曜日

docker docker-compose php-build phpenv

t f B! P L

Web開発をする際は基本的にdocker-composeを利用するようにしたのですが、
ゲストOSで生成した(php artisan make:controller TestController)ファイルが権限の問題でホスト側で編集不可になる問題が発生した。
いちいち権限を変えるのも面倒なので、ホストOSにもphpを導入することにした。
単純にphpを導入すると、今後別プロジェクトに支障がありそうなので、phpenvでPHPのバージョン管理することにした。

インストール

1. phpenvをダウンロード&インストール

$ git clone https://github.com/madumlao/phpenv.git ~/.phpenv

2. php-buildをダウンロード&インストール

$ git clone https://github.com/php-build/php-build.git ~/.phpenv/plugins/php-build

3. 必要ライブラリを導入

$ sudo apt install -y g++ \
    libxml2 \
    libxml2-dev \
    libssl-dev \
    pkg-config \
    zlib1g-dev \
    libbz2-dev \
    libjpeg-dev \
    libpng-dev \
    libreadline-dev \
    libtidy-dev \
    libcurl4-openssl-dev \
    libmcrypt-dev \
    libxslt1.1 \
    libxslt-dev
(当方の環境にすでにインストール済みのライブラリがある場合、記載に不足あるかもしれません。)

4. .bash_profile の編集

$ vi ~/.bash_profile

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

5. .bash_profileを読み込む

$ source ~/.bash_profile

phpenvの設定

1. インストール可能なPHPバージョンを確認する

$ phpenv install -l

2. PHP7.3.0をインストールする

$ phpenv install 7.3.0
$ phpenv rehash

3. インストール済みのバージョンを確認する

$ phpenv versions
  7.3.0

4. 試しにPHPのバージョンを確認する

まだ存在しないことが確認できた。

$ php -v
phpenv: php: command not found

The `php' command exists in these PHP versions:
  7.3.0

5. カレントディレクトリで利用するバージョン指定 (グローバルで利用するバージョンを指定)

$ phpenv local 7.3.0 ($ phpenv global 7.3.0)

6. 再度PHPバージョンを確認する

$ php -v
PHP 7.3.0 (cli) (built: Sep  4 2019 08:52:21) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.0, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans

7. 試しに違うディレクトリ配下でPHPのバージョンを確認

$ php -v
phpenv: php: command not found

The `php' command exists in these PHP versions:
  7.3.0

導入完了!

注目の投稿

composer.lockはGit管理すべき話

# 背景 # 結論 # composer installとcomposer updateの違い # 背景 仕事では主にLaravelを使用して開発を行っている。 ソースコードはGitでバージョン管理を行い、compose...

プロフィール

7年ほど中小企業でSIerとして働いていました。 現在は個人事業主としてPHP, Javascriptの企業案件をメインに受けています。 最近はポケモンカードの開封にはまっています。

アーカイブ

このブログを検索

QooQ