问题
I'm trying to install Magento (2.3.0) on macOS Mojave. Magento shows PHP Extension intl.
is missing.
I tried the below to resolve:
- Made a copy of php.ini using
cp /etc/php.ini.default php.ini
- Removed ";" before
extension=php_intl.dll
- Restart Apache
sudo apachectl restart
But the above did not resolve.
On checking php -v
, i'm seeing the below error:
PHP Warning: PHP Startup: Unable to load dynamic library
'/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.dll' -
dlopen(/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.dll,
0x0009): dlopen(): file not found: /usr/lib/php/extensions/no-debug-
non-zts-20160303/php_intl.dll in Unknown on line 0
PHP 7.1.19 (cli) (built: Aug 17 2018 20:10:18) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
There are only 2 files under /usr/lib/php/extensions/no-debug-non-zts-20160303
namely opache.so
and xdebug.so
How can i install or enable "PHP Extension intl" on my macOS Mojave?
回答1:
Here's a solution that worked for me:
- Find all PHP versions installed
brew list | grep php
- Remove all versions of PHP
brew remove --ignore-dependencies --force php70 php71 php72
(based on what you see above) - Install PHP
brew install php72
(i chose 7.2, 7.3 is not supported yet by several vendors) - Run the command
which php
should show you the path to the installed PHP. Copy the path. - Update your bash_profile
vi ~/.bash_profile
and add this line to the file:export PATH=/usr/local/php5/bin:$PATH
- Save and run this
source ~/.bash_profile
- Check if PHP Intl Extension is installed using
php -m | grep intl
. If the installation went well, we will see intl listed. If not the extension is not installed.
I think from PHP 7 (not sure of the version), the extensions are available by default and we need not enable them in php.ini file explicitly.
回答2:
If you installed Homebrew's php, linking it to a directory in your path will fix the issue.
brew link --force php@7.3
I had the same issue and that fixed it.
Here is a link where I got a detailed answer from
回答3:
The PHP 7.x already included module PHP-Intl, please install PHP through homebrew.
- Install
brew install php
- Open
vi ~/.bash_profile
orvi ~/.zshrc
, and put the line into the file/usr/local/Cellar/php@7.2/7.2.22_1/bin
. - Load the script
source ~/.bash_profile
orsource ~/.zshrc
The example above, I'm using PHP version 7.2. If you using another PHP version, change the PHP directory in Cellar directory.
- Check PHP version
php -v
, make sure the version displayed is the same as the one you installed. - Check Modules
php -m
orphp -m | grep intl
Done!
回答4:
Got help from the link and able to compile https://donatstudios.com/Install-PHP-Mcrypt-Extension-in-OS-X
Next we will download the PHP source. Verify the exact version of PHP you are running. This can be retrieved as follows. The version is highlighted.
$ php --version
PHP 7.1.19 (cli) (built: Aug 17 2018 18:03:17) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Now we move into a working directory and download the source making sure to update the following for the version from above.
$ cd /tmp
$ curl -L http://php.net/get/php-{{php-version}}.tar.bz2/from/this/mirror > php.tar.bz2
$ open php.tar.bz2
Now we will compile and test the extension.
$ cd php-{{php-version}}/ext/{{extension}}
$ phpize
$ ./configure
$ make
$ make test
$ sudo make install
If all that goes well finally we'll need to add the following to our php.ini - I usually add at it at the end of the file.
extension = {{extension}}
.so
You can verify your installation with the following:
$ php --info | grep {{extension}}\\.
Lastly, depending on your setup now you may want to restart apache.
$ sudo apachectl restart
来源:https://stackoverflow.com/questions/54206286/how-to-enable-php-intl-extension-on-macos-mojave