PHP에서 PECL 설치를 사용하여 IP 지리적 위치 구현하기

지리적 위치 판독은 웹사이트에서 중요한 기능으로, 온라인 비즈니스가 잠재 사용자의 지리적 위치를 기반으로 타겟팅된 콘텐츠를 제공할 수 있게 해줍니다. 지리적 위치 데이터를 사용하면 웹사이트 소유자는 지역 뉴스, 날씨, 이벤트와 같은 지역화된 콘텐츠를 제공하고 해당 언어로 콘텐츠를 표시할 수 있습니다. 또한 특정 지리적 지역에서 발생하는 의심스러운 활동을 감지하고 차단함으로써 사기 방지에도 도움이 됩니다. 사용자 경험을 향상시키고 사기를 방지하기 위해 웹사이트 소유자와 개발자에게 중요한 도구입니다.

지리적 위치 판독은 웹 서버 계층, 프로그래밍 언어 계층 또는 SDK 사용 등 다양한 방식으로 구현될 수 있습니다. 저희 이전 기사에서는 지리적 위치를 Apache 서버에 설치하는 방법을 설명했습니다. 이번 기사에서는 PECL 설치를 통해 PHP 언어에 지리적 위치를 설치하는 또 다른 접근 방식을 살펴보겠습니다. 이번 데모에서는 동일한 지리적 위치 제공업체인 IP2Location을 사용하여 지리적 위치가 서로 다른 환경에서 어떻게 작동하는지 이해할 수 있습니다.

IP2Location 개요

IP2Location은 IP 주소와 그와 연관된 위치에 대한 정보를 포함하고 있는 데이터베이스입니다. 데이터베이스에는 국가, 지역, 도시, 위도, 경도, 타임존, 우편 번호, 지역 번호, 모바일 정보, 사용 유형 등 IP 주소의 다양한 정보가 포함되어 있습니다.

IP2Location을 사용하려면 데이터베이스의 복사본을 얻고 애플리케이션에 로드해야 합니다. 데이터베이스가 로드되면 IP 주소를 지리적으로 위치를 확인하고 해당 위치에 대한 정보를 검색할 수 있습니다.

참고: 데이터베이스의 다양한 버전은 위치 정보의 다양한 세분성을 가지고 있습니다. 구현에 맞는 것을 얻어야 합니다.

PECL 설치 개요

PECL(PHP Extension Community Library)은 PHP 확장의 저장소로, PHP 애플리케이션에 추가 기능을 추가할 수 있게 해줍니다. IP2Location 확장은 PECL에서 사용 가능한 확장 중 하나이며 PHP 애플리케이션에서 IP2Location을 사용할 수 있게 해줍니다.

IP2Location 확장을 사용하려면 PECL을 사용하여 서버에 설치해야 합니다. 확장이 설치되면 PHP 코드에서 IP 주소를 지리적으로 위치를 확인하고 해당 위치에 대한 정보를 검색할 수 있습니다. 이 튜토리얼에서는 Apache와 PHP가 이미 설치되어 있고 Debian 11에 익숙하다고 가정합니다.

PECL을 사용하여 PHP에서 IP 지리적 위치 구현을 위한 단계별 가이드

1단계: PECL 설치

PHP에서 IP2Location을 구현하는 첫 번째 단계는 PECL을 설치하는 것입니다. PECL을 설치하려면 PHP 개발 헤더 및 도구가 시스템에 설치되어 있어야 합니다. 설정하지 않았다면 패키지 관리자를 사용하여 이를 설치할 수 있습니다. 예를 들어 Ubuntu 또는 Debian에서 다음 명령어를 실행할 수 있습니다:

  • sudo apt-get install php-dev php-pear

2단계: IP2Location C 라이브러리 설치 

PHP 모듈을 컴파일하기 위해 IP2Location C 라이브러리가 필요합니다. 다음 명령어를 실행하시면 됩니다:

  • sudo apt-get install git

이 명령어는 git 명령을 설치합니다. 그런 다음, IP2Location github 프로젝트를 복제하기 위해 아래 명령어를 실행하세요:

  • sudo git clone https://github.com/chrislim2888/IP2Location-C-Library

그리고 프로젝트 폴더 내에서 다음 명령어를 실행하세요:

 

autoreconf -i -v --force
./configure
make
make install

위의 명령어는 IP2Location C 라이브러리를 설치합니다. 

3단계: IP2Location 확장 설치 

이제 PECL이 설치되었으므로 IP2Location 확장을 설치할 수 있습니다. 다음 명령어를 실행하시면 됩니다:

  • sudo pecl install ip2location

이것은 IP2Location 확장을 다운로드하고 PHP용으로 설치합니다.

4단계: PHP를 통한 IP2Location 확장 사용 설정 

이제 IP2Location 확장이 설치되었으므로 PHP가 이를 사용하도록 설정해야 합니다. 이렇게 하려면 php.ini 파일에 라인을 추가해야 합니다.

php.ini 파일을 찾으려면 다음 명령어를 실행하세요:

  • php -i | grep php.ini

이것은 당신의 php.ini 파일의 경로를 출력할 것입니다. 경로를 얻은 후에는 선택한 텍스트 편집기로 파일을 열 수 있습니다.

다음으로, php.ini 파일에 다음 줄을 추가하세요:

  • extension=ip2location.so

이것은 PHP에게 IP2Location 확장 기능을 로드하도록 지시합니다.

5단계: Apache 재시작

Apache 서버를 재시작하여 PHP 모듈 목록을 새로 고쳐야 합니다. 이렇게 하려면 아래 명령을 실행하세요:

  • sudo service apache2 restart

그런 다음 IP2Location 모듈이 성공적으로 설치되고 로드되었는지 확인하기 위해 다음 명령을 입력할 수 있습니다:

  • php -m | grep ip2location

위의 명령을 실행한 후 IP2location이 표시되어야 합니다.

6단계: IP2Location 데이터베이스 다운로드

IP2Location을 사용하여 IP 주소의 위치를 식별하려면 IP2Location 데이터베이스를 다운로드해야 합니다. 이 데이터베이스에는 각 IP 주소의 지리적 위치에 대한 정보가 포함되어 있습니다.

IP2Location LITE 웹사이트에서 무료 데이터베이스를 다운로드할 수 있습니다. 사용할 수 있는 데이터베이스 버전이 여러 가지 있으므로 필요에 맞는 버전을 선택하세요.

7단계: PHP 코드 작성

IP2Location 확장 프로그램을 설치하고 데이터베이스를 다운로드한 후, PHP 코드에서 IP2Location을 시작할 준비가 되었습니다. 다음은 예시입니다:

PHP

 

// 데이터베이스 로드
ip2location_open('path/to/database.bin');

데이터베이스를 로드한 후, IP2Location 클래스를 사용하여 IP 주소의 위치를 식별할 수 있습니다. 예시는 다음과 같습니다:

PHP

 

// 위치 정보 출력
echo 'Country code: ' . ip2location_get_country_short(‘8.8.8.8’) . “\n”';
echo 'Country name: ' . ip2location_get_country_long(‘8.8.8.8’) . “\n”;

아래 결과를 확인하실 수 있습니다:

지리적 위치를 위한 PECL 설치의 장단점

PHP PECL은 Apache 모듈에 비해 비교적 쉽게 설치할 수 있으며, 필요한 PHP 개발 헤더와 도구만 설치하면 됩니다. 또한, 특정 웹 서버에 종속되지 않아 지원하는 모든 플랫폼에서 사용할 수 있으므로 더 유연합니다.

그러나 이 솔루션을 사용하는 것에는 단점도 있습니다. PHP PECL을 사용하려면 PHP, Linux 명령어 및 패키지 빌드 프로세스의 기본 원리에 대한 지식이 필요합니다. 고트래픽 웹사이트에서 PHP PECL은 Apache 모듈만큼 잘 수행되지 않을 수 있으며, PHP에 추가적인 처리 계층이 추가됩니다.

결론

각 지리적 위치 구현 방법의 장단점을 신중하게 평가하여 특정 요구 사항에 가장 적합한 방법을 결정하는 것이 중요합니다. 기술적 전문 지식, 서버 플랫폼, 성능 요구 사항 등의 요소를 결정을 내릴 때 모두 고려해야 합니다.

Source:
https://dzone.com/articles/implementing-ip-geolocation-in-php-using-the-pecl-install