본문 바로가기
시스템/리눅스

rocky 리눅스 아파치 2.4.63 컴파일 설치

by cbwstar 2025. 4. 15.
728x90
반응형
/* 오프라인 rocky 리눅스 저장소 생성 */
https://rockylinux.org/ko-KR/download
사이트에서 Rocky-8.10-x86_64-dvd.iso
dvd 이미지를 다운받아서 이미지를 윈도우에 마운트해서 들어가면 AppStream, BaseOS 폴더가 있다. 이 두개 폴더가 패키지가 들어 있는 폴더다.
이폴더를 오프라인 리눅스 서버에 카피한다.

카피할 폴더를 리눅스에 만든다
mkdir /local-repo
cd /local-repo
여기 폴더에 ftp로 다운받은 dvd에 있는 폴더를 올린다.(AppStream,BaseOS)

[root@0052e15da7b4 local-repo]# ll
total 16
drwxr-xr-x 4 root root 4096  4월 15 10:26 .
drwxr-xr-x 1 root root 4096  4월 15 11:03 ..
drwxr-xr-x 4 root root 4096  4월 15 10:25 AppStream
drwxr-xr-x 4 root root 4096  4월 15 10:26 BaseOS
[root@0052e15da7b4 local-repo]#

/* 로컬저장소를 인식할수 있게 설정한다. */
cd /etc/yum.repos.d

/* 이동후 거기에 있는 파일들은 백업을 해둔다. 온라인 저장소에서 받아오는 파일들이다. 로컬저장소에서만 가져와야 하기 때문에 온라인 저장소 설정 파일은 백업폴더로 이동한다. */
mkdir ./backup
mv *.repo ./backup

/* 로컬저장소 파일을 생성한다. */
vi local.repo

[local-BaseOS]
name=Rocky Linux 8.10 - BaseOS
baseurl=file:///local-repo/BaseOS
enabled=1
gpgcheck=0

[local-AppStream]
name=Rocky Linux 8.10 - AppStream
baseurl=file:///local-repo/AppStream
enabled=1
gpgcheck=0


/* 리포 등록후 반드시 캐시 초기화 및 생성 */
dnf clean all
dnf makecache

/* 저장소가 정상 등록 되었는지 확인 */
dnf repolist

/* 출력 예시 */
[root@0052e15da7b4 yum.repos.d]# dnf repolist
repo id                                                                       repo name
local-AppStream                                                            Rocky Linux 8.10 - AppStream
local-BaseOS                                                                 Rocky Linux 8.10 - BaseOS

/* 로컬저장소가 구축되었으면 인터넷이 안되도 오프라인에서 설치가 가능하다. */
/* 아파치를 설치 한다. */
/* 인터넷이 되는곳에서 아파치 최신소스 버전을 다운 받는다. 컴파일 버전으로 설치 하겠다. */

rocky 리눅스 아파치 2.4.63 컴파일 설치

/* 아파치 2.4.63 컴파일 설치 */

종속성 설치
Apache는2.4 부터 apr,apr-util 이 소스에서 빠졌다. 별도로 설치해서 아파치 소스 경로에 복사 해 줘야 한다.

dnf install -y wget
dnf install -y net-tools
dnf install -y gcc
dnf install -y gcc-c++
dnf install -y make
dnf install -y pcre-devel
dnf install -y openssl-devel
dnf install -y expat-devel

/* 아파치 소스와 설치에 필요한 유틸을 다운 받는다. */
1. 아파치 소스 리눅스에서 직접 다운로드 설치
 wget https://downloads.apache.org/httpd/httpd-2.4.63.tar.gz

압축해제
tar -xvf httpd-2.4.63.tar.gz

//2. apr 다운로드
wget https://downloads.apache.org/apr/apr-1.7.5.tar.gz

압축을 푼다
tar -xvf apr-1.7.5.tar.gz

//3. apr-util 다운로드
wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
tar -xvf apr-util-1.6.3.tar.gz

/* 압축해제한 파일들을 apache소스의 srclib폴더로 이동한다. */
mv apr-1.7.5 httpd-2.4.63/srclib/apr

mv apr-util-1.6.3 httpd-2.4.63/srclib/apr-util

//4. pcre 다운로드
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz

tar -xvf pcre-8.45.tar.gz


// 아파치 서버를 설치할 폴더를 생성한다.
mkdir /apps

// pcre 폴더로 이동해서 환경설정을 한다.
cd ./pcre-8.45

//환경설정 명령어 옵션으로 아파치 서버를 설치할 폴더 지정
./configure --prefix=/apps

컴파일
make

컴파일 배포
make install

/* 컴파일 배포 명령 실행후 생성된 /apps 폴더에 배포가 되었는지 확인 */
ls /apps

apps 폴더에 배포가 된것 확인

- 아파치 서버 Configuration

/* 압축푼 아파치 폴더로 이동 */
cd ..
cd httpd-2.4.63/

/* configure 명령을 실행하여 아파치에 사용할 모듈을 설정한다. */
SSL 인증을 위해 --enable-ssl=shared를 포함
AJP 프로토콜을 사용하려면 mod_proxy_ajp 모듈을 활성
 --enable-proxy와 --enable-proxy-ajp 옵션을 추가


./configure \
--prefix=/apps/apache2.4.63 \
--with-included-apr \
--enable-ssl=shared \
--enable-rewrite \
--enable-modules=most \
--enable-mods-shared=all \
--enable-proxy \
--enable-proxy-ajp

위 명령어 실행후 에러가 없으면 make 명령으로 컴파일을 한다.
make

컴파일 도중 에러가 아래와 같이 발생할 경우
ERROR
xml/apr_xml.c:35:19: fatal error: expat.h: 그런 파일이나 디렉터리가 없습니다
-> sudo yum install expat-devel

undefined reference to `XML_GetErrorCode'
->
에디터로 아래의 파일 열어서
 vi build/config_vars.mk
AP_LIBS 로 시작하는 라인을 찾아서 -lexpat을 추가 후 
다시 make (컴파일)

에러가 없으면 
컴파일 배포
make install

아파치 서버 기동
cd /apps/apache2.4.63/bin
./apachectl start

/* 아파치 기동시 아래와 같은 에러가 발생할 경우 */

다음과 같은 에러가 발생시 조치사항
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

httpd.conf 파일 열어서 ServerName 주석해제
ServerName localhost:80
저장후 실행

기동 확인
80 포트 기동 확인하기

curl http://localhost:80

/* 정상기동이 되었으면 wildfy연동하기 위해서 mod_jk 를 설치 해야 한다. */
 apxs 모듈설치 확인
find / -name "*apxs*"

[root@22ae60ec61db apache]# find / -name "*apxs*"
find: File system loop detected; ‘/sys/kernel/debug/device_component’ is part of the same file system loop as ‘/sys/kernel/debug’.
/root/apache/httpd-2.4.63/support/apxs.in
/root/apache/httpd-2.4.63/support/apxs
/root/apache/httpd-2.4.63/docs/manual/programs/apxs.html
/root/apache/httpd-2.4.63/docs/manual/programs/apxs.html.ko.euc-kr
/root/apache/httpd-2.4.63/docs/manual/programs/apxs.html.fr.utf8
/root/apache/httpd-2.4.63/docs/manual/programs/apxs.html.en
/root/apache/httpd-2.4.63/docs/manual/programs/apxs.html.tr.utf8
/root/apache/httpd-2.4.63/docs/man/apxs.1
/root/apache/httpd-2.4.63/docs/man/tr/apxs.1
/apps/apache2.4.63/manual/programs/apxs.html
/apps/apache2.4.63/manual/programs/apxs.html.ko.euc-kr
/apps/apache2.4.63/manual/programs/apxs.html.fr.utf8
/apps/apache2.4.63/manual/programs/apxs.html.en
/apps/apache2.4.63/manual/programs/apxs.html.tr.utf8
/apps/apache2.4.63/man/man1/apxs.1
/apps/apache2.4.63/bin/apxs


/* 확인결과 설치가 안되어 있다. 미 설치시, 아래 명령어로 설치 */
/usr/share/man/man1/apxs.1.gz
/usr/bin/apxs
usr 폴더에 apxs가 안보일 경우 아래 명령어로 설치한다.


dnf install httpd-devel
dnf install redhat-rpm-config
dnf install apr-devel

/* 설치후 다시 확인 */
[root@22ae60ec61db native]# find / -name "*apxs*"
find: File system loop detected; ‘/sys/kernel/debug/device_component’ is part of the same file system loop as ‘/sys/kernel/debug’.
/root/apache/tomcat-connectors-1.2.50-src/support/jk_apxs.m4
/root/apache/tomcat-connectors-1.2.50-src/native/apache-2.0/Makefile.apxs.in
/root/apache/httpd-2.4.63/support/apxs.in
/root/apache/httpd-2.4.63/support/apxs
/root/apache/httpd-2.4.63/docs/manual/programs/apxs.html
/root/apache/httpd-2.4.63/docs/manual/programs/apxs.html.ko.euc-kr
/root/apache/httpd-2.4.63/docs/manual/programs/apxs.html.fr.utf8
/root/apache/httpd-2.4.63/docs/manual/programs/apxs.html.en
/root/apache/httpd-2.4.63/docs/manual/programs/apxs.html.tr.utf8
/root/apache/httpd-2.4.63/docs/man/apxs.1
/root/apache/httpd-2.4.63/docs/man/tr/apxs.1
/* 설치후 여기 부분 추가 */
/usr/share/man/man1/apxs.1.gz
/usr/bin/apxs
/* 여기까지 있으면 정상추가 */

/apps/apache2.4.63/manual/programs/apxs.html
/apps/apache2.4.63/manual/programs/apxs.html.ko.euc-kr
/apps/apache2.4.63/manual/programs/apxs.html.fr.utf8
/apps/apache2.4.63/manual/programs/apxs.html.en
/apps/apache2.4.63/manual/programs/apxs.html.tr.utf8
/apps/apache2.4.63/man/man1/apxs.1
/apps/apache2.4.63/bin/apxs



/* 사이트 들어가서 연동모듈 최신버전을 다운 받는다. */
https://archive.apache.org/dist/tomcat/tomcat-connectors/jk/

wget https://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.50-src.tar.gz

압축을 푼다
tar xvzf tomcat-connectors-1.2.50-src.tar.gz

/* 컴파일 진행 */
cd tomcat-connectors-1.2.50-src/native

./configure --with-apxs=/usr/bin/apxs

make

/* 에러가 없으면 배포한다 */
make install

/* 컴파일이 정상적으로 완료 되면 아래 경로에 mod_jk.so 파일이 생성 된다. */
cd /etc/httpd/modules

/* 생성된 파일을 아파치 서버에 모듈 폴더로 복사한다. */

cp /etc/httpd/modules/mod_jk.so  /apps/apache2.4.63/modules

/* 위에 설정이 끝나야 wildfly서버와 연동을 할수 있다. */

/* 방화벽 설정이 되어 있는 경우 */
외부 접속 가능하게 방화벽 포트 허용
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --list-all

/* 자바 1.8 설치 */
/* 설치할 패키지 검색 */
dnf search openjdk

/* 자바 1.8 개발자용 설치 */
dnf install java-1.8.0-openjdk-devel.x86_64

/* 자바 설치 버전 확인 */
java -version

/* 자바 설치 경로 확인 */
[root@8a42f5f94a89 /]# which java
/usr/bin/java

/* which 명령으로 찾은 경로는 실제 경로가 아닌 심볼릭 링크 일수도 있음 which 명령으로 찾은 경로를 readlink -f 명령으로 실행하면 해당 경로가 심볼릭 링크라면 모든 링크를 따라가서 실제 파일의 전체 경로를 보여 줍니다. */

 readlink -f /usr/bin/java
/* 실제 물리적 경로 */
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-2.el8.x86_64/jre/bin/java

아래와 같이 두개의 명령어를 같이 사용 실제 물리적 경로 출력 
 readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-2.el8.x86_64/jre/bin/java

/* 자바가 여러버전이 설치된 경우 alternatives 명령으로도 실제 경로를 확인 할수 있음 */
/* 여러 버전의 자바가 설치 되어 있는 경우 alternatives 명령으로 사용하고 싶은 자바 버전을 선택할수 있음 */
alternatives --config java

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-2.el8.x86_64/jre/bin/java
728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading