WEB Server - PHP zip 확장 모듈 설치하기





    이번 포스팅에서는 zip 확장 모듈 설치에 대해서 알아보도록 하겠습니다.





    관련 글 :


    WEB Server - NGINX Comfile 설치하기 - https://server-talk.tistory.com/301


    WEB Server - NGINX PHP 연동하기 - CentOS 7 - https://server-talk.tistory.com/307


    WEB Server - PHP 7.x 컴파일 설치하기 - CentOS 7 - https://server-talk.tistory.com/312


    WEB Server - PHP 확장 모듈(phpize) 알아보기 - https://server-talk.tistory.com/316







     php zip 모듈 이해하기



    1. PHP 에러 메세지


    ERROR Massage : Fatal error: Class 'ZipArchive' not found in


    위 메세지는 zip 모듈이 설지 되지 않았을 경우 나오는 메세지 입니다.





    2. ZIP 모듈


    ZipArchive 클래스를 사용하여 읽기, 압축, 수정 등을 사용할 수 있습니다 그리고 XLSX 엑셀파일을 읽기, 압축, 수정 할경우에도 사용됩니다.



    XLS : 엑셀 2003 이하 버전

    XLSX : 엑셀 2007 이상 버전







     PHP - phpize zip 확장 모듈 설치하기




    1. PHP Ver 확인


    [root@php php-7.1.7]# /usr/local/php71/bin/php -v
    PHP 7.1.7 (cli) (built: Sep 25 2020 09:00:00) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    


    PHP 버전을 확인하고 버전에 맞는 소스파일을 다운로드하시면 됩니다.





    2. PHP 확장 모듈 설치 위치 경로 이동


    [root@php ~]# cd php-7.1.7
    [root@php php-7.1.7]# cd ext/
    


    압축을 해제하고 소스파일에서 ext 폴더로 이동합니다





    3. PHP 확장 ZIP 모듈 확인


    [root@php ext]# ls
    bcmath      dba                 filter   imap       mcrypt   pcntl         pdo_odbc    readline    snmp      sysvsem    xmlrpc
    bz2         dom                 ftp      interbase  mysqli   pcre          pdo_pgsql   recode      soap      sysvshm    xmlwriter
    calendar    enchant             gd       intl       mysqlnd  pdo           pdo_sqlite  reflection  sockets   tidy       xsl
    com_dotnet  exif                gettext  json       oci8     pdo_dblib     pgsql       session     spl       tokenizer  zip
    ctype       ext_skel            gmp      ldap       odbc     pdo_firebird  phar        shmop       sqlite3   wddx       zlib
    curl        ext_skel_win32.php  hash     libxml     opcache  pdo_mysql     posix       simplexml   standard  xml
    date        fileinfo            iconv    mbstring   openssl  pdo_oci       pspell      skeleton    sysvmsg   xmlreader
    


    ext 폴더에는 ZIP 모듈에 폴더가 있습니다





    4. PHP 확장 모듈 경로 이동


    [root@php ext]# cd zip/


    설치가 필요한 모듈의 폴더로 이동합니다.




    5. PHPIZE 실행


    [root@php soap]# /usr/local/php71/bin/phpize
    Configuring for:
    PHP Api Version:         20160303
    Zend Module Api No:      20160303
    Zend Extension Api No:   320160303
    


    모듈 경로에 이동하여 phpize 명령어를 실행하고 실행하면 configure 명령어를 실행할 수 있습니다






    6. PHP 확장 모듈 소스 트리


    사용법 : ./configure --with-php-config=[경로]/bin/php-config --enable-[모듈이름]


    [root@php zip]# ./configure --with-php-config=/usr/local/php71/bin/php-config --enable-zip


    소스 트리에서 with-php-cpnfig 옵션으로 php-config 모듈 옵션을 추가하여 진행합니다





    7. PHP 확장 모듈 컴파일 설치


    [root@php zip]# make && make install
    





    8. PHP 확장 모듈 설치 위치 확인


    [root@php zip]# make install
    . . . . . 
    Installing shared extensions:     /usr/local/php71/lib/php/extensions/no-debug-non-zts-20160303/
    


    컴파일 설치가 완료되면 모듈이 설치 경로를 확인하고 해당 경로로 이동하여 모듈이 있는지 확인하면 됩니다.







     PHP 확장 모듈 연동하기




    1. PHP 확장 모듈 폴더 생성


    [root@php soap]# mkdir /usr/local/php71/modules
    


    모듈의 관리를 통합하기 위한 폴더를 생성합니다





    2. PHP 확장 모듈 이동


    [root@php soap]# mv /usr/local/php71/lib/php/extensions/no-debug-non-zts-20160303/*.so /usr/local/php71/modules
    


    컴파일 설치한 모듈을 이동 합니다.



    3. PHP 확장 모듈 설정


    [root@php soap]# vi /usr/local/php71/lib/php.ini
    extension_dir = "/usr/local/php71/modules"
    extension=zip.so
    


    php.ini 파일에 모듈의 경로를 지정하고 컴파일 설치한 모듈의 이름을 정의합니다






    4. PHP-FPM 재시작


    [root@php soap]# service php71-fpm restart
    


    php-fpm을 재시작하여 설정 정보를 반영합니다





    5. PHP 모듈 정보 확인


    [root@php soap]# /usr/local/php71/bin/php -m
    [PHP Modules]
    . . . .
    zip
    . . . .
    


    php 명령어로 확장 모듈이 적용된 것을 확인하실 수 있습니다.

    Posted by Server-talk 서버이야기