OS

2022.02.14 16:25

yum 으로 설치한 APM을 TLS 1.2 사용 가능하도록 컴파일 하기

  • 비아웹 오래 전 2022.02.14 16:25 인기
  • 5,406
    0

CentOS 에서 yum 으로 APM 설치한 서버를 TLS 1.2 사용을 위해 컴파일로 변경하는 법을 기록하고자 합니다.

1. 테스트 환경

CentOS release 6.9 (Final)

커널 : Linux localhost.localdomain 2.6.32-696.el6.x86_64

테스트 일자 : 2020.11.23

 

2. cenos 6 환경에서 yum apm 설치 command

 

yum install httpd httpd-devel libpng libpng-devel libjpeg libjpeg-devel gd mysql mysql-server php php-pdo php-gd php-mysql php-mbstring php-soap php-bcmath php-bz2 php-calendar php-curl php-dba php-exif php-fileinfo php-ftp php-gd php-gettext php-hash php-iconv php-imap php-json php-openssl php-pdo php-pear php-soap php-sockets php-ldap php-readline php-snmp php-xml php-xmlrpc mod_ssl

 

3. yum 으로 설치된 APM 버전 정보

[root@viaweb ~]# httpd -v
Server version: Apache/2.2.15(Unix)
Server built: Jun 19201815:47:03
 
[root@viaweb ~]# php -v
PHP5.3.3(cli)(built: Nov 1201912:35:32)
Copyright(c)1997-2010 The PHP Group
Zend Engine v2.3.0,Copyright(c)1998-2010 Zend Technologies
 
[root@viaweb ~]# mysql -V
mysql Ver 14.14 Distrib 5.1.73,for redhat-linux-gnu(i386) using readline 5.1
 
[root@viaweb ~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

4. yum 설치 phpinfo 화면

5. 설치 예정 버전
# 설치 예정 버전
apache :2.2.34
php :5.3.3
openssl :1.0.1u

6. 소스 코드 다운로드

# TLS1.2 지원 가능하고, apache 설정이 기존과 동일한 환경에서의 컴파일 환경 구성
apache 2.2 버전 중 최신 2.2.34
http://archive.apache.org/dist/httpd/
 
# openssl 1.0.1 버전 중 최신 버전 1.0.1u 버전
https://www.openssl.org/source/old/1.0.1/
 
# php 5.3.3 소스
https://museum.php.net/php5/
 
# 소스 다운로드
wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz
wget http://archive.apache.org/dist/httpd/httpd-2.2.34.tar.gz
wget https://museum.php.net/php5/php-5.3.3.tar.gz

7. openssl 설치

[root@localhost openssl-1.0.1u]# ./config --prefix=/usr/local/openssl -shared -fPIC
[root@localhost openssl-1.0.1u]# make && make install
[root@localhost openssl-1.0.1u]# echo "/usr/local/openssl/lib">>/etc/ld.so.conf
[root@localhost openssl-1.0.1u]# ldconfig
 
# version 확인
[root@viaweb openssl-1.0.1u]# /usr/local/openssl/bin/openssl version
OpenSSL 1.0.1u 22 Sep 2016

8. apache 설치

[root@localhost httpd-2.2.34]# yum install libtool
[root@localhost httpd-2.2.34]# ./configure --prefix=/usr/local/apache \
--enable-module=so \
--enable-so \
--enable-rewrite \
--with-mpm=prefork \
--with-ssl=/usr/local/openssl \
--enable-ssl \
--enable-deflate \
--enable-mods-shared=all \
--enable-shared=max
[root@localhost httpd-2.2.34]# make && make install

9. php 설치

의존성 패키지

yum install libxml2-devel pcre-devel bzip2-devel curl-devel gmp-devel mysql-devel unixODBC-devel ncurses-devel libtool-ltdl libtool-ltdl-devel libXpm-devel freetype-devel

# 의존성 패키지 설치
[root@localhost php-5.3.3]# yum install libxml2-devel pcre-devel bzip2-devel curl-devel ~~~~~
# openssl 연동을 위한 pkgconfig path 설정
[root@localhost php-5.3.3]# exportPKG_CONFIG_PATH=/usr/local/openssl/lib/pkgconfig
[root@localhost php-5.3.3]# ./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-bz2 \
--with-config-file-path=/usr/local/apache/conf \
--with-curl \
--with-freetype-dir=/usr \
--with-gd \
--with-gettext \
--with-gmp \
--with-iconv \
--with-jpeg-dir=/usr \
--with-kerberos \
--with-libxml-dir=/usr \
--with-mysql \
--with-mysqli \
--with-openssl \
--with-openssl-dir=/usr/local/openssl \
--without-gdbm \
--with-pcre-regex=/usr \
--with-pdo-mysql \
--with-pear \
--with-pic \
--with-png-dir=/usr \
--with-xpm-dir=/usr \
--with-zlib \
--disable-debug \
--disable-rpath \
--disable-shared \
--enable-bcmath \
--enable-calendar \
--enable-ctype \
--enable-dba \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-ftp \
--enable-gd-native-ttf \
--enable-json \
--enable-magic-quotes \
--enable-mbregex \
--enable-mbstring \
--enable-mod-charset \
--enable-pcntl \
--enable-pdo \
--enable-phar \
--enable-posix \
--enable-shmop \
--enable-sigchild \
--enable-soap \
--enable-sockets \
--enable-sqlite-utf8 \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-ucd-snmp-hack \
--enable-wddx \
--enable-xml \
--enable-xmlreader \
--enable-xmlwriter \
--with-libdir=lib64
 
[root@localhost php-5.3.3]# make && make install
[root@localhost php-5.3.3]# cp php.ini-production /usr/local/apache/conf/php.ini
 
## /usr/local/apache/conf/httpd.conf 내용 추가
AddHandler php5-script .php AddType text/html .php
 
## php.ini 수정
short_open_tag = on
post_max_size = 128M
upload_max_filesize = 128M

# 32bit 시스템의 경우 --with-libdir=lib 로 수정

10. 컴파일된 php 의 openssl 버전 정보 확인

[root@localhost php-5.3.3]# /usr/local/php/bin/php -r "phpinfo();"| grep -i openssl
Configure Command=>'./configure''--prefix=/usr/local/php''--with-apxs2= ~~~~
openssl OpenSSL support=> enabled
OpenSSL Library Version=> OpenSSL 1.0.1u 22 Sep 2016
OpenSSL Header Version=> OpenSSL 1.0.1u 22 Sep 2016
Native OpenSSL support=> enabled
PKG_CONFIG_PATH=>/usr/local/openssl/lib/pkgconfig
_SERVER["PKG_CONFIG_PATH"]=>/usr/local/openssl/lib/pkgconfig

# 이상의 테스트는 php 버전업으로 인한 소스 수정이 어려운 경우에 기존 php 버전 정보를 유지하면서 openssl 과 apache 버전업을 진행한 내용입니다.

 

# 실서비스 환경에서는 apache 와 php 의 conf 파일을 기존 설정과 매칭 시키는 작업 진행 후 서비스 적용하시기 바랍니다.

 

감사합니다.

서버호스팅 비아웹

  • 공유링크 복사

    댓글목록

    등록된 댓글이 없습니다.