티스토리 뷰
AJP 프로토콜 관련 테스트를 할 필요가 있어 아파치를 설치하게 되었다.
사용하는 OS는 ubuntu 16.04 이다.
사실 아파치는 좋은 명령어가 있다.
sudo apt-get install apache2
근데 이렇게 하면 테스트 설정하고 전혀 안맞아서 쓸 수가 없었다.
그래서 직접 다운로드 받아서 빌드를 해야했다.
고통의 연속이다.
./configure --prefix=PREFIX
make
make install
기본적으로 이 명령어가 시용된다.
정말로 많은 것이 생략되어 있다. 하나씩 알아봐야겠다.
먼저 저 3개의 명령어는 전부다 닉값을 한다.
configure는 makefile이라는 설정파일을 만들어준다. configure에 들어가는 옵션들이 반영된다.
make는 makefile에 정해진 규칙에 따라 컴파일을 해준다.
make install은 정해진 위치에 바이너리를 옮긴다. 여기서는 PREFIX가 정해진 위치이다.
우리의 apt-get은 짱짱맨이라 모든걸 다 해주시지만, 안타깝게도 우리의 binary는 아무것도 해주지 않는다.
뭘 개발하느냐에 따라 pc 설정이 다르겠지만, 나처럼 intellij 만 주구장창 쓰던 사람은 아무것도 모른다.
저걸로는 대체 뭔말인가 싶을 것이다.
시작은 package 설치이다.
sudo apt-get install libtool-bin
sudo apt install apache2-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libexpat1-dev
이 패키지는 설치중에 난 에러를 해결하는 방법을 찾다가 설치한 패키지이다.
아마 이것들을 설치하면 아래에서 언급하는 에러가 안날수도 있다.
시작은 apr과 apr-util, 그리고 apache소스코드를 받는 것이다.
https://apr.apache.org/download.cgi
https://archive.apache.org/dist/httpd/
이 링크에서 원하는 버전을 다운로드 받으면 된다.
귀찮으면
wget https://archive.apache.org/dist/httpd/httpd-2.2.9.tar.gz
wget archive.apache.org/dist/apr/apr-util-1.6.1.tar.gz
wget archive.apache.org/dist/apr/apr-1.6.3.tar.gz
이것도 괜찮다. 물론 이걸 쓰면 원하는 버전은 못받는다.
그리고 라이브러리와 아파치의 버전도 맞춰야 한다. 어차피 버전이 안맞으면 에러를 알아서 띄워주니 걱정 안해도 된다.
tar -xvf apr-1.6.3.tar.gz
tar -xvf apr-util-1.6.1.tar.gztar -xvf httpd-2.2.9.tar.gz
이걸로 풀자.
먼저 apr부터 가자. /home/jongqui는 아파치를 설치할 경로이다.
./configure --prefix=/home/jongqui/apr
make
make install
./configure 실행시에 아래같은 에러가 날 수 있다.
rm: cannot remove `libtoolT': No such file or directory
그러면 아래 명령어를 쳐주면 된다고 한다.
cp -arp libtool libtoolT
apr-util도 비슷하다.
./configure --with-apr=/home/jongqui/apr --prefix=/home/jongqui/apr-util
make
make install
중간에 libtool 설정을 추가로 해줘야 한다고 경고가 뜰 수 있다.
libtool --finish /home/jongqui/apr/lib
이제 httpd 폴더에 들어가자.
./configure --prefix=/home/jongqui/apache --with-apr=/home/jongqui/apr --with-apr-util=/home/jongqui/apr-util --with-included-apr
make && make install
여기까지가 끝이다. --with-included-apr을 빼면 버전 에러가 난다.
설정에 저걸 안해주면 다른 버전의 apr을 잡게 되어있는 것 같다.
주의할 점은 ./configure의 옵션을 잘못 준 경우에는 꼭 make clean으로 정리를 해주고 빌드를 다시 해야한다는 것이다.
이제 거의다 끝났다.
실행파일은 아래 경로에 있다.
/home/jongqui/apache/bin
시작명령어는 아래와 같다.
./apachectl start
실행하면, 에러가 날 것이다.
port 80번이라 안된다는 내용이다. 1~1024는 well-known port라고 해서 아무에게나 주지 않기 때문이다.
그럼 어떻게 해야하느냐? 간단하다. 관리자 권한을 주면 된다. 포트번호를 변경하는 것도 괜찮다.
포트번호는 아래 경로에 있다.
/home/jongqui/apache/conf/httpd.conf
해당부분이 포트인데, 여기서 포트번호를 1024보다 큰 포트로 변경하면 된다.
개인적으론 아파치가 너무 설치하기 복잡하게 되어있다고 생각한다. 구체적인 이유는 모르겠지만, 아마 라이센스 문제 때문에 다 분리해놓은 것 같다. 오픈소스를 사용하는 입장에서는 어쩔 수 없이 감수해야하는 부분이다.
빌드자체도 너무 어렵다.
그리고 인터넷에서 사용하는 예제는 prefix 경로를 /usr/local/apache2로 잡는데, 이걸로 하면 make install을 관리자 권한으로 해주어야 한다.
난 그게 귀찮아서 home 디렉토리에다가 설치한 것이다. 설치 경로는 편한대로 하면 된다.
하지만 이게 끝은 아니다. 이걸로는 기본적인 기능 말고는 아무것도 안된다. Apache-Tomcat 연동을 해야하는 나로선 apxs를 이용해 확장 모듈을 설치해야 하는 작업이 남아있다. 이건 다음 포스팅에....
'개발 > 아파치와 톰캣' 카테고리의 다른 글
Tomcat HTTP location Header 이슈 (1) | 2019.08.18 |
---|---|
자바 어플리케이션 inputstream 주의사항 (0) | 2019.01.20 |
ajp 요청 헤더2 (0) | 2019.01.20 |
AJP 요청 헤더 (0) | 2018.10.27 |
ajp 프로토콜 설정 (0) | 2018.07.08 |
- Total
- Today
- Yesterday
- springboot3
- 전세사기
- ouath2
- 티스토리챌린지
- java
- 오블완
- 이륜차
- springboot
- 토스페이
- 광군제
- 알리
- 안전신문고
- 포상금
- JPA
- ORM
- 알리익스프레스
- k베뉴
- Thymeleaf
- Java17
- 공익제보단
- 한국교통안전공단
- 탈세
- n+1
- tomcat
- Request
- Azure
- 홈택스
- 현금영수증
- Spring
- 부가가치세
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |