簡體   English   中英

安裝國際 PHP 擴展 OSX High Sierra

[英]Install intl PHP extension OSX High Sierra

如何在 osx high sierra 隨附的 PHP 7.1.7 中安裝 intl PHP 擴展?

所以我遇到了完全相同的問題。 正如其他人在此處評論所指出的,High Sierra 安裝了 PHP 7.1,並且這個 PHP 版本已經用它編譯了 intl

就我而言,我在以下Valet+ 問題中關注了 Neodork 的部分評論:

“安裝” PHP 7.1(所以它來自 brew 本身,而不是 High Sierra 安裝的那個)

brew install php@7.1

升級到最新版本

brew upgrade php@7.1

Cellar 中參考的符號鏈接:

brew link --overwrite --force php@7.1

在我的 bash 配置文件中更改 PHP 路徑

echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.1/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

希望有幫助!

brew/php集成到brew/core ,默認安裝包含intl擴展。 我也遇到了同樣的問題, intl擴展名不起作用。 我遇到的問題是命令行環境沒有使用已安裝的 PHP 版本,而是使用 macOS 系統的默認版本。

要啟用已安裝的版本,您需要執行以下操作:

brew install php@7.1

您需要通過brew link php@7.1鏈接已安裝的 PHP 版本

然后您需要打開一個新的終端以使其有效。
然后仔細檢查 PHP 二進制路徑, which php

確保它是/usr/local/bin/php而不是/usr/bin/php

然后檢查是否啟用了intl擴展, php -m | grep intl php -m | grep intl

它對我有用。

打開一個終端然后輸入:

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

享受!

我在 OS High Sierra 上運行 brew 1.6.2。 到目前為止, brew 包中沒有 intl 擴展名。

@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 你可以放置以下幾行來啟用 intl 擴展:

[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”,只是為了更好的組織。

在 Mac 上試試這個

php -v
sudo port install php7*-intl

更多信息

您可以通過此頁面https://www.macports.org/ports.php?by=name&substr=intl找到端口包

您可以通過以下步驟安裝porthttps : //guide.macports.org/chunked/installing.macports.html

curl -O https://distfiles.macports.org/MacPorts/MacPorts-2.5.4.tar.bz2
tar xf MacPorts-2.5.4.tar.bz2
cd MacPorts-2.5.4/
./configure
make
sudo make install

並更改 ~/.bash_profile

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

如果有錯誤,請檢查以下步驟:

檢查端口

sudo port list
sudo port selfupdate
sudo port search --name --glob 'php*'
sudo port install php**-intl

此頁面包含有關端口使用的更多信息: https : //guide.macports.org/chunked/using.html

除了L. Grolleau 所說的(運行brew install php71-intl ),將int.so路徑粘貼到文件末尾的/php.ini

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

我找到了解決辦法。

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

然后我將 intl.so 從安裝復制到我的擴展目錄中,該目錄定義在我的 php.ini 中。

我已經設法解決了這個問題。

首先使用 brew 完全卸載所有 php 包,然后運行brew updatebrew doctor命令。

現在使用brew install php@7.1 (根據需要更改版本) intl 包含在所有 php-formulae 的構建中。

要確認它正在運行,請運行php -m | grep intl php -m | grep intl 您將看到包含 intl 擴展名。 如果沒有,請檢查 php.ini 文件並確保正在加載擴展。

刪除以下文件

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

為我工作,感謝homebrew-core 問題

我用 brew 安裝了 php7.2 並在 Mac 上與該版本鏈接,但在phpinfo()甚至看不到版本號 7.2 。 即使使用 brew 卸載,它也始終顯示最新版本(7.1),因此 intl 擴展名。 我發現我們必須修改 httpd.conf 文件(在我的例子中是 /etc/apache2/httpd.conf),在那個文件中你可以找到

LoadModule php7_module libexec/apache2/libphp7.so

在該行中,您必須使用新的 php72 路徑覆蓋:就我而言,它是

 LoadModule php7_module /usr/local/Cellar/php@7.2/7.2.31_1/lib/httpd/modules/libphp7.so

並重新啟動apache,它工作正常。

如何在osx high sierra隨附的PHP 7.1.7中安裝intl PHP擴展?

試試這個

brew install homebrew/php/php71-intl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM