원본 코드 컴 파일 설치 http 2.4
14606 단어 프로그램 설치
이 편 은 CentOS 6.8 컴 파일 에 httpd 2.4 를 설치 합 니 다.... 때문에http://blog.csdn.net/wangzhenyu177/article/details/69808141 에서 이미 컴 파일 설치 절 차 를 설 명 했 기 때문에 본 고 는 더 이상 군말 하지 않 는 다.주로 httpd 2.4 를 컴 파일 하 는 과정 에서 주의해 야 할 것 입 니 다.
2 컴 파일 설치 절차
컴 파일 설 치 는 개발 패키지 'Development tools' 와' Server Platform '과 gcc 를 먼저 설치 해 야 합 니 다.원본 코드http://httpd.apache.org 다운로드
2.1 apr、apr-util
httpd 는 windows, Liux, 유 닉 스 등 다양한 플랫폼 에 배치 할 수 있 으 며, 모든 플랫폼 에 서로 다른 코드 를 작성 할 필요 가 없습니다.apr, apr - util 이 있 기 때 문 입 니 다.
apr: apache portable runtime 은 가상 컴퓨터 와 유사 하여 apache 에 운영 환경 을 제공 합 니 다.서로 다른 플랫폼 에 대해 서로 다른 apr 가 있 습 니 다.httpd 는 서로 다른 apr 를 통 해 서로 다른 플랫폼 에서 실 행 될 수 있 습 니 다.
CentOS 6 에 설 치 된 apr 와 apr - util 버 전 은 1.4 이전 입 니 다.
[root@node1 ~]% rpm -q apr
apr-1.3.9-5.el6_2.x86_64
[root@node1 ~]% rpm -q apr-util
apr-util-1.3.9-3.el6_0.1.x86_64
한편, httpd 2.4 는 apr, apr - util 이 1.4 이상 버 전 (apr 와 apr - util 버 전 번호 가 일치 하지 않 음) 이 필요 하기 때문에 이 두 도 구 를 먼저 컴 파일 하여 설치 해 야 합 니 다.있다http://apr.apache.org 다운로드
apr - util 은 apr 에 의존 하기 때문에 apr 를 먼저 컴 파일 하여 설치 하고 압축 을 푼 apr 디 렉 터 리 에서 실행 합 니 다.
[root@node1 apr-1.6.3]% ./configure --prefix=/usr/local/apr
……
[root@node1 apr-1.6.3]% make && make install
……
지정 한 디 렉 터 리 에 내용 이 있 는 지 확인 하면 보통 정상 입 니 다.
[root@node1 apr-1.6.3]% ls /usr/local/apr/
bin build-1 include lib
apr - util 과 유사 하지만 의존 하 는 apr 의 위 치 를 지정 해 야 합 니 다:
[root@node1 apr-util-1.6.1]% ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
그 다음 에 도 make, make install.make 타 임 스 가 잘 못 했 습 니 다.
error: expat.h: No such file or directory
expat. h 헤더 파일 을 찾 을 수 없습니다.이 파일 은 expat - devel 패키지 에 있 습 니 다. 기본적으로 설치 되 지 않 았 습 니 다. 설치 하면 ok 입 니 다.
[root@node1 apr-util-1.6.1]% rpm -ql expat-devel
/usr/include/expat.h
……
[root@node1 apr-util-1.6.1]% ls /usr/local/apr-util/
bin include lib
2.2 설치 httpd 2.4
2.2.1 configure 상용 옵션
httpd 의... / configure 의 일반적인 옵션:
옵션
의의
–enable-so
동적 로드 모듈 기능 사용
–enable-ssl
ssl 기능 사용.먼저 설치 해 야 합 니 다.
–enable-cgi
cgi 기능 사용 하기
–enable-rewrite
URL 리 셋 기능 사용
–enable-modules=[all | most | ……]
어떤 모듈 을 사용 할 지 지정 합 니 다.구체 적 인 모듈 이름 을 지정 할 수도 있 고 all 을 사용 하여 모든 모듈 을 사용 할 수도 있 습 니 다. most 는 대부분의 상용 모듈 을 사용 하 는 것 을 표시 합 니 다.보통 모스 트 를 사용 하면 됩 니 다.
–enable-mpms-shared=[prefork | worker | event | all]
어떤 MPM 모듈 1 을 컴 파일 할 지 지정 합 니 다.all 을 사용 하여 전체 컴 파일 을 표시 할 수 있 습 니 다.
–with-mpm=[prefork | worker | event]
만약 3 가지 MPM 모듈 이 모두 컴 파일 되 었 다 면, 이 항목 을 통 해 기본 값 으로 어떤 것 을 사용 할 지 지정 합 니 다.
–with-zlib
페이지 압축 에 zlib 라 이브 러 리 의존
–with-pcre
pcre 라 이브 러 리 에 의존 하여 정규 표현 식 문 제 를 해결 합 니 다.
–with-apr=PATH
의존 하 는 apr 경 로 를 지정 합 니 다.경 로 를 알려 야 합 니 다. 그렇지 않 으 면 컴 파일 할 때 자동 으로 / usr 아래 apr 를 찾 습 니 다. 컴 파일 된 높 은 버 전 apr 가 아 닙 니 다. 아래 는 같 습 니 다.
–with-apr-util=PATH
의존 하 는 apr - util 경 로 를 지정 합 니 다.
–sysconfdir=PATH
설정 파일 이 어느 경로 에 설치 되 어 있 는 지 지정 합 니 다.지정 하지 않 으 면 설정 파일 은 프로그램 에 설 치 된 디 렉 터 리 에 있 습 니 다.지정 한 / etc 디 렉 터 리 의 경우, httpd 2.2 의 이름 을 덮어 쓰 지 않도록 주의 하 십시오.
enable 류 는 일반적으로 어떤 기능 을 사용 하 는 지 지정 하 는 데 사용 되 며, with 류 는 일반적으로 어떤 2 에 의존 하 는 지 볼 수 있 습 니 다.
2.2.2 자주 발생 하 는 오류
기본적으로 pcre - devel 패키지 가 설치 되 어 있 지 않 습 니 다.... / configure 타 임 스 는 다음 과 같은 오류 입 니 다.
configure: error: pcre-config for libpcre not found
기본적으로 openssl - devel 패키지 가 설치 되 어 있 지 않 습 니 다.... / configure 타 임 스 는 다음 과 같은 오류 입 니 다.
configure: error: mod_ssl has been requested but can not be built due to prerequisite failures
필자 가 처음에 사용 한 apr - util 은 1.6 이상 이 고 make 타 임 스 는 다음 과 같은 오류 입 니 다.
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ParserCreate'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_GetErrorCode'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetUserData'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ErrorString'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetEntityDeclHandler'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ParserFree'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetElementHandler'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_StopParser'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_Parse'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetCharacterDataHandler'
apr - util 은 1.6 버 전보 다 낮은 버 전 을 사용 하여 정상 으로 회복 합 니 다.CentOS 7 에 apr - utl 1.6 이상 을 사용 하 는 것 은 문제 가 없다 고 합 니 다.보아하니 CentOS 6 에 컴 파일 하여 설치 한 것 같다. apr - util 의 버 전 은 1.4 보다 낮 을 수도 없고 1.6 보다 높 을 수도 없다.
상기 오 류 를 일일이 수정 한 후 컴 파일 설치 가 완료 되 었 습 니 다.이 호스트 IP 는 192.168.0.106 입 니 다. 컴 파일 설치 이기 때문에 환영 페이지 가 없 지만 방문 할 때 시작 되 었 음 을 표시 합 니 다.
3. 디 렉 터 리 별 내용
컴 파일 완료 후 생 성 된 디 렉 터 리:
[root@node1 httpd_24]% ls /usr/local/httpd_24/
bin build cgi-bin error htdocs icons include lib logs man manual modules
대부분의 디 렉 터 리 는 이름 이 알려 져 있 습 니 다. 그 중:
[root@node1 httpd_24]% ls build/
config.nice config_vars.mk instdso.sh library.mk ltlib.mk mkdir.sh program.mk rules.mk special.mk
[root@node1 httpd_24]% cat build/config.nice
#! /bin/sh
#
# Created by configure
"./configure" \
"--prefix=/usr/local/httpd_24" \
"--sysconfdir=/etc/httpd_24" \
"--enable-so" \
"--enable-ssl" \
"--enable-cgi" \
"--enable-rewrite" \
"--enable-modules=most" \
"--enable-mpms-shared=all" \
"--with-mpm=prefork" \
"--with-zlib" \
"--with-pcre" \
"--with-apr=/usr/local/apr" \
"--with-apr-util=/usr/local/apr-util" \
"$@"
[root@node1 httpd_24]% ls /etc/httpd_24
extra httpd.conf magic mime.types original
홈 프로필 httpd. conf 를 제외 한 다른 프로필 은 모두 extra 디 렉 터 리 에 있 습 니 다.
[root@node1 httpd_24]% ls /etc/httpd_24/extra/
httpd-autoindex.conf httpd-info.conf httpd-mpm.conf httpd-userdir.conf
httpd-dav.conf httpd-languages.conf httpd-multilang-errordoc.conf httpd-vhosts.conf
httpd-default.conf httpd-manual.conf httpd-ssl.conf proxy-html.conf
CentOS 7 의 httpd 의 다른 프로필 은 / etc / conf. d / * 와 / etc / conf. modules. d / * 입 니 다.
4 서비스 스 크 립 트 수정
컴 파일 된 프로그램 은 일반적으로 서비스 스 크 립 트 가 없 지만 httpd 는 시작 스 크 립 트 apachectl 을 가지 고 있 습 니 다.
[root@node1 httpd_24]% ls /usr/local/httpd_24/bin
ab apu-1-config checkgid envvars fcgistarter htdbm htpasswd httxt2dbm rotatelogs
apachectl apxs dbmmanage envvars-std htcacheclean htdigest httpd logresolve
명령 httpd 도 이 디 렉 터 리 에 있 습 니 다.이 경 로 를 PATH 에 추가 하면 사용 할 수 있 습 니 다. 그렇지 않 으 면 절대 경 로 를 사용 해 야 합 니 다.
그러나 이 경 로 를 PATH 에 추가 하 더 라 도 service 로 제어 할 수 없습니다. 시스템 에 있 는 httpd 2.2 의 서비스 스 크 립 트 를 2.4 의 서비스 스 크 립 트 로 수정 할 수 있 습 니 다.
[root@node1 init.d]% cd /etc/rc.d/init.d/
[root@node1 init.d]% cp httpd httpd_24
httpd 수정24 의 일부 내용:
1. httpd 서비스 스 크 립 트 설정 파일 / etc / sysconfig / httpd 를 읽 는 문 구 를 삭제 합 니 다.httpd 2.2 의 서비스 스 크 립 트 설정 파일 이 httpd 에 영향 을 미 치지 않도록 하기 위해 서 입 니 다.24 (일반 httpd 의 서비스 스 크 립 트 설정 파일 도 주석 정보 이지 만):
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
2. apachectl, httpd 의 파일 경 로 를 수정 하고 pid 파일, 잠 금 파일 을 수정 합 니 다.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
다음으로 변경:
apachectl=/usr/local/httpd_24/bin/apachectl
httpd=${HTTPD-/usr/local/httpd_24/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/usr/local/httpd_24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd_24}
apachectl 과 httpd 를 httpd 2.4 에 대응 하 는 경로 로 변경 합 니 다.파일 을 잠 그 고 이름 을 바 꾸 면 됩 니 다.pid 파일 도 수정 하지 않 을 수 있 습 니 다. 수정 하지 않 으 면 httpd 2.2 와 httpd 2.4 를 동시에 시작 할 수 없습니다. pid 파일 이 같 기 때 문 입 니 다.여기 pid 파일 도 바 꿨 어 요.설 치 된 pid 파일 을 컴 파일 하 는 것 은 / usr / local / httpd 입 니 다.24/logs/httpd.pid。
이렇게 하면 서비스 스 크 립 트 를 통 해 httpd24 제어:
[root@node1 ~]% service httpd_24 start
Starting httpd: [ OK ]
[root@node1 ~]% curl 192.168.0.106
<html><body><h1>It works!h1>body>html>
chkconfig 에 가입 하여 chkconfig 가 켜 져 있 는 지 여 부 를 관리 합 니 다:
[root@node1 ~]% chkconfig --add httpd_24
[root@node1 ~]% chkconfig --list httpd_24
httpd_24 0:off 1:off 2:off 3:off 4:off 5:off 6:off
5. httpd 2.2 부분 특성 대비
MPM 은 2.4 에서 동적 으로 불 러 오고 마 운 트 해제 할 수 있 는 모듈 입 니 다. prefork, worker, event 모드 의 전환 은 설정 파일 을 통 해 조정 할 수 있 습 니 다.한편, httpd 2.2 의 MPM 은 정적 모듈 로 같이 컴 파일 할 수 있 을 뿐 동적 으로 마 운 트 해제 할 수 없습니다.
[root@node1 ~]% httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
[root@node1 ~]% /usr/local/httpd_24/bin/httpd -l
Compiled in modules:
core.c
mod_so.c
http_core.c
2.2 기본 값 은 prefork 4 를 사용 하고 httpd 와 함께 컴 파일 된 것 을 볼 수 있 습 니 다.httpd 2.4 의 컴 파일 된 모듈 은 prefork 가 없습니다.
(끝)
httpd 2.4 에서 prefork, worker, event 를 모듈 로 설정 파일 로 전환 할 수 있 습 니 다.2. 2 에 서 는 동적 모듈 로 사용 할 수 없고 httpd 와 함께 컴 파일 할 수 있 습 니 다.CentOS 6 는 기본적으로 3 자 를 모두 컴 파일 하여 서로 다른 응용 프로그램 / usr / bin / httpd, / usr / bin / httpd. worker, / usr / bin / httpd. event 에 대응 합 니 다.↩
disable, without 를 사용 하여 어떤 기능 을 사용 하지 않 고 어떤 패키지 에 의존 하지 않 는 지 명시 적 으로 지정 할 수 있 습 니 다.↩
httpd 를 실행 하 는 user, group 을 포함 하여 apache 가 아 닌 daemon 이 되 었 습 니 다.컴 파일 설치 설정 과 yum 설치 설정 이 많이 다 릅 니 다. 설정 파일 에서 볼 수 있 습 니 다. 여 기 는 군말 하지 않 습 니 다.↩
그래서 CentOS 6 은 사용 자 를 위해 prefork, worker, event 세 가지 모델 을 사용 하여 세 가 지 를 각각 컴 파일 했다.기본적으로 prefork 를 사용 합 니 다. 다른 두 모드 에 대응 하 는 프로그램 은 / usr / bin / httpd. worker 와 / usr / bin / httpd. event 입 니 다.서비스 스 크 립 트 가 자동 으로 시 작 된 것 은 prefork 입 니 다. 이것 은 서비스 스 크 립 트 설정 파일 / etc / sysconfig / httpd 에서 정 의 된 것 입 니 다.↩
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
원본 코드 컴 파일 설치 http 2.4설정 파일 이 어느 경로 에 설치 되 어 있 는 지 지정 합 니 다.지정 하지 않 으 면 설정 파일 은 프로그램 에 설 치 된 디 렉 터 리 에 있 습 니 다.지정 한 / etc 디 렉 터 리 의 경우, httpd ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.