Welcome Guest, Not a member yet? Register   Sign In
Composer install - extension intl error but phpinfo() says intl enabled
#1

Macos Catalina 10.15.17
MAMP 6.3 - running php 7.4.12
Codeigniter 4 executed the command 
Code:
> composer create-project codeigniter4/appstarter project-root
following the manual at time of writing 
I do get the error that int is missing like so
Code:
    - codeigniter4/framework[4.0.0, ..., v4.1.8] require ext-intl * -> it is missing from your system. Install or enable PHP's intl extension.
Looked it up and is relatively common and also easy to find you need to install internationalisation. So of course I made sure internationalisation is enabled, which it is when I look at the
Code:
php_info();
ouput but it says internationalisation is enabled.

[Image: PNp7KeL.png]
Reply
#2

Command line's PHP and web's PHP are different PHP.
You are using MAMP, so the web PHP is MAMP's web PHP.

You  can check the command line PHP by

Code:
$ which php
$ php --ini
Reply
#3

Your MAMP php and cli php may have different versions/configs.
Reply
#4

(This post was last modified: 01-31-2022, 09:58 PM by John_Betong.)

@stoofvlees,

I have just updated to the latest Ubuntu operating system and emphathise about the installation. I think that the CodeIgniter4 installation should be simplified so that the Splash Screen works without having to modify any defaults.

None of the requirements below should be obligatory in order to render the Splash Screen.


Quote:PHP version 7.4 or newer is required, with the *intl* extension and *mbstring* extension installed.

The following PHP extensions should be enabled on your server: php-json, php-mysqlnd, php-xml

Folder permissions to be set to 0777 for the writable  path..


I'm convinced that having to delve into the operating system to set the additional requirements is counter-productive. The  very unhelpful Whoops message is very off-putting.

Has anyone time on their hands to create a:

preInstallationTestEnvironment.php?
Reply
#5

Hi all
Thanks for the quick feedback it was very useful.
It didn't cross my mind that composer will look at the php that is installed on my machine rather than MAMP's. Makes a lot of sense of course.
Didn't get quite far yet, although I did quite easily find the php.ini file that is supposed to be the one the
`which php` returns `/usr/bin/php`
'php --ini` also returns me similar information as the error that I was getting
`PHP Warning:  PHP Startup: Unable to load dynamic library 'intl' (tried: /usr/lib/php/extensions/no-debug-non-zts-20180731/intl (dlopen(/usr/lib/php/extensions/no-debug-non-zts-20180731/intl, 0x0009): dlopen(): file not found: /usr/lib/php/extensions/no-debug-non-zts-20180731/intl), /usr/lib/php/extensions/no-debug-non-zts-20180731/intl.so (dlopen(/usr/lib/php/extensions/no-debug-non-zts-20180731/intl.so, 0x0009): dlopen(): file not found: /usr/lib/php/extensions/no-debug-non-zts-20180731/intl.so)) in Unknown on line 0
Configuration File (php.ini) Path: /etc
Loaded Configuration File:        /etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)`


First stop was this thread on Stackoverflow but the question was unanswered. I did try the first bit of the answer that got the most votes, which was to perform `brew list | grep php` to "Find all PHP versions installed"
I tried this, but it returned literally nothing. Also steps that followed was deleting PHP versions via brew but now we are in a territory where I really don't know what Im doing.
Reply
#6

(This post was last modified: 02-02-2022, 03:51 PM by John_Betong.)

@stoofvlees,

Perhaps try the GitHub clone install, or download the GitHub Zip file and extract the contents?

I prefer using git clone, it downloads the latest development version
Reply
#7

@John_Betong Yes I was going to do other installs if composer really really wouldn't work out. But maybe to your earlier point, maybe dodging relatively demanding server defaults isn't a sign of not being able to grasp a system like codeigniter.
Reply
#8

(This post was last modified: 02-03-2022, 04:28 AM by John_Betong.)

@ stoofvlees

The point I was trying to make was not “dodging server defaults” but to only load server settings when they are actually required. The “splash page” does not require intl, curl, mbstring, database, writable path permissions, etc to be loaded in order to render the HTML webpage.

The documentation should specify relevant settings required for certain functionality such as how to set and test database parameters.

The splash page lacks information on where to search for solutions.
Reply
#9

@John_Betong
Not to your point you're right I apologise, and your point being one beyond my understanding.
I can only speak for myself in which case it's still a matter of dodging though haha.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB