4

I have seen this question answered on other posts here, but none of the answers work for me. Mostly because I'm trying to install laravel locally on my mac and the answers are for Linux environments and brew claims it doesn't have this extension. Here is my output when I run the composer command:

$ composer global require "laravel/installer"

Changed current directory to /Users/frankaddelia/.composer
Using version ^2.0 for laravel/installer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/installer v2.0.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - laravel/installer v2.0.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - Installation request for laravel/installer ^2.0 -> satisfiable by laravel/installer[v2.0.0, v2.0.1].

  To enable extensions, verify that they are enabled in your .ini files:
    - /usr/local/php5/lib/php.ini
    - /usr/local/php5/php.d/10-extension_dir.ini
    - /usr/local/php5/php.d/20-extension-opcache.ini
    - /usr/local/php5/php.d/40-curl.ini
    - /usr/local/php5/php.d/40-openssl.ini
    - /usr/local/php5/php.d/50-extension-apcu.ini
    - /usr/local/php5/php.d/50-extension-curl.ini
    - /usr/local/php5/php.d/50-extension-gmp.ini
    - /usr/local/php5/php.d/50-extension-igbinary.ini
    - /usr/local/php5/php.d/50-extension-imap.ini
    - /usr/local/php5/php.d/50-extension-intl.ini
    - /usr/local/php5/php.d/50-extension-mcrypt.ini
    - /usr/local/php5/php.d/50-extension-mongodb.ini
    - /usr/local/php5/php.d/50-extension-mssql.ini
    - /usr/local/php5/php.d/50-extension-pdo_pgsql.ini
    - /usr/local/php5/php.d/50-extension-pgsql.ini
    - /usr/local/php5/php.d/50-extension-propro.ini
    - /usr/local/php5/php.d/50-extension-raphf.ini
    - /usr/local/php5/php.d/50-extension-readline.ini
    - /usr/local/php5/php.d/50-extension-redis.ini
    - /usr/local/php5/php.d/50-extension-xsl.ini
    - /usr/local/php5/php.d/99-liip-developer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Installation failed, reverting ./composer.json to its original content.

I try to install the missing extension with brew, but I get this error like so:

$ brew install php7.2-zip
Updating Homebrew...
Error: No available formula with the name "php7.2-zip" 
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
  git -C "$(brew --repo homebrew/core)" fetch --unshallow

Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

By the way, here is my php version:

php -v
PHP 7.3.0beta2 (cli) (built: Aug 21 2018 08:13:27) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.0beta2, Copyright (c) 1999-2018, by Zend Technologies

I can't seem to figure out how to get this missing extension and haven't found a solution that works for me after a few hours of googling. I just reformatted my mac dealing with a different server environment issue, so I don't mind reinstalling again and starting over, but I want to try to fix the issue without doing so if possible. Any help is greatly appreciated!

* EDIT * Output for php -m

$ php -m
[PHP Modules]
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
intl
json
libxml
mbstring
mcrypt
mongodb
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
propro
raphf
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zlib

[Zend Modules]
Zend OPcache
WTFranklin
  • 2,454
  • 4
  • 21
  • 28
  • please add the output that shows the `php -m` on CLI – Vladyslav Startsev Aug 27 '18 at 23:20
  • No problem, I added the output to the end of the original post. Thank you! – WTFranklin Aug 27 '18 at 23:23
  • It looks like executing `composer ...` runs it using a php 5.x installation, while `php` is php 7.3. Try `php composer ...` to execute it with the php binary you expect. Also, check if you've enabled the zip extension. It can probably be done using `phpenmod zip` or editing configuration files. – sisve Aug 28 '18 at 07:01
  • Why do you want to install `php7.2-zip` while `php -v` shows that PHP 7.3 is installed? – Nico Haase Apr 29 '20 at 15:33

3 Answers3

0

Why does the composer error show that you are using php5?

To enable extensions, verify that they are enabled in your .ini files:
    - /usr/local/php5/lib/php.ini
    - /usr/local/php5/php.d/10-extension_dir.ini
    - /usr/local/php5/php.d/20-extension-opcache.ini
    - /usr/local/php5/php.d/40-curl.ini
    - /usr/local/php5/php.d/40-openssl.ini
    - /usr/local/php5/php.d/50-extension-apcu.ini
    - /usr/local/php5/php.d/50-extension-curl.ini
    - /usr/local/php5/php.d/50-extension-gmp.ini
    - /usr/local/php5/php.d/50-extension-igbinary.ini
    - /usr/local/php5/php.d/50-extension-imap.ini
    - /usr/local/php5/php.d/50-extension-intl.ini
    - /usr/local/php5/php.d/50-extension-mcrypt.ini
    - /usr/local/php5/php.d/50-extension-mongodb.ini
    - /usr/local/php5/php.d/50-extension-mssql.ini
    - /usr/local/php5/php.d/50-extension-pdo_pgsql.ini
    - /usr/local/php5/php.d/50-extension-pgsql.ini
    - /usr/local/php5/php.d/50-extension-propro.ini
    - /usr/local/php5/php.d/50-extension-raphf.ini
    - /usr/local/php5/php.d/50-extension-readline.ini
    - /usr/local/php5/php.d/50-extension-redis.ini
    - /usr/local/php5/php.d/50-extension-xsl.ini
    - /usr/local/php5/php.d/99-liip-developer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Are you using php5 before? If yes, I think you can try uninstall the php5 first.

xxx
  • 1,153
  • 1
  • 11
  • 23
0

At first you have to install php extension zip. To do the installation just run the following

    sudo apt-get install php7.2-zip && sudo apt-get install php-zip

Now you can try again to install laravel installer using composer

Rushow Khan
  • 105
  • 1
  • 4
-1

Run this on terminal: sudo apt-get install php7.2-zip && sudo apt-get install php-zip. After which you would run the command (sudo composer global require "laravel/installer")

suraz
  • 33
  • 9