mageplaza / magento-2-geoip-library

Magento 2 GeoIP extension is an optimal solution for generating awesome customers’ experiences. It records the customers’ IP addresses then use it for navigating them to the suitable store locations, languages and currencies promptly.
Other
18 stars 7 forks source link

GeoIP Configuration "Download Library" button fails on Magento 2.3.1 #3

Open Hailong opened 5 years ago

Hailong commented 5 years ago

It fails when unzipping the downloaded GeoLite2-City.tar.gz because the phar wrapper is unregistered in the beginning of /app/bootstrap.php script. The code snippet is below:

<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

/**
 * Environment initialization
 */
error_reporting(E_ALL);
stream_wrapper_unregister('phar');
#ini_set('display_errors', 1);
loid345 commented 5 years ago

Can't download file. Please try again! RecursiveDirectoryIterator::__construct(): Unable to find the wrapper "phar" - did you forget to enable it when you configured PHP?

Hailong commented 5 years ago

My current workaround for this issue is to use a package named Zippy, while a problem of this package is that we need to take its master branch at this moment, because its latest release branch doesn't work for me. Here is the code change for reference.

Quintenps commented 5 years ago

Also experiencing this on 2.2.8

DrakeJack commented 5 years ago

Please try to edit the unregister 'phar' to #stream_wrapper_unregister('phar'); Then let's try to download the Geo IP library.

You can remove the # symbol after downloading successfully.

Hailong commented 5 years ago

Hi @DrakeJack , since Magento had decide to unregister it in there code, I mean if we could fix it from the module code?

As I mentioned, I just tried Zippy, and it works fine for me.

ArnoVDC commented 5 years ago

The latest version of Zippy didn't work for me. I just used shell_exec() to unzip the file. I know it's not a very good solution, but it works.

raidoa commented 4 years ago

You can tag 2.3.2 with the same issue.

itsolon commented 4 years ago

can confirm problem on 2.3.2 with 1.0.4

rav-redchamps commented 4 years ago

using below code

stream_wrapper_restore('phar');

just above line# 95 [$phar = new \PharData($path . '/GeoLite2-City.tar.gz');] of file Controller/Adminhtml/System/Config/Geoip.php will solve the problem.

I want to create pull request for this change but unfortunately, this module asks for 2 other modules Mageplaza_Core & Mageplaza_Backend to run and I couldn’t find those modules.