suEXEC 경로/CentOS 6 변경

suEXEC 경로/CentOS 6 변경

최근 Centos 6 서버에 httpd를 설치했습니다. 내가 아는 한 suEXEC는 다음 값으로 컴파일된다.

 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="apache"
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=500
 -D AP_USERDIR_SUFFIX="public_html"

Apache를 처음부터 컴파일하지 않고 이러한 값을 변경할 수 있는 방법이 있는지 궁금합니다.

답변1

도구가 따르는 옵션을 늘리는 것은 불가능하므로 추가 옵션을 추가해야 하는 경우 직접 다시 컴파일해야 합니다. RedHat 기반 배포판에서 httpd(Apache)와 같은 패키지를 사용하는 것은 나쁘지 않습니다.

이를 위해서는 기본적으로 세 가지 작업을 수행해야 합니다.

  1. httpd에 대한 종속성 설치
  2. httpd의 소스 RPM 버전
  3. rpm빌드 영역

종속성

이 도구를 사용하여 yum-builddep작업에 도움을 줄 수 있습니다. 이 도구는 특정 RPM을 빌드하고 설치하는 데 필요한 모든 패키지를 다운로드합니다. 따라서 httpd의 RPM 버전을 구해야 합니다. 그러나 일반적으로 src.rpm 파일이라는 소스 버전을 구해야 합니다. 예를 들어:

mypackage-1.0.0-1.src.rpm

소스 속도

CentOS 6.2의 경우 다음 소스 RPM을 다운로드할 수 있습니다.http://vault.centos.org/6.2/os/Source/SPackages/httpd-2.2.15-15.el6.centos.src.rpm

빌드 환경

나는 보통 도구를 사용하여 나를 위해 설정합니다 rpmdev-setuptree.

$ yum install rpmdevtools
$ rpmdev-setuptree

이제 새로 빌드된 rpmbuild 영역으로 디렉토리를 변경하고 소스 RPM을 설치하여 빌드 방법 수정을 시작할 수 있습니다.

$ cd ~/rpm
$ rpm -ivh httpd-2.2.15-15.el6.centos.src.rpm

httpd.spec이 파일을 어떻게 편집해야 합니까 ? 이 파일은 최종 바이너리 RPM을 빌드하는 방법을 자세히 설명합니다.

$ nano SPEC/httpd.spec

이 파일에서 구성을 호출하는 섹션을 찾아야 합니다. 나는 보통 문자열을 검색합니다 --prefix. 다음 단계는 수정 사항을 추가하여 suexecget이 빌드되는 방식을 변경하는 것입니다.

구성 섹션은 다음에서 발췌되었습니다.httpd.spec

../configure \
        --prefix=%{_sysconfdir}/httpd \
        --exec-prefix=%{_prefix} \
        --bindir=%{_bindir} \
        --sbindir=%{_sbindir} \
        --mandir=%{_mandir} \
        --libdir=%{_libdir} \
        --sysconfdir=%{_sysconfdir}/httpd/conf \
        --includedir=%{_includedir}/httpd \
        --libexecdir=%{_libdir}/httpd/modules \
        --datadir=%{contentdir} \
        --with-installbuilddir=%{_libdir}/httpd/build \
        --with-mpm=$mpm \
        --with-apr=%{_prefix} --with-apr-util=%{_prefix} \
        --enable-suexec --with-suexec \
        --with-suexec-caller=%{suexec_caller} \
        --with-suexec-docroot=%{contentdir} \
        --with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \
        --with-suexec-bin=%{_sbindir}/suexec \
        --with-suexec-uidmin=500 --with-suexec-gidmin=100 \
        --enable-pie \
        --with-pcre \
        $*

파일을 저장하면 이제 httpd 버전을 빌드할 수 있습니다.

소스 RPM 빌드

다음 명령은 RPM을 구축합니다.

$ rpmbuild -ba SPEC/httpd.spec

모든 것이 순조롭게 진행된다면 RPM 디렉토리에 새 버전의 RPM이 남아 있어야 합니다: RPM/httpd-2.2.15-15.el6.centos.x86_64.rpm.

이제 다른 일반 RPM처럼 설치할 수 있습니다.

인용하다

관련 정보