私の名前はphpenvです。私は人間向けに設計されており、複数の PHP カスタム ビルド インストールの管理を簡素化するのに役立ちます。
私はもともと、あなたがすでに知っていて愛している両方のプロジェクトの傑出した成果に触発されており、最初のリリースを構築し、さまざまなリリースの管理と作業を簡素化し、次から次へと新しいリリースを構築し続けるのに役立つ PHP 中心の追加機能が多数含まれています。何もなかったかのように。
あなたも私たちと同じように PHP 開発者であり、スクリプトを実行するために最新かつ最新のインタープリタが必要なだけでなく、古いインタープリタが送信されたときにスクリプトがどのように扱われるかを確認する必要もあります。なぜ自分の開発マシンで PHP アプリを実行できないのか疑問に思ったことはありますか?そうですね、開発マシンで PHP を構築するのに連れて行ってもらったときに、その答えを見つけたのです。構成オプションを簡単にカスタマイズしたり、PHP に pecl 拡張機能を構築したり、後で手動で構築したりすることもできます。ローカルの.phpenv
フォルダーに保存されている PHP ソース コード リポジトリから、同じ PHP リリース バージョンのカスタム ビルドを直接構成してインストールします。
phpenv はユーザーごとのディレクトリ~/.phpenv
上で動作します。 phpenv のバージョン名は、 ~/.phpenv/versions
のサブディレクトリに対応します。たとえば、 ~/.phpenv/versions/5.3.8
と~/.phpenv/versions/5.4.0
があるとします。
各バージョンは~/.phpenv/versions/5.4.0/bin/php
や~/.phpenv/versions/5.3.8/bin/pyrus
など、独自のバイナリを含む作業ツリーです。 phpenv は、インストールされているすべてのバージョンの PHP にわたって、そのようなバイナリごとにshim バイナリを作成します。
これらの shim は、 ~/.phpenv/shims
に存在し、使用する PHP バージョンを検出する単純なラッパー スクリプトです。選択したバージョンのディレクトリを$PATH
の先頭に挿入し、対応するバイナリを実行します。
shim アプローチは単純であるため、phpenv を使用するために必要なのは$PATH
内の~/.phpenv/shims
だけであり、バージョンの切り替えが自動的に行われます。
より自動化されたインストールには、phpenv-installer を使用できます。手動によるアプローチを希望する場合は、以下の手順に従ってください。
これにより、phpenv の最新バージョンを使用できるようになり、フォークして変更を上流に戻すことが容易になります。
phpenv を~/.phpenv
にチェックアウトします。
$ git clone [email protected]:phpenv/phpenv.git ~/.phpenv
phpenv
コマンドライン ユーティリティにアクセスするには、 $PATH
に~/.phpenv/bin
を追加します。
$ echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bash_profile
phpenv init をシェルに追加して、shim とオートコンプリートを有効にします。
$ echo 'eval "$(phpenv init -)"' >> ~/.bash_profile
シェルを再起動して、パスの変更を有効にします。これで phpenv の使用を開始できるようになりました。
$ exec $SHELL -l
(オプション) php-build と任意の php をインストールします。 (php-build homeを参照)
$ git clone https://github.com/php-build/php-build $(phpenv root)/plugins/php-build
$ phpenv install [any php version]
(オプション) シムバイナリを再構築します。新しい PHP バイナリをインストールするときは常にこれを行う必要があります。
$ phpenv rehash
上記の手順を使用して phpenv をインストールした場合は、git を使用していつでもインストールをアップグレードできます。
phpenv の最新開発バージョンにアップグレードするには、 git pull
使用します。
$ cd ~/.phpenv
$ git pull
デフォルトでは、php-build は次のように指定されたデフォルトのオプションセットを使用して PHP をコンパイルします。
通常、システム上で PHP を構築する方法を指定する必要がある場合は、 PHP_BUILD_CONFIGURE_OPTS
変数に構成オプションを追加し、 PHP_BUILD_INSTALL_EXTENSION
変数に PHP 拡張機能を追加します。
phpenv アプリケーションを接続する推奨される方法は、php をビルドした後に php-fpm を使用することです。その後、Web サーバーを php-fpm インスタンスに接続するように構成できます。このアプローチでは、php は呼び出し元ユーザーの権限として実行されますが、必ずしも Web サーバーとして実行される必要はありません。
php-fpm は、次のいずれかの方法で起動できます。
~/.phpenv/versions/$VERSION/etc/init.d/php-fpm
を実行する~/.phpenv/versions/$VERSION/etc/systemd/system/php-fpm.service
をインストールすることによりphp-fpm (8)
を実行し、コマンドライン引数を指定します。デフォルトでは、php-fpm には~/.phpenv/versions/$VERSION/etc/php-fpm.conf
の下に設定ファイルが付属しており、実行時にこのファイルが検索されます。これにより、php-fpm が起動時にlocalhost:9000
でリッスンするように設定されます。このファイルを編集または置換することも、 --fpm-config
( -y
) コマンド ライン引数を使用して別の構成ファイルを指定することもできます。
さまざまな Web サーバーを php-fpm に接続する手順:
あるいは、libphp.so Apache 拡張機能をビルドするように php-build を設定することで、引き続き Apache php モジュールを使用することもできます (手順は次のとおりです)。 libphp.so は、Apache によって~/.phpenv/versions/$VERSION/libexec
フォルダーの下に見つかります。このファイルは Apache のLoadModule php5_module
ディレクティブに使用でき、変更時に Apache を再起動する必要があります。
シェル プロファイルの各行が何を行っているかを知る必要がない限り、このセクションはスキップしてください。
phpenv init
シェルに追加のコマンドをロードするという境界線を越える唯一のコマンドです。 phpenv init
実際に行うことは次のとおりです。
シムパスを設定します。これが、phpenv が正しく機能するための唯一の要件です。 ~/.phpenv/shims
$PATH
の前に追加することで、これを手動で行うこともできます。
オートコンプリートをインストールします。これは完全にオプションですが、非常に便利です。 ~/.phpenv/completions/phpenv.bash
ソースすると設定されます。 Zsh ユーザー用の~/.phpenv/completions/phpenv.zsh
もあります。
シムを再ハッシュします。時々、shim ファイルを再構築する必要があります。 init でこれを実行すると、すべてが最新の状態になります。 phpenv rehash
いつでも手動で実行できます。
sh ディスパッチャをインストールします。このビットもオプションですが、phpenv とプラグインが現在のシェルの変数を変更できるようになり、 phpenv shell
ようなコマンドが可能になります。 sh ディスパッチャは、 cd
オーバーライドしたり、シェル プロンプトをハックしたりするようなおかしなことは行いませんが、何らかの理由でphpenv
シェル関数ではなく実際のスクリプトにする必要がある場合は、安全にスキップできます。
phpenv init -
内部で何が起こっているかを正確に確認してください。
git
と同様に、 phpenv
コマンドは最初の引数に基づいてサブコマンドに委譲します。最も一般的なサブコマンドは次のとおりです。
使い方や役立つヘルプを表示します。困ったときはこうしてください(^^)
$ phpenv help
$ phpenv help <subcommand>
php-build は、php をビルドしてインストールする phpenv 互換のプラグインです。 phpenv install を使用できるようにするには、上記のインストール手順のステップ 5 の説明に従って、php-build プラグインをダウンロードしてインストールします。
phpenv install を実行する前に、php のビルドに必要な開発バージョンがシステムにインストールされていることを確認してください。特に、Apache 拡張機能をビルドする場合は、apache2-dev (または OS の同等のもの) がインストールされていることを確認してください。
~/.phpenv/version
ファイルにバージョン名を書き込むことで、すべてのシェルで使用される PHP のグローバル バージョンを設定します。このバージョンは、プロジェクトごとの.phpenv-version
ファイル、またはPHPENV_VERSION
環境変数を設定することによってオーバーライドできます。
$ phpenv global 5.4.0
特別なバージョン名system
phpenv にシステム PHP ( $PATH
検索することで検出されます) を使用するように指示します。
バージョン番号を指定せずに実行すると、 phpenv global
現在設定されているグローバル バージョンを報告します。
現在のディレクトリの.phpenv-version
ファイルにバージョン名を書き込むことで、ローカルのプロジェクトごとの PHP バージョンを設定します。このバージョンはグローバルをオーバーライドし、 PHPENV_VERSION
環境変数を設定するか、 phpenv shell
コマンドを使用してそれ自体をオーバーライドできます。
$ phpenv local 5.3.8
バージョン番号を指定せずに実行すると、 phpenv local
現在設定されているローカル バージョンを報告します。ローカル バージョンの設定を解除することもできます。
$ phpenv local --unset
シェルでPHPENV_VERSION
環境変数を設定することにより、シェル固有の PHP バージョンを設定します。このバージョンは、プロジェクト固有のバージョンとグローバル バージョンの両方をオーバーライドします。
$ phpenv shell 5.3.9
バージョン番号を指定せずに実行すると、 phpenv shell
PHPENV_VERSION
の現在の値を報告します。シェルのバージョンの設定を解除することもできます。
$ phpenv shell --unset
このコマンドを使用するには、phpenv のシェル統合を有効にする必要があることに注意してください (インストール手順のステップ 3)。シェル統合を使用したくない場合は、単にPHPENV_VERSION
変数を自分で設定することもできます。
$ export PHPENV_VERSION=5.3.13
phpenv で認識されているすべての PHP バージョンをリストし、現在アクティブなバージョンの横にアスタリスクを表示します。
$ phpenv versions
5.2.8
5.3.13
* 5.4.0 (set by /YOUR-USERNAME/.phpenv/global)
現在アクティブな PHP バージョンとその設定方法に関する情報が表示されます。
$ phpenv version
5.4.0 (set by /YOUR-USERNAME/.phpenv/version)
phpenv に認識されているすべての PHP バイナリ (つまり、 ~/.phpenv/versions/*/bin/*
) の shim をインストールします。新しいバージョンの PHP をインストールした後、このコマンドを実行します。
$ phpenv rehash
指定されたコマンドを実行するときに phpenv が実行するバイナリへのフルパスを表示します。
$ phpenv which pyrus
/YOUR-USERNAME/.phpenv/versions/5.4.0/bin/pyrus
phpenv のソース コードは GitHub でホストされています。これはクリーンでモジュール化されており、シェル ハッカーでなくても (rbenv プロジェクトのおかげで) 理解しやすいものになっています。
このプロジェクトは基本的に rbenv プロジェクトのクローン (「検索と置換」と読みます) です。愛とサポートが必要なのです。改善に興味がある場合は、お気軽にフォークしたり、プルリクエストを送信したり、問題トラッカーでバグを報告したりしてください。
(MITライセンス)
著作権 (c) 2012 ドミニク ジリオ
著作権 (c) 2013 ニック・ロンバード
著作権 (c) 2015 マドゥムラオ
本ソフトウェアおよび関連ドキュメント ファイル (以下「ソフトウェア」) のコピーを入手した人には、使用、コピー、変更、マージする権利を含むがこれらに限定されない、制限なくソフトウェアを取り扱う許可が、ここに無償で与えられます。 、以下の条件を条件として、本ソフトウェアのコピーを出版、配布、サブライセンス、および/または販売すること、および本ソフトウェアが提供される人物にそれを許可すること。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは主要部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる種類の保証も行われません。いかなる場合においても、作者または著作権所有者は、契約行為、不法行為、またはその他の行為であるかどうかにかかわらず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じる、いかなる請求、損害、またはその他の責任に対しても責任を負わないものとします。ソフトウェア。