Class 'ZipArchive' not found 에러가 발생하는 이유는 zip 모듈이 없어서이다.

phpinfo() 하여서 확인해보면 알 수 있다.

 

모듈을 설치하려면 PHP 다시 컴파일하거나 모듈만 설치하는 방법이 있다.

귀찮으니 모듈만 따로 설치하자.

Zip 모듈은 pecl 에서 다운로드 받으면 된다. 여기서 Stable 버전을 다운받는다.

http://pecl.php.net/package/zip

 

wget http://pecl.php.net/get/zip-1.10.2.tgz

압축을 해제하고

tar xvfz zip-1.10.2.tgz

cd zip-1.10.2

phpize     (혹시 phpize: command not found 라고 나오면 yum install php-devel  한후 다시 실행)

./configure --with-php-config=/usr/local/php/bin/php-config --enable-zip && make

cd modules/

ls 를 하면 zip.la  zip.so 가 보인다.

zip.so를 php 확장 디렉토리로 복사한다.

cp zip.so /usr/local/php/lib/php/extensions

php 설정파일을 열어서 zip.so 부분을 추가해준다.

vi /etc/php.ini

extension_dir="/usr/local/php/lib/php/extensions"

extension="zip.so" 를 추가.

/usr/local/apache2/bin/apachectl restart



출처: https://mara.tistory.com/327 [Absolute Purpose]

 

In CentOS 7.4 

yum install php-pecl-zip

 

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

Hahaha, jump directly to nginx this, the tomcat learned before, and tomcat+nginx have not said, I installed nginx, in the use of variables in the nginx configuration file, see the use of the echo command Variable output, I also wrote in my configuration file, a test, and then gave an error, a check to know that this command is a third-party module, and then began to go to Baidu how to add third-party modules, this problem is also I got I took a lot of blogs to solve it one day, and I quickly recorded it.

Tip: All operations are inrootCompleted by the user.

The first step is to download echo-nginx-module.

download link:https://github.com/openresty/echo-nginx-module/releases

In the second step, enter the command nginx -V to view the nginx version information installed by yum, and output the corresponding version number and compilation information.

Then download the tar.gz tarball for the corresponding version of nginx

download link:http://nginx.org/en/download.html

The third step is to pass the downloaded nginx and echo-nginx-module modules.Tool uploadGo to the virtual machine, then cp to /usr/local/src directory, extract

After decompression is completed, enter the decompression directory of nginx.

Before proceeding to the next step, it is best to back up your /usr/sbin/nginx

The fourth step, configuration parameters

Enter the command: ./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/echo-nginx-module-0.61Then add configuration parameters later

Is the nginx -V outputconfigure argumentsAfter the addition, add to the back, the final command is as follows:

./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/echo-nginx-module-0.61 --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E'

The red is to be changed, this is the data on my virtual machine, the following is the error resolution, you can install the following error database before configuring the parameters, of course, if you want to solve the problem one by one until the installation Success, of course, is fine.

Error resolution

1, missing libxml2/libxslt:

  1.  
  2. ./configure: error: the HTTP XSLT module requires the libxml2/libxslt
  3.  
  4. libraries. You can either do not enable the module or install the libraries.
  5.  
  6.  
  7.  
  8. solution:
  9.  
  10. yum -y install libxml2 libxml2-dev
  11.  
  12. yum -y install libxslt-devel

2, the lack of gd-devel

  1.  
  2. ./configure: error: the HTTP image filter module requires the GD library.
  3.  
  4. You can either do not enable the module or install the libraries.
  5.  
  6.  
  7.  
  8. solution:
  9.  
  10. yum -y install gd-devel

3, the lack of ExtUtils

  1.  
  2. ./configure: error: perl module ExtUtils::Embed is required
  3.  
  4.  
  5.  
  6. solution:
  7.  
  8. yum -y install perl-devel perl-ExtUtils-Embed

4, lack of GeoIP

  1.  
  2. ./configure: error: the GeoIP module requires the GeoIP library.
  3.  
  4. You can either do not enable the module or install the library.
  5.  
  6.  
  7.  
  8. solution:
  9.  
  10. yum -y install GeoIP GeoIP-devel GeoIP-data

5, the lack of Google perftools

  1.  
  2. ./configure: error: the Google perftools module requires the Google perftools
  3.  
  4. library. You can either do not enable the module or install the library.
  5.  
  6.  
  7.  
  8. The translation is: Google perftools module needs Google perftools library, you can choose not to start or install the library
  9.  
  10. I will not enable it here, remove the --with-google_perftools_module from the parameters.

Fifth, compile

Enter: make -j2

After compiling, an nginx file will be generated in the unz directory of the nginx decompression directory. Test this file first, enter objs/nginx -t, and see the result.

The display is successful, then use this file instead of /usr/sbin/nginx this file, and then test it, it is still successful, hahaha, basically got it.

Then start nginx, if the following situation occurs, the nginx service process may be stuck, causing port 80 to be occupied.

  1.  
  2. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  3.  
  4. nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  5.  
  6. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  7.  
  8. nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  9.  
  10. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  11.  
  12. nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  13.  
  14. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  15.  
  16. nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  17.  
  18. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  19.  
  20. nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  21.  
  22. nginx: [emerg] still could not bind()

Solved:

Nginx -s stop or

First check the process information: ps -aux | grep nginx and then kill the process kill process number, then restart nginx.

At this point, this third-party module is ready.

 

 

 

https://www.programmersought.com/article/8968116526/

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

 

If you see the following error while compiling nginx from source, follow the steps below:

1
2
3
4
5
6
checking for perl
 + perl version: This is perl 5, version 26, subversion 3 (v5.26.3) built for x86_64-linux-thread-multi
Can't locate ExtUtils/Embed.pm in @INC (you may need to install the ExtUtils::Embed module) (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5).
BEGIN failed--compilation aborted.


./configure: error: perl module ExtUtils::Embed is required

Issue the following by command:

1 yum install perl-ExtUtils-Embed

Result:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
[root@CentOS-82-64-minimal nginx-1.14.1]# yum install perl-ExtUtils-Embed
Last metadata expiration check: 2:06:33 ago on Wed 08 Jul 2020 06:31:28 AM CEST.
Dependencies resolved.
================================================================================
 Package                       Arch     Version               Repository   Size
================================================================================
Installing:
 perl-ExtUtils-Embed           noarch   1.34-416.el8          AppStream    79 k
Installing dependencies:
 perl-CPAN-Meta-Requirements   noarch   2.140-396.el8         AppStream    37 k
 perl-CPAN-Meta-YAML           noarch   0.018-397.el8         AppStream    34 k
 perl-ExtUtils-Command         noarch   1:7.34-1.el8          AppStream    19 k
 perl-ExtUtils-Install         noarch   2.14-4.el8            AppStream    46 k
 perl-ExtUtils-MakeMaker       noarch   1:7.34-1.el8          AppStream   300 k
 perl-ExtUtils-Manifest        noarch   1.70-395.el8          AppStream    37 k
 perl-ExtUtils-ParseXS         noarch   1:3.35-2.el8          AppStream    83 k
 perl-JSON-PP                  noarch   1:2.97.001-3.el8      AppStream    68 k
 perl-Math-BigInt              noarch   1:1.9998.11-7.el8     BaseOS      196 k
 perl-Math-Complex             noarch   1.59-416.el8          BaseOS      108 k
 perl-Test-Harness             noarch   1:3.42-1.el8          AppStream   279 k
 perl-devel                    x86_64   4:5.26.3-416.el8      AppStream   599 k
 perl-version                  x86_64   6:0.99.24-1.el8       AppStream    67 k
 python3-pyparsing             noarch   2.1.10-7.el8          BaseOS      142 k
 systemtap-sdt-devel           x86_64   4.2-6.el8             AppStream    81 k
Installing weak dependencies:
 perl-CPAN-Meta                noarch   2.150010-396.el8      AppStream   191 k
 perl-Encode-Locale            noarch   1.05-9.el8            AppStream    21 k
 perl-Time-HiRes               x86_64   1.9758-1.el8          AppStream    61 k


Transaction Summary
================================================================================
Install  19 Packages


Total download size: 2.4 M
Installed size: 7.5 M
Is this ok [y/N]: y
Downloading Packages:
(1/19): perl-CPAN-Meta-YAML-0.018-397.el8.noarc 421 kB/s |  34 kB     00:00
(2/19): perl-CPAN-Meta-Requirements-2.140-396.e 425 kB/s |  37 kB     00:00
(3/19): perl-Encode-Locale-1.05-9.el8.noarch.rp 795 kB/s |  21 kB     00:00
(4/19): perl-ExtUtils-Command-7.34-1.el8.noarch 589 kB/s |  19 kB     00:00
(5/19): perl-CPAN-Meta-2.150010-396.el8.noarch. 1.4 MB/s | 191 kB     00:00
(6/19): perl-ExtUtils-Install-2.14-4.el8.noarch 1.5 MB/s |  46 kB     00:00
(7/19): perl-ExtUtils-Embed-1.34-416.el8.noarch 1.4 MB/s |  79 kB     00:00
(8/19): perl-ExtUtils-Manifest-1.70-395.el8.noa 1.2 MB/s |  37 kB     00:00
(9/19): perl-ExtUtils-MakeMaker-7.34-1.el8.noar 5.5 MB/s | 300 kB     00:00
(10/19): perl-ExtUtils-ParseXS-3.35-2.el8.noarc 2.9 MB/s |  83 kB     00:00
(11/19): perl-JSON-PP-2.97.001-3.el8.noarch.rpm 2.2 MB/s |  68 kB     00:00
(12/19): perl-Time-HiRes-1.9758-1.el8.x86_64.rp 2.2 MB/s |  61 kB     00:00
(13/19): perl-Test-Harness-3.42-1.el8.noarch.rp 5.2 MB/s | 279 kB     00:00
(14/19): perl-version-0.99.24-1.el8.x86_64.rpm  2.4 MB/s |  67 kB     00:00
(15/19): systemtap-sdt-devel-4.2-6.el8.x86_64.r 3.0 MB/s |  81 kB     00:00
(16/19): perl-Math-BigInt-1.9998.11-7.el8.noarc 2.7 MB/s | 196 kB     00:00
(17/19): perl-devel-5.26.3-416.el8.x86_64.rpm   5.0 MB/s | 599 kB     00:00
(18/19): perl-Math-Complex-1.59-416.el8.noarch. 1.7 MB/s | 108 kB     00:00
(19/19): python3-pyparsing-2.1.10-7.el8.noarch. 9.4 MB/s | 142 kB     00:00
--------------------------------------------------------------------------------
Total                                           6.1 MB/s | 2.4 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : perl-version-6:0.99.24-1.el8.x86_64                   1/19
  Installing       : perl-CPAN-Meta-Requirements-2.140-396.el8.noarch      2/19
  Installing       : perl-Time-HiRes-1.9758-1.el8.x86_64                   3/19
  Installing       : perl-ExtUtils-ParseXS-1:3.35-2.el8.noarch             4/19
  Installing       : perl-Test-Harness-1:3.42-1.el8.noarch                 5/19
  Installing       : python3-pyparsing-2.1.10-7.el8.noarch                 6/19
  Installing       : systemtap-sdt-devel-4.2-6.el8.x86_64                  7/19
  Installing       : perl-Math-Complex-1.59-416.el8.noarch                 8/19
  Installing       : perl-Math-BigInt-1:1.9998.11-7.el8.noarch             9/19
  Installing       : perl-JSON-PP-1:2.97.001-3.el8.noarch                 10/19
  Installing       : perl-ExtUtils-Manifest-1.70-395.el8.noarch           11/19
  Installing       : perl-ExtUtils-Command-1:7.34-1.el8.noarch            12/19
  Installing       : perl-Encode-Locale-1.05-9.el8.noarch                 13/19
  Installing       : perl-CPAN-Meta-YAML-0.018-397.el8.noarch             14/19
  Installing       : perl-CPAN-Meta-2.150010-396.el8.noarch               15/19
  Installing       : perl-devel-4:5.26.3-416.el8.x86_64                   16/19
  Installing       : perl-ExtUtils-Install-2.14-4.el8.noarch              17/19
  Installing       : perl-ExtUtils-MakeMaker-1:7.34-1.el8.noarch          18/19
  Installing       : perl-ExtUtils-Embed-1.34-416.el8.noarch              19/19
  Running scriptlet: perl-ExtUtils-Embed-1.34-416.el8.noarch              19/19
  Verifying        : perl-CPAN-Meta-2.150010-396.el8.noarch                1/19
  Verifying        : perl-CPAN-Meta-Requirements-2.140-396.el8.noarch      2/19
  Verifying        : perl-CPAN-Meta-YAML-0.018-397.el8.noarch              3/19
  Verifying        : perl-Encode-Locale-1.05-9.el8.noarch                  4/19
  Verifying        : perl-ExtUtils-Command-1:7.34-1.el8.noarch             5/19
  Verifying        : perl-ExtUtils-Embed-1.34-416.el8.noarch               6/19
  Verifying        : perl-ExtUtils-Install-2.14-4.el8.noarch               7/19
  Verifying        : perl-ExtUtils-MakeMaker-1:7.34-1.el8.noarch           8/19
  Verifying        : perl-ExtUtils-Manifest-1.70-395.el8.noarch            9/19
  Verifying        : perl-ExtUtils-ParseXS-1:3.35-2.el8.noarch            10/19
  Verifying        : perl-JSON-PP-1:2.97.001-3.el8.noarch                 11/19
  Verifying        : perl-Test-Harness-1:3.42-1.el8.noarch                12/19
  Verifying        : perl-Time-HiRes-1.9758-1.el8.x86_64                  13/19
  Verifying        : perl-devel-4:5.26.3-416.el8.x86_64                   14/19
  Verifying        : perl-version-6:0.99.24-1.el8.x86_64                  15/19
  Verifying        : systemtap-sdt-devel-4.2-6.el8.x86_64                 16/19
  Verifying        : perl-Math-BigInt-1:1.9998.11-7.el8.noarch            17/19
  Verifying        : perl-Math-Complex-1.59-416.el8.noarch                18/19
  Verifying        : python3-pyparsing-2.1.10-7.el8.noarch                19/19


Installed:
  perl-CPAN-Meta-2.150010-396.el8.noarch
  perl-CPAN-Meta-Requirements-2.140-396.el8.noarch
  perl-CPAN-Meta-YAML-0.018-397.el8.noarch
  perl-Encode-Locale-1.05-9.el8.noarch
  perl-ExtUtils-Command-1:7.34-1.el8.noarch
  perl-ExtUtils-Embed-1.34-416.el8.noarch
  perl-ExtUtils-Install-2.14-4.el8.noarch
  perl-ExtUtils-MakeMaker-1:7.34-1.el8.noarch
  perl-ExtUtils-Manifest-1.70-395.el8.noarch
  perl-ExtUtils-ParseXS-1:3.35-2.el8.noarch
  perl-JSON-PP-1:2.97.001-3.el8.noarch
  perl-Math-BigInt-1:1.9998.11-7.el8.noarch
  perl-Math-Complex-1.59-416.el8.noarch
  perl-Test-Harness-1:3.42-1.el8.noarch
  perl-Time-HiRes-1.9758-1.el8.x86_64
  perl-devel-4:5.26.3-416.el8.x86_64
  perl-version-6:0.99.24-1.el8.x86_64
  python3-pyparsing-2.1.10-7.el8.noarch
  systemtap-sdt-devel-4.2-6.el8.x86_64


Complete!

done!

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

To make sure that your visitors always will be using an secured connection to your website, you have to redirect visitors that are making the first connection via HTTP. Here we make use of the permanent HTTP redirect code (HTTP status 301).

The following steps describe the configuration of Nginx to have the website loaded completely over HTTPS. Please read our background information on Securing your complete website with SSL

Configuring HTTPS per website

To comply with the specs you should first redirect visitors entering via HTTP to HTTPS. We need to configure this per worker (website), the configuration file for your site probably sits in /etc/nginx/sites-available/.

 

server {
       listen         80;
       server_name    www.servercertificates.com;
       return         301 https://$server_name$request_uri;
}

Note that the server_name needs to be changed to your own domainname and the HTTPS version of your site is available, before creating the redirect.

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

Bot인 경우에 대비해서 이 차이를 정확히 명시해 주어야 합니다.(예를 들어, 웹 크롤러가 301을 반환받았다면 검색엔진의 Indexing된 주소를 수정할 것입니다.)

 

이 Redirection은 접속하려는 사용자에게 HTTPS를 통한 접속을 강제하려 할 때에도 유용하게 사용할 수 있습니다. 예를 들어, 다음과 같이 설정파일을 작성하면 http://tuwlab.com 으로 접속하려는 사용자를 https://tuwlab.com 으로 강제 Redirection 시킵니다.

?

server
{
    listen      80;
    server_name tuwlab.com;
    return 301 https://$server_name$request_uri;
}

 

뭐, 다음과 같이 스크립트를 통해서 수동으로 Redirection을 해 줄 수도 있지만,

?

<script>
    document.location.href = "{Redirection 주소}";
</script>

이 경우 페이지를 이동하는 과정에 사용에게 순간적으로 노출이 되고, 자바스크립트를 꺼 놓은 경우 흰색의 빈 화면만 달랑 표시되고 아무 일도 일어나지 않게 됩니다. 더 큰 문제점은 이런 식으로 Redirection을 하면 검색엔진에서 크롤링을 하지 않거나, 스팸 사이트로 분류할수도 있다는 점입니다.

따라서 이동된 페이지에 대해서는 HTTP Status Code를 사용해서 정확히 무슨 일이 일어났는지 Client측에 알려주도록 해야 합니다.

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

Linux SSL Trouble Shooting

[에러구문]

cannot load certificate key "/home/SSL/201810/key.pem": PEM_read_bio_PrivateKey() failed 

(SSL: error:0906406D:PEM routines:PEM_def_callback:problems getting password error:0906A068:PEM routines:PEM_do_header:bad password read)

 

[처리방법]

openssl rsa -in [기존인증서파일].key -out [새로운인증서파일].key

openssl 로 접근하게 되면 key에 대한 pass-phrase 를 물어본다. 이 경우 비밀번호를 넣었을 때 복호화에 성공하면 새로운 키를 -out 으로 생성하게 된다.

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

you can use

fuser -n tcp -k 9001

see more details in wikipedia

 

fuser (Unix) - Wikipedia

The Unix command fuser is used to show which processes are using a specified computer file, file system, or Unix socket. Example[edit] For example, to check process IDs and users accessing a USB drive: $ fuser -m -u /mnt/usb1 /mnt/usb1: 1347c(root) 1348c(g

en.wikipedia.org

 

 

fuser library 는 CentOS 에서는 이름이 다르다. 없다면 psmisc 로 package 를 설치하자

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요


Use "sshpass" non-interactive ssh password provider utility

On Ubuntu

 sudo apt-get install sshpass

Command to rsync

/usr/bin/rsync -ratlz --rsh="/usr/bin/sshpass -p password ssh -o StrictHostKeyChecking=no -l username" src_path  dest_path

https://stackoverflow.com/questions/3299951/how-to-pass-password-automatically-for-rsync-ssh-command

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요