아마존리눅스3(AL3)에서 PHP 7.4 설치
AL3에서는 패키지가 제공되지 아니하기 때문에 PHP 7.4 버전이 필요하다면 php-fpm을 소스를 받아 컴파일 하는 방법을 사용해야 됩니다.
5시간은 걸린것 같은데 아래 사용하시면 시간을 대폭 줄일 수 있으니 필요하신분 참고하시면 되고 문제가 있었던 부분은 openssl 입니다.
PHP 7.4에서 사용해야 되는 openSSL 버전과 현재 서버에 설치되어 있는 OpenSSL 버전이 차이가 있어서 컴파일 과정에서 오류가 발생 하는데 이 문제인지 확인 하는 방법은 끝에 적어 놓은것 처럼 openssl만 빼고 컴파일해보세요. 잘 된다면 정확히 openssl 버전의 문제 입니다.
## 소스 컴파일에 필요한 패키지 설치
sudo dnf update -y
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y libxml2-devel bzip2-devel curl-devel readline-devel tmux libxslt-devel openssl-devel sqlite-devel libjpeg-devel libpng-devel libwebp-devel freetype-devel libzip-devel
---
1. Oniguruma 소스 다운로드 및 컴파일
cd /usr/local/src
# Oniguruma 최신 소스 다운로드 (6.9.x 버전)
sudo curl -L -O https://github.com/kkos/oniguruma/releases/download/v6.9.9/onig-6.9.9.tar.gz
sudo tar -xzvf onig-6.9.9.tar.gz
cd onig-6.9.9
# 빌드 및 설치
sudo ./configure --prefix=/usr
sudo make && sudo make install
2. pkg-config 경로 인식 시키기
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
---
## 이전 버전의 openSSL 설치
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=/usr/local/openssl111 shared zlib
make && sudo make install
---
● 마무리스텝: PHP 컴파일 재시도하기
cd /usr/local/src
sudo curl -O https://www.php.net/distributions/php-7.4.33.tar.gz
cd /usr/local/src
rm -rf /usr/local/src/php-7.4.33
sudo tar -xzvf php-7.4.33.tar.gz
cd /usr/local/src/php-7.4.33
# 1. 빌드 캐시 청소
sudo make clean
sudo rm -f config.cache
# 2. OpenSSL 1.1.1의 헤더와 라이브러리 경로를 환경변수로 강제 지정하며 configure 실행
nginx, apache 사용하는 웹서버에 따라 맞게 변경 필요
sudo LDFLAGS="-L/usr/local/openssl111/lib -Wl,-rpath,/usr/local/openssl111/lib" \
CFLAGS="-I/usr/local/openssl111/include" \
PKG_CONFIG_PATH="/usr/local/openssl111/lib/pkgconfig" \
./configure \
--prefix=/usr/local/php74 \
--with-config-file-path=/usr/local/php74/etc \
--with-config-file-scan-dir=/usr/local/php74/etc/conf.d \
--enable-fpm \
--with-fpm-user=apache \
--with-fpm-group=apache \
--enable-mbstring \
--enable-mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-curl \
--with-openssl=/usr/local/openssl111 \
--with-zlib \
--enable-gd \
--with-jpeg \
--with-webp \
--with-freetype \
--enable-bcmath \
--enable-xml \
--enable-dom \
--enable-simplexml \
--enable-xmlreader \
--enable-xmlwriter \
--with-xsl \
--with-zip \
--with-iconv \
--enable-opcache \
--enable-soap \
--enable-sockets
# 3. 컴파일 및 설치
sudo make && sudo make install
▷ oepnssl에서 계속 오류가 발생하면 빼고 컴파일 해보기
문제 없이 컴파일이 잘 되었다. 그래서 이전 버전의 openSSL 설치 방법위 위쪽에 추가 된것
