元のレイアウト、構成、および構成オプションを使用してUbuntuで最新のapache2をコンパイルする方法

元のレイアウト、構成、および構成オプションを使用してUbuntuで最新のapache2をコンパイルする方法

Ubuntuでapache2をコンパイルする必要がありますが、元の構成とレイアウトを使用したいと思います。そのための情報を探すのに時間がかかったので、他の方々に役立つようにこの質問と回答を作ってみようかと思いました。

注:最新バージョンのApacheが必要ですが、私のUbuntuバージョンはまだそれをサポートしておらず、Ubuntuバージョンをアップグレードしたくありません。

ベストアンサー1

ヘッダー

これは私にとって効果的です。もっと簡単な方法があれば教えてくれると思います。

理論的には、これらの手順はすべてのLinuxディストリビューションで機能する必要があり、ディストリビューション用のApacheをコンパイルするために使用された元の設定オプションを見つけるだけです。オプションが見つかった場所についてこの回答にコメントを追加することもできます。

重要なオプションは次のとおりです。

--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

また、変更するサーバーを複製し、レプリケーションでプロセス全体を進め、本番環境で試す前に機能させることをお勧めします。 1日以上の本番環境でApacheを壊すことは、人生で必要なストレスではありません。スナップショットを撮ってスナップショットから新しいインスタンスを作成することは、仮想マシンの利点です。または、変更したい環境をコピーして変更します。

私はDigital Oceanを使用していますが、うまくいきます。このリンクを使用して購読料から$ 10の割引を受けてください。免責事項 $25 割引:

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

約束どおり、Ubuntuで行う方法は次のとおりです。

これは、以前に次のコマンドを実行して、システムにデフォルトのApacheバージョンをすでにインストールしていると想定しています。

sudo apt-get install apache2

あなたは逃げました。

sudo apt-get upgrade

Apacheを含むすべてのパッケージを最新バージョンにアップグレードしてください。

Apache バージョンから最新バージョンに構成が大幅に変更された場合は、直接変更する必要があります。これには時間がかかる可能性があるため、序文で説明したサーバークローンで試してみることをお勧めします。

ビルドするには依存関係をインストールする必要があります。

sudo apt-get build-dep apache2

Apacheのソースコードをダウンロードして解凍する必要があり、このディレクトリをビルドディレクトリと呼びます。

現在の設定をバックアップしてください。このステップをスキップしないでください。

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;

現在のApacheを停止してください

/etc/init.d/apache2 stop

Apacheをビルドしてインストールするには、ビルドディレクトリで次のコマンドを実行します。

./myconfig.sh
make
make install

Apache構成を復元します。前述のように構成をバックアップしてください。

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に特に感謝します。

Ubuntuで最新のApache設定オプションを構築する方法

おすすめ記事