web-dev-qa-db-ja.com

Apacheを特定のバージョンでインストールするにはどうすればよいですか?

Ubuntuの更新のため、Apache 2.2を2.4にアップグレードするのは間違いでした。多くのことがうまくいきませんでした。

apt-get remove Apache2の後のバージョンを指定する方法がわかりません。 apt-get install Apache2は常に2.4をインストールします。

どうすればできますか?

26
Mithril

次のことを行う必要があります。

apt-cache showpkg <pachagename>

上記のコマンドは、このパッケージで使用可能なバージョンのリストを表示します。次に、必要なバージョンを選択して、次の手順を実行します。

apt-get install <packagename>=<complete version name>

例:

apt-cache showpkg Apache2
apt-get install Apache2=2.2.14-5ubuntu8.7
23
MohyedeenN

リポジトリにないApacheをUbuntuディストリビューションにインストールする方法。

要件

これを行うには、build-essentialsパッケージをインストールする必要があります。

~# Sudo apt-get install build-essential

Apacheがそれをサポートするブラウザに出力を圧縮する機能を提供するには、zlibをインストールする必要があります。 zlip Hompage (執筆時点ではzlib-1.2.11.tar.gz)から現在のリリースをダウンロードし、それを抽出して、抽出したフォルダーに移動し、ビルドしてインストールします。

wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local
make
Sudo make install

Apache 2.2をインストールします

現在のバージョンを Apacheダウンロードページ (執筆時点ではhttpd-2.2.32.tar.gz)からダウンロードし、抽出して、抽出したフォルダーに移動し、ビルドしてインストールします。

wget http://www-eu.Apache.org/dist/httpd/httpd-2.2.32.tar.gz
tar -xvf httpd-2.2.32.tar.gz
cd httpd-2.2.32/
./configure --prefix=/usr/local/Apache2 --enable-mods-shared=all --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http
make
Sudo make install

Apacheを起動します。

Sudo /usr/local/Apache2/bin/apachectl start

すべてが正常であるかどうかを確認します

ブラウザで http:// localhost に移動します。「正常に動作しました」というメッセージが表示されます。

代わりに、これをターミナル経由で行うことができます:

wget -qO- http://localhost | grep "It works!"

これはターミナルで次のようなものを出力するはずです:

<html><body><h1>It works!</h1></body></html>

Apache2の「サービス」を作成します

Sudo cp /usr/local/Apache2/bin/apachectl /etc/init.d/Apache22
Sudo chmod +x /etc/init.d/Apache22

ヒント:SudoサービスApache22でapachectlを呼び出すことができます。

Apacheを起動時に起動します

Sudo sed -i '2i #\n### BEGIN INIT INFO\n# Provides:             Apache2\n# Required-Start:       $remote_fs\n# Required-Stop:        $remote_fs\n# Default-Start:        2 3 4 5\n# Default-Stop:         0 1 6\n# Description:          Apache2\n# Short-Description:    The Apache webserver\n### END INIT INFO' /etc/init.d/Apache22
Sudo /usr/sbin/update-rc.d Apache22 defaults

Secure Apache

Sudo service Apache22 stop
Sudo adduser --system Apache
sed -i -e 's/User daemon/User Apache/g' /usr/local/Apache2/conf/httpd.conf
sed -i -e 's/Group daemon/Group nogroup/g' /usr/local/Apache2/conf/httpd.conf
Sudo service Apache22 start

新しい設定を確認してください

ps -aux | grep httpd

最後のコマンドの端末出力に「Apache」で始まる行が表示されている場合、問題はありません。

サイトを設定します

Apacheを1つのサイトだけに設定する場合は、httpd.confを編集するだけです

nano /usr/local/Apache2/conf/httpd.conf

変更する可能性のある重要なパラメータは次のとおりです。

ServerName www.example.com:80
DocumentRoot "/usr/local/Apache2/htdocs"

<Directory "/usr/local/Apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

複数のサイトを構成する場合は、httpd-vhosts.confを参照してください。

nano /usr/local/Apache2/conf/httpd.conf

上記と同様の<VirtualHost>を含む<Directory>セクションを追加する必要がありますが、VitualHostのドキュメントルート用です。例えば:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/Apache2/docs/dummy-Host.example.com"
    ServerName dummy-Host.example.com
    ServerAlias www.dummy-Host.example.com
    ErrorLog "logs/dummy-Host.example.com-error_log"
    CustomLog "logs/dummy-Host.example.com-access_log" common
    <Directory "/usr/local/Apache2/docs/dummy-Host.example.com">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
6
Johano Fierra

パッケージの固定 のubuntu howtoを参照してください:

ファイルを編集/etc/apt/preferences

「設定」ファイルは、実際の固定が行われる場所です。パッケージを固定するには、そのPin-Priorityをより高い数値に設定します。次に例を示します。

Package: Apache2
Pin: release n=raring
Pin-Priority: 1000

apt-get updateまたはapt-get installapt-cache policy Apache2で実行する前にテストする

詳細については、man apt_preferencesをご覧ください。私はraringのリリースを固定することを選択しました。これは、この方法でも2.2.xブランチで更新を取得できるためです。 raringのリポジトリURLを追加して、パッケージをAPTで利用できるようにする必要があることを忘れないでください。

更新

raringはEOLなので、引き続きサポートされているpreciseまたはアーカイブ済みのraringパッケージを使用できます http://old-releases.ubuntu.com

これを/etc/apt/sources.list.d/raring.listとして使用すると、古いパッケージをインストールできます。

deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
4
fuero

Apache2.2をインストールするには、次のプロセスを使用します。

後のディストリビューション(16.04など)で、Apacheサイトから2.2.31をダウンロードしました。

次の構成を使用してビルドしました。

./configure --enable-so --enable-ssl --with-included-apr --enable-mods-shared=all --enable-load-all-modules --enable-rewrite --enable-proxy --enable-proxy_connect --enable-proxy_http --enable-proxy_ajp --enable-authn_alias --with-npm=prefork --enable-proxy_balancer --enable-proxy_ftp --enable-cache --enable-suexec --enable-disk_cache  > conf.txt

次に、もちろんhttpd.confファイルとssl.confファイルを微調整します。

その後、。/ httpd -k startを実行するだけです

そしてそれはうまくいきます!

apt-getを使用してApache2.4を追加しましたが、削除しなかったことに注意してください。つまり、システムの起動後、Apache2プロセスを強制終了する必要があります。その後、Apache2.2を起動できます。 apachectlを使用するためにApache2.4をインストールする必要がありましたが、。/ httpdを使用しているため、後でそれを解体しました

2
Coen Damen

Ubuntu 13.04から13.10にアップグレードしましたか? Ubuntuパッケージリポジトリの外に出ないと、Apache 2.2を元に戻す方法はありません。 2.4で動作するようにApacheの設定を修正することをお勧めします。

1
sciurus