Ubuntu - 特定のディレクトリには常に特定のPHPバージョンを使用します。

Ubuntu - 特定のディレクトリには常に特定のPHPバージョンを使用します。

複数のPHP(8.1と7.3)があります。これを実行するとphp -v7.3になります。

たとえば、magento 2ではPHPを使用していくつかのコマンドを実行する必要がありますが、php bin/magento cache:flushphp 8.1(/var/www/会社php8.1 bin/magento cache:flush)しかし、例えば動作するために常にPHP 8バイナリを指定する必要はありません。

その特定のディレクトリにある場合は、常にPHP 8.1を使用するようにする方法はありますか?

ベストアンサー1

これは、シェルで使用できる高速で汚れたラッパー関数です。たとえば、次のようにshなりますbash

php () (
   case "$PWD/" in
      /var/www/company/ ) c=php8.1 ;;
      *                 ) c=php    ;;
   esac
   exec "$c" "$@"
)

これで実行するのに十分で、php whatever …それに応じて1つまたは別の実行可能ファイルが選択されます。php -v他の場所で試してみてください/var/www/company

メモ:

  • /var/www/company/*に置き換えることもできます/var/www/company/
  • $PWDpwd -L印刷したい内容を保存します(開始部分を参照)。この回答)。何かを印刷したい場合がありますpwd -P。その場合はを使用してくださいcase "$(pwd -P)/" in
  • 関数全体はサブシェルで実行されるため、「ローカル」であり、移植cできない機能はありませんlocal c。結局サブシェルphpは。php8.1exec

おすすめ記事