원래 레이아웃, 구성 및 구성 옵션을 사용하여 우분투에서 최신 apache2를 컴파일하는 방법

원래 레이아웃, 구성 및 구성 옵션을 사용하여 우분투에서 최신 apache2를 컴파일하는 방법

우분투에서 apache2를 컴파일해야 하지만 원래 구성과 레이아웃을 사용하고 싶습니다. 그러기 위한 정보를 찾는데 시간이 오래 걸렸기 때문에 다른 분들께 도움이 되고자 이 질문과 답변을 만들어볼까 생각했습니다.

참고: 최신 버전의 Apache가 필요하지만 내 우분투 버전은 아직 이를 지원하지 않으며 우분투 버전을 업그레이드하고 싶지 않습니다.

답변1

머리말

이것은 나에게 효과적입니다. 더 쉬운 방법이 있으면 알려 주실 거라 믿습니다.

이론적으로 이러한 단계는 모든 Linux 배포판에서 작동해야 하며 배포용 아파치를 컴파일하는 데 사용된 원래 구성 옵션을 찾으면 됩니다. 옵션을 찾은 위치에 대해 이 답변에 의견을 추가할 수도 있습니다.

중요한 옵션은 다음과 같습니다:

--enable-layout=Debian

Debian은 Apache 빌드 디렉터리의 config.layout 파일에서 지원되는 레이아웃으로 변경할 수 있으며 옵션은 다음과 같이 정의됩니다.

<Layout x>
...
</Layout>

여기서 x는 레이아웃 옵션입니다. 옵션을 찾으려면 "--enable-layout=x"(여기서 x는 배포판)를 검색해 보세요. 임의의 제안보다는 배포판에서 사용된 원래 옵션을 찾으십시오.

편집: 가짜가 언급했듯이 문제는 apt를 사용하여 업그레이드하고 apache2의 새 버전이 있으면 컴파일된 버전을 덮어쓰게 된다는 것입니다. 새로운 부채 설정에 대한 그의 조언은 좋은 조언입니다. 안타깝게도 다양한 deb 종속성 문제를 해결해야 할 작업이 너무 많아 이 작업을 수행할 수 없습니다. 하지만 먼저 이 경로를 시도해 보시기 바랍니다. 이 방법이 도움이 될 것입니다.

http://blog.wpkg.org/2014/06/29/building-apache-2-4-x-deb-packages-for-debian-wheezy-7-x/

나는 그대로 두기로 결정했지만 apache2에 예약을 설정했기 때문에 예약을 해제할 준비가 될 때까지 업그레이드되지 않습니다. 또는 시스템에서 Apache를 제거하고 준비가 되면 다시 추가할 수 있습니다.

잡고 있다:

sudo apt-mark hold apache2

보류 해제:

sudo apt-mark unhold apache2

또한 변경하려는 서버를 복제하고 복제에서 전체 프로세스를 진행한 후 프로덕션에서 시도하기 전에 작동하도록 하는 것이 좋습니다. 하루 이상 프로덕션 환경에서 아파치를 깨뜨리는 것은 인생에서 필요한 스트레스가 아닙니다. 스냅샷을 찍고 스냅샷에서 새 인스턴스를 생성하는 것이 가상 머신의 장점입니다. 또는 변경하려는 환경을 복사하여 변경하세요.

저는 Digital Ocean을 사용하고 있는데 잘 작동합니다. 이 링크를 사용하여 구독료에서 $10 할인을 받으세요. 면책 조항 $25 할인:

https://www.digitalocean.com/?refcode=9287fc77c7ae

약속대로 우분투에서 수행하는 방법은 다음과 같습니다.

이는 이전에 다음 명령을 실행하여 시스템에 기본 Apache 버전을 이미 설치했다고 가정합니다.

sudo apt-get install apache2

당신은 도망쳤어요

sudo apt-get upgrade

Apache를 포함한 모든 패키지를 최신 버전으로 업그레이드하세요.

Apache 버전에서 최신 버전으로 구성이 크게 변경된 경우 직접 변경해야 합니다. 이 작업은 시간이 걸릴 수 있으므로 서문에서 언급한 서버 클론에서 시도해 보는 것이 좋습니다.

빌드하려면 종속성을 설치해야 합니다.

sudo apt-get build-dep apache2

아파치 소스 코드를 다운로드하고 압축을 풀어야 하며, 이 디렉터리를 빌드 디렉터리라고 합니다.

현재 구성을 백업하세요. 이 단계를 건너뛰지 마세요.

sudo cp -r /etc/apache2 ~/apache2_conf_back

게시 태그 이름을 결정해야 합니다.

sudo cat /etc/lsb-release

내 것은 믿을 만하다

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

그러면 다음 URL에서 "trusty"라는 단어 2개를 대체하여 Apache 배포판을 구축하기 위한 옵션을 얻을 수 있습니다.

bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/apache2/trusty/view/head:/debian/rules

"AP2_COMMON_CONFARGS" 및 "AP2_worker_CONFARGS" 변수에 대해 정의된 옵션을 사용했습니다. 또한 다음 옵션을 추가했습니다.

--with-pcre=/usr \
--enable-mpms-shared=all \
--enable-unixd=static \

마침내 이 문제를 해결하기 위해 몇 번 시도했을 때 각 실행마다 Apache 빌드 디렉터리에 다음 파일을 만들었습니다. 이름을 myconfig.sh로 지정하세요.

#!/bin/bash
./configure \
--with-pcre=/usr \
--enable-mpms-shared=all \
--enable-unixd=static \
--enable-layout=Debian --enable-so \
--with-program-name=apache2  \
--with-ldap=yes --with-ldap-include=/usr/include \
--with-ldap-lib=/usr/lib \
--with-suexec-caller=www-data \
--with-suexec-bin=/usr/lib/apache2/suexec \
--with-suexec-docroot=/var/www \
--with-suexec-userdir=public_html \
--with-suexec-logfile=/var/log/apache2/suexec.log \
--with-suexec-uidmin=100 \
--enable-suexec=shared \
--enable-log-config=static --enable-logio=static \
--enable-version=static \
--with-apr=/usr/bin/apr-1-config \
--with-apr-util=/usr/bin/apu-1-config \
--with-pcre=yes \
--enable-pie \
--enable-authn-alias=shared --enable-authnz-ldap=shared  \
--enable-disk-cache=shared --enable-cache=shared \
--enable-mem-cache=shared --enable-file-cache=shared \
--enable-cern-meta=shared --enable-dumpio=shared --enable-ext-filter=shared \
--enable-charset-lite=shared --enable-cgi=shared \
--enable-dav-lock=shared --enable-log-forensic=shared \
--enable-ldap=shared --enable-proxy=shared \
--enable-proxy-connect=shared --enable-proxy-ftp=shared \
--enable-proxy-http=shared --enable-proxy-ajp=shared \
--enable-proxy-scgi=shared \
--enable-proxy-balancer=shared --enable-ssl=shared \
--enable-authn-dbm=shared --enable-authn-anon=shared \
--enable-authn-dbd=shared --enable-authn-file=shared \
--enable-authn-default=shared --enable-authz-host=shared \
--enable-authz-groupfile=shared --enable-authz-user=shared \
--enable-authz-dbm=shared --enable-authz-owner=shared \
--enable-authnz-ldap=shared --enable-authz-default=shared \
--enable-auth-basic=shared --enable-auth-digest=shared \
--enable-dbd=shared --enable-deflate=shared \
--enable-include=shared --enable-filter=shared \
--enable-env=shared --enable-mime-magic=shared \
--enable-expires=shared --enable-headers=shared \
--enable-ident=shared --enable-usertrack=shared \
--enable-unique-id=shared --enable-setenvif=shared \
--enable-status=shared \
--enable-autoindex=shared --enable-asis=shared \
--enable-info=shared --enable-cgid=shared \
--enable-dav=shared --enable-dav-fs=shared \
--enable-vhost-alias=shared --enable-negotiation=shared \
--enable-dir=shared --enable-imagemap=shared \
--enable-actions=shared --enable-speling=shared \
--enable-userdir=shared --enable-alias=shared \
--enable-rewrite=shared --enable-mime=shared \
--enable-substitute=shared  --enable-reqtimeout=shared;

현재 아파치를 중지하세요

/etc/init.d/apache2 stop

Apache를 빌드하고 설치하려면 빌드 디렉터리에서 다음 명령을 실행하세요.

./myconfig.sh
make
make install

아파치 구성을 복원하십시오. 앞서 언급한 대로 구성을 백업해 주세요.

sudo rm -rf /etc/apache2
sudo cp -r ~/apache2_conf_back /etc/apache2

/etc/apache2/apache2.conf에서 포함 경로를 절대 경로로 설정해야 합니다. 다음 명령은 vim에서 이 작업을 수행합니다.

:%s/^IncludeOptional /IncludeOptional \/etc\/apache2\//
:%s/^Include /Include \/etc\/apache2\// /

또한 /usr/sbin/apache2ctl의 envvars 경로를 /etc/apache2/envvars로 변경해야 합니다.

그런 다음 Apache를 다시 시작하십시오.

/etc/init.d/apache2 시작

이것이 도움이 되기를 바랍니다. 구문 오류가 있는 경우 알려주시면 수정할 수 있습니다. 그것의 대부분은 메모리에서 다시 작성되었습니다.

행운을 빌어요!

내 퍼즐의 누락된 조각이었던 그의 게시물에 대해 jrwren에게 특별히 감사드립니다.

우분투에서 최신 아파치 구성 옵션을 구축하는 방법

관련 정보