web-dev-qa-db-ja.com

intl PHP拡張OSX High Sierraをインストールします

Osx high sierraで提供されるintl PHP拡張機能をPHP 7.1.7にインストールするにはどうすればよいですか?

17
Mondy

そのため、まったく同じ問題が発生しました。ここでコメントしている他の人が述べているように、High SierraにはPHP 7.1がインストールされており、このPHPバージョンにはintlがコンパイルされています

私の場合、次の Valet + issue のNeodorkコメントの一部に従いました。

"インストール" PHP 7.1(したがって、High Sierraによってインストールされたものではなく、brew自体から取得されます)

brew install [email protected]

最新バージョンにアップグレードする

brew upgrade [email protected]

Cellarのリファレンスのシンボリックリンク:

brew link --overwrite --force [email protected]

BashプロファイルのPHPパスを変更します

echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.bash_profile

Bashプロファイルをリロードします(ターミナルを閉じて再度開くことができます)

. ~/.bash_profile

国際を確認

php -m | grep intl

注:次のような警告が表示された場合:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php71-intl/intl.so'

次に、前のintlを無効にする必要があります。

mv /usr/local/etc/php/7.1/conf.d/ext-intl.ini /usr/local/etc/php/7.1/conf.d/ext-intl.ini.disabled

それが役に立てば幸い!

30
Steven667

ターミナルを開き、次を入力します。

brew search intl

php71-intlが表示され、実行できるはずです。

brew install homebrew/php/php71-intl

その後、Apacheを再起動します

Sudo apachectl restart

次に入力:

php -i | grep intl

次のようなものが見えるはずです。

Additional .ini files parsed => /usr/local/etc/php/7.1/conf.d/ext-intl.ini
intl
intl.default_locale => no value => no value
intl.error_level => 0 => 0
intl.use_exceptions => 0 => 0

楽しい!

10
Mhyk Manasan

brew/phpからbrew/coreへの統合後、intl拡張がデフォルトのインストールに含まれます。 intl拡張機能が機能しないという同じ問題もありました。私が抱えていた問題は、コマンドライン環境がPHPのインストールされたバージョンではなく、macOSシステムのデフォルトバージョンを使用していたことでした。

インストールされたバージョンを有効にするには、これを行う必要があります。

brew install [email protected]の後

インストールされたPHPバージョンをbrew link [email protected]でリンクする必要があります

次に、新しい端末を開いて有効にする必要があります。
次に、PHPバイナリパス、which phpを再確認します

/usr/local/bin/phpではなく/usr/bin/phpであることを確認してください

次に、int拡張機能が有効かどうかを確認しますphp -m | grep intl

わたしにはできる。

7
jallen0927

L。Grolleau saysbrew install php71-intlを実行)に加えて、int.soパスをファイルの最後に/php.iniに貼り付けます。

extension=/usr/local/Cellar/php71-intl/7.1.11_20/intl.so
4

OS High Sierraでbrew 1.6.2を実行しています。現時点では、int拡張機能はbrewパッケージでは使用できません。

@Mondyソリューションは私にとってはうまくいきました。実行後

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1

パッケージは/ usr/local/php5または/usr/local/php5-7.0.27-20180201-135220にあります。

したがって、/ usr/local/etc/php/7.0/php.iniに以下の行を配置して、int拡張機能を有効にできます。

[intl]
extension="/usr/local/php5/lib/php/extensions/no-debug-non-zts-20151012/intl.so"

私の場合、より良い組織のために、/ usr/local/etc/php/7.0/conf.d /にファイル「ext-intl.ini」を作成することを好みました。

3
Lipdk

私は解決策を見つけます。

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1

次に、インストールからintl.soをphp.iniに定義されている拡張ディレクトリにコピーしました。

2
Mondy

私はこれをうまく処理できました。

最初にbrewで完全に持っているphpパッケージをアンインストールしてから、brew updateおよびbrew doctorコマンドを実行します。

ここで、brew install [email protected](必要に応じてバージョンを変更)でインストールします。intlは、すべてのphp-formulaeのビルドに含まれています。

動作していることを確認するには、php -m | grep intlを実行します。 intl拡張機能が含まれていることがわかります。 php.iniファイルを確認していない場合は、拡張機能がロードされていることを確認してください。

1
Lindsay

次のファイルを削除します

rm /usr/local/etc/php/7.1/conf.d/ext-intl.ini

homebrew-core Issue のおかげで私のために働いた

0
Nicolas