Class 'ZipArchive' not found 에러 발생! 도와주세요~~~
페이지 정보
본문
AAI 1.5.6으로 설치하였습니다.
엑셀 업로드 후 분석하려는데,
" Error loading file "20220127093532160305.xlsx": ZipArchive library is not enabled "
이런 에러가 발생하네요...
좀 더 조사해보니,
PHPExcel에서 에러가 나고 있군요.
// Check if zip class existsif (!class_exists('ZipArchive',FALSE)) {throw new PHPExcel_Reader_Exception("ZipArchive library is not enabled");}
엑셀로 업로드 한 파일을 저 클래스가 읽어야 하는데, 클래스를 못찾고 있는 버그인듯 합니다.
에러로그...
/var/log/httpd/error_log <-- 여긴 별 내용 없고...
/var/log/httpd/******-error_log <-- 여기를 보면...
[Thu Jan 27 09:55:28.934478 2022] [:error] [pid 216599:tid 140243617404672] [client 121.139.158.55:53253] [client 121.139.158.55] ModSecurity: Warning. Pattern match "([\\\\~\\\\!\\\\@\\\\#\\\\$\\\\%\\\\^\\\\&\\\\*\\\\(\\\\)\\\\-\\\\+\\\\=\\\\{\\\\}\\\\[\\\\]\\\\|\\\\:\\\\;\\"\\\\'\\\\\\xc2\\xb4\\\\\\xe2\\x80\\x99\\\\\\xe2\\x80\\x98\\\\`\\\\<\\\\>].*?){4,}" at ARGS_NAMES:order[0][dir]. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [line "159"] [id "981173"] [rev "2"] [msg "Restricted SQL Character Anomaly Detection Alert - Total # of special characters exceeded"] [data "Matched Data: ] found within ARGS_NAMES:order[0][dir]: order[0][dir]"] [ver "OWASP_CRS/2.2.9"] [maturity "9"] [accuracy "8"] [tag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION"] [hostname "my-domain"] [uri "/InputList.php"] [unique_id "YfHtgEpbYZ6tfERzHdXWMwAAAM4"], referer: http://my-domain/Input.php
[Thu Jan 27 09:55:28.980463 2022] [:error] [pid 216599:tid 140243617404672] [client 121.139.158.55:53253] [client 121.139.158.55] ModSecurity: Warning. Operator GE matched 5 at TX:inbound_anomaly_score. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_60_correlation.conf"] [line "37"] [id "981204"] [msg "Inbound Anomaly Score Exceeded (Total Inbound Score: 240, SQLi=80, XSS=0): Restricted SQL Character Anomaly Detection Alert - Total # of special characters exceeded"] [hostname "my-domain"] [uri "/InputList.php"] [unique_id "YfHtgEpbYZ6tfERzHdXWMwAAAM4"], referer: http://my-domain/Input.php
Mod SEcurity에서 에러를 발생시키는 것 같은데...
에고 해결책을... ㅠㅠ
흠냐... 상용 서비스 중인데...
zip 라이브러리가 설치는 된 것 같은데,
phpinfo를 보면 정확하게 zip 라이브러리가 보이진 않네요. bZip만 보임...
댓글목록

아파치님의 댓글


AAI 는 기본적으로 ZIP모듈이 설치 되지 않아서 해당 문제가 발생하는것 같습니다.
아래 구문을 복사하셔서 ZIP 모듈을 설치하시면 해결 될 것으로 생각 됩니다.
[code]
yum install -y php54-php-pecl-zip php55-php-pecl-zip php56-php-pecl-zip php70-php-pecl-zip php71-php-pecl-zip php72-php-pecl-zip php73-php-pecl-zip php74-php-pecl-zip php80-php-pecl-zip
[/code]
그리고 /etc/php.d/40-zip.ini 가 생성되었는지 확인하시고 없다면 아래 구문으로 생성해 주시면 됩니다.
[code]
echo "extension=zip.so" >> /etc/php.d/40-zip.ini
[/code]
작업이 모두 끝났으면 AAI 내의 restart.sh 를 한번 실행해 주시고 php -m 을 입력하여 zip모듈이 활성화 되었는지 확인하신 후
아래와 같이 phpinfo.php에 zip 모듈이 보이는지 확인 하시면 됩니다.


해피탱크님의 댓글의 댓글


위와 같이 해도 안되는데...
각각의 PHP 버전에 맞는 extension_dir을 어딘가 넣어주어야 하는거 아닌지...
얘네들이요.
[root@qs211-0149 /]# find . -name "zip.so"
./opt/remi/php54/root/usr/lib64/php/modules/zip.so
./opt/remi/php55/root/usr/lib64/php/modules/zip.so
./opt/remi/php56/root/usr/lib64/php/modules/zip.so
./opt/remi/php70/root/usr/lib64/php/modules/zip.so
./opt/remi/php71/root/usr/lib64/php/modules/zip.so
./opt/remi/php72/root/usr/lib64/php/modules/zip.so
./opt/remi/php73/root/usr/lib64/php/modules/zip.so
./opt/remi/php74/root/usr/lib64/php/modules/zip.so
./opt/remi/php80/root/usr/lib64/php/modules/zip.so
어디에 넣어야 할까요?? extension_dir...


해피탱크님의 댓글


음...
[root@***** /opt/remi/php56/root/etc]# ls
opt pear.conf php-fpm.conf php.ini pki skel X11 xinetd.d
pear php.d php-fpm.d php.ini.original pm sysconfig xdg
[root@***** /etc/opt/remi/php56]# ls
opt pear.conf php-fpm.conf php.ini pki skel X11 xinetd.d
pear php.d php-fpm.d php.ini.original pm sysconfig xdg
php56 관련한 디렉토리가 두 군데 있네요...
어떤게 진짜일까요???

해피탱크님의 댓글


음... "/opt/remi/php56/root/etc/php-fpm.conf" 가 진짜인거같아요.
[root@***** ~/AAI]# systemctl | grep php56-php-fpm
php56-php-fpm.service loaded active running The PHP FastCGI Process Manager
[root@qs211-0149 ~/AAI]# systemctl status php56-php-fpm
● php56-php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php56-php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2022-01-27 12:32:05 KST; 8min ago
Main PID: 59022 (php-fpm)
Status: "Processes active: 0, idle: 0, Requests: 2, slow: 0, Traffic: 0req/sec"
CGroup: /system.slice/php56-php-fpm.service
└─59022 php-fpm: master process (/opt/remi/php56/root/etc/php-fpm.conf)
Jan 27 12:32:05 qs211-0149.cafe24.com systemd[1]: Starting The PHP FastCGI Process Manager...
Jan 27 12:32:05 qs211-0149.cafe24.com systemd[1]: Started The PHP FastCGI Process Manager.



해피탱크님의 댓글


아... 안나옵니다....
[root@qs211-0149 /]# php -m
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
memcache
openssl
pcntl
pcre
Phar
readline
Reflection
session
sockets
SPL
standard
tokenizer
zlib
[Zend Modules]


해피탱크님의 댓글


https://sir.kr/qa/193648
https://xetown.com/questions/1248960
설치는 되었으나... 무언가 안맞아서 안된다는 소리 같고...
올바른 길이 저기쯤부터 시작 되는것 같으나 저기쯤까지 가는 방법을 모르겠네요. 흠냐...
어렵다 어려워...

해피탱크님의 댓글


일단 아파치님 말씀대로 삭제 후 제 설치 해보았어요.
yum remove php80-php-pecl-zip.x86_64 <-- 54부터 80까지... 실행...
yum install -y php54-php-pecl-zip php55-php-pecl-zip php56-php-pecl-zip php70-php-pecl-zip php71-php-pecl-zip php72-php-pecl-zip php73-php-pecl-zip php74-php-pecl-zip php80-php-pecl-zip <-- 다시 설치
...
Installed:
php54-php-pecl-zip.x86_64 0:1.20.0-1.el7.remi php55-php-pecl-zip.x86_64 0:1.20.0-1.el7.remi
php56-php-pecl-zip.x86_64 0:1.20.0-1.el7.remi php70-php-pecl-zip.x86_64 0:1.20.0-1.el7.remi
php71-php-pecl-zip.x86_64 0:1.20.0-1.el7.remi php72-php-pecl-zip.x86_64 0:1.20.0-1.el7.remi
php73-php-pecl-zip.x86_64 0:1.20.0-1.el7.remi php74-php-pecl-zip.x86_64 0:1.20.0-1.el7.remi
php80-php-pecl-zip.x86_64 0:1.20.0-1.el7.remi
Dependency Installed:
php55-php-common.x86_64 0:5.5.38-12.el7.remi php55-php-pecl-jsonc.x86_64 0:1.3.10-1.el7.remi
php56-php-common.x86_64 0:5.6.40-32.el7.remi php56-php-pecl-jsonc.x86_64 0:1.3.10-1.el7.remi
Complete! <--- 설치 완료...
헉... 갑자기... ㅠㅠ
[root@***** ~/AAI]# ls
adduser.sh chkrootkit conf.d install.sh my.cnf.d php_errors.log restart.sh
APM clamav.sh deluser.sh letsencrypt php README.md
[root@***** ~/AAI]# ./restart.sh
Failed to restart php55-php-fpm.service: Unit not found.
Failed to restart php56-php-fpm.service: Unit not found.
[root@qs211-0149 ~/AAI]#
이런게 나타나는군요 ㅠㅠ 뭐지.. 뭘까... 흑흑....

해피탱크님의 댓글


그까이꺼...
54 파일 참고하여 두개 만들어 주고...
[root@]# vi /usr/lib/systemd/system/php54-php-fpm.service
[root@]# vi /usr/lib/systemd/system/php55-php-fpm.service
[root@]# vi /usr/lib/systemd/system/php56-php-fpm.service
재시작했더니...
[root@ ~/AAI]# ./restart.sh
Job for php55-php-fpm.service failed because a configured resource limit was exceeded. See "systemctl status php55-php-fpm.service" and "journalctl -xe" for details.
Job for php56-php-fpm.service failed because a configured resource limit was exceeded. See "systemctl status php56-php-fpm.service" and "journalctl -xe" for details.
흠냐... 56으로 돌아가는 서비스는 죽어 있고... ㅠㅠ

해피탱크님의 댓글


AAI의 APM Installer 쉘을 참고 하여 다시 인스톨 하고 있는데...
yum -y install php55 php55-php-cli php55-php-fpm \
php55-php-common php55-php-pdo php55-php-mysqlnd php55-php-mbstring php55-php-mcrypt \
php55-php-opcache php55-php-xml php55-php-pecl-imagick php55-php-gd php55-php-fileinfo \
php55-php-pecl-ssh2 php55-php-soap php55-php-devel php55-php-imap \
php55-php-json php55-php-ldap php55-php-xml php55-php-iconv php55-php-xmlrpc php55-php-snmp \
php55-php-pecl-apcu php55-php-pecl-geoip php55-php-pecl-memcached php55-php-pecl-redis \
php55-php-pecl-xdebug php55-php-pecl-mailparse php55-php-pgsql php55-php-process php55-php-ioncube-loader
yum -y install php56 php56-php-cli php56-php-fpm \
php56-php-common php56-php-pdo php56-php-mysqlnd php56-php-mbstring php56-php-mcrypt \
php56-php-opcache php56-php-xml php56-php-pecl-imagick php56-php-gd php56-php-fileinfo \
php56-php-pecl-ssh2 php56-php-soap php56-php-devel php56-php-imap php56-php-json php56-php-mysql \
php56-php-ldap php56-php-xml php56-php-iconv php56-php-xmlrpc php56-php-snmp php56-php-pgsql \
php56-php-pecl-apcu php56-php-pecl-geoip php56-php-pecl-memcached php56-php-pecl-redis \
php56-php-pecl-xdebug php56-php-pecl-mailparse php56-php-process php56-php-ioncube-loader
잘하고 있는건지...
으하하하하하 미치겠어요~~~

해피탱크님의 댓글


위와 같이 하였더니...
위 작업 전에 지워버렸던 /usr/lib/systemd/system/php55-php-fpm.service 와 /usr/lib/systemd/system/php56-php-fpm.service 이 다시 생겼네요.
그러나 여전히 56은 재시작이 안됩니다. 나 여기서 뭐하는거죠? 흠냐...
[root@0149 ~/AAI]# ./restart.sh
Job for php56-php-fpm.service failed because the control process exited with error code. See "systemctl status php56-php-fpm.service" and "journalctl -xe" for details.
[root@qs211-0149 ~/AAI]# systemctl status php56-php-fpm.service -l
● php56-php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php56-php-fpm.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2022-01-27 14:15:04 KST; 3min 8s ago
Process: 70106 ExecStart=/opt/remi/php56/root/usr/sbin/php-fpm --nodaemonize (code=exited, status=78)
Main PID: 70106 (code=exited, status=78)
Jan 27 14:15:03 qs211-0149.cafe24.com systemd[1]: Starting The PHP FastCGI Process Manager...
Jan 27 14:15:03 qs211-0149.cafe24.com php-fpm[70106]: [27-Jan-2022 14:15:03] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/opt/remi/php56/root/usr/lib64/php/modules/zip.so' - /opt/remi/php56/root/usr/lib64/php/modules/zip.so: undefined symbol: zip_register_cancel_callback_with_state in Unknown on line 0
Jan 27 14:15:04 qs211-0149.cafe24.com php-fpm[70106]: [27-Jan-2022 14:15:04] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
Jan 27 14:15:04 qs211-0149.cafe24.com php-fpm[70106]: [27-Jan-2022 14:15:04] ERROR: FPM initialization failed
Jan 27 14:15:04 qs211-0149.cafe24.com systemd[1]: php56-php-fpm.service: main process exited, code=exited, status=78/n/a
Jan 27 14:15:04 qs211-0149.cafe24.com systemd[1]: Failed to start The PHP FastCGI Process Manager.
Jan 27 14:15:04 qs211-0149.cafe24.com systemd[1]: Unit php56-php-fpm.service entered failed state.
Jan 27 14:15:04 qs211-0149.cafe24.com systemd[1]: php56-php-fpm.service failed.

해피탱크님의 댓글


APMinstaller.sh를 참고하여 php-fpm들은 다시 살렸습니다만...
여전히 zip 관련 에러는 발생하네요... 설치를 해도 안되고... 지워버리면 55버전과 56버전이 통째로 날라가버리니...
[root@qs211-0149 ~/AAI/APM]# systemctl status php56-php-fpm -l
● php56-php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php56-php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2022-01-27 17:45:05 KST; 34min ago
Main PID: 92492 (php-fpm)
Status: "Processes active: 0, idle: 6, Requests: 33, slow: 0, Traffic: 0req/sec"
CGroup: /system.slice/php56-php-fpm.service
├─92492 php-fpm: master process (/opt/remi/php56/root/etc/php-fpm.conf
├─92493 php-fpm: pool www
├─92494 php-fpm: pool www
├─92495 php-fpm: pool www
├─92496 php-fpm: pool www
├─92497 php-fpm: pool www
└─92737 php-fpm: pool www
Jan 27 17:45:05 qs211-0149.cafe24.com systemd[1]: Starting The PHP FastCGI Process Manager...
Jan 27 17:45:05 qs211-0149.cafe24.com php-fpm[92492]: [27-Jan-2022 17:45:05] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/opt/remi/php56/root/usr/lib64/php/modules/zip.so' - /opt/remi/php56/root/usr/lib64/php/modules/zip.so: undefined symbol: zip_register_cancel_callback_with_state in Unknown on line 0
Jan 27 17:45:05 qs211-0149.cafe24.com systemd[1]: Started The PHP FastCGI Process Manager.
"NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/opt/remi/php56/root/usr/lib64/php/modules/zip.so' - /opt/remi/php56/root/usr/lib64/php/modules/zip.so: undefined symbol: "
요것이 zip 모듈이 정상적으로 안되는 이유인것으로 판단되나...
검색을 해도 답이 없네요.. 에휴...

해피탱크님의 댓글


결국 php-zip을 활성화하는데 실패했습니다.
새롭게 셋팅했던 서버에서 2일 사용했네요. 흠냐.
절반은 zip이 필요 없으니, 걍 두고
나머지 절반은 다시 백업해서, 구 서버로 옮기고 있어요. ㅎㅎㅎ
새 서버 한 달 더 임대해서 한번 더 시도해보든지... (한 3일만 빌리는건 안되나... ㅎ)
걍 두 개 쓰든지 해야 할 듯요...
도움 주신 웹지기님 감사해요~
카페24보다 더 저렴하고 괜찮은 성능의 퀵호스팅은 뭐가 있을지 궁금하네요.
월 십마넌... 적지 않게 부담이 되네요 흠냐..