Search code examples
phpcakephpcakephp-3.xintl

PHP intl extension is installed, but CakePHP install says it is missing


For over a day I have been trying to start a CakePHP 3 project. When I run the composer install command, I get the following error:

cakephp/cakephp 3.3.x requires ext-intl * -> the requested PHP extension intl is missing from your system.

I am using MacOS Sierra 10.12.2. XCode and all that jazz are fully up-to-date. I am running PHP 5.6.25 via MAMP Pro 4.0.1 (3985). And I am trying to install CakePHP 3.3.x through my terminal, which is using ZSH instead of Bash.

I've spent quite a while trying to get intl installed. And by now I'm pretty confident that it is indeed installed:

  1. When I run php -m I see intl in the list of PHP modules.
  2. I have extension=intl.so in my php.ini, located in /Applications/MAMP/bin/php/php5.6.25/conf/php.ini.
  3. The file intl.so is located in the directory /Applications/MAMP/bin/php/php5.6.25/lib/php/extensions/no-debug-non-zts-20131226.
  4. On MAMP's phpinfo page I can see '--enable-intl' in the Configure Command cell. Further down the page, it has its own table, showing that internationalization is supported with version 1.1.0. However, in this table, for the row intl.default_locale the value is no value. Could this be my problem?
  5. In my ~/.zshrc file I have alias php="/Applications/MAMP/bin/php/php5.6.25/bin/php" so I can be sure I'm using the correct version and installation of PHP.

I hope I haven't ruined anything by trying to use so many articles and StackOverflow answers to get this working. I know there are a number of similar intl questions here, but so far I've had no luck with any answers.

So I suppose here are my two main questions:

  1. Is the evidence I listed above enough to suggest I truly have the intl extension correctly installed, and why does CakePHP still complain about the extension being missed if it is correctly installed?
  2. If it is not correctly installed, how can I correct this and get CakePHP to install?

Thank you!


Solution

  • Thank you to everyone who lent a hand in the comments. But a special thank you to Aman Rawat for pointing me to this answer. I've read through that thread a number of times, but apparently overlooked it.

    I added export PATH="/Applications/MAMP/bin/php/php5.6.25/bin:$PATH" to ~/.zshrc.

    I was then able to install CakePHP via composer.\

    I assumed I had MAMP's PHP in my path. I had it as an alias, so php in terminal would correctly point to MAMP's PHP install, but it turns out that PHP was never actually in my PATH.

    Oops!