Ubuntuの更新のため、Apache 2.2を2.4にアップグレードするのは間違いでした。多くのことがうまくいきませんでした。
apt-get remove Apache2
の後のバージョンを指定する方法がわかりません。 apt-get install Apache2
は常に2.4をインストールします。
どうすればできますか?
次のことを行う必要があります。
apt-cache showpkg <pachagename>
上記のコマンドは、このパッケージで使用可能なバージョンのリストを表示します。次に、必要なバージョンを選択して、次の手順を実行します。
apt-get install <packagename>=<complete version name>
例:
apt-cache showpkg Apache2
apt-get install Apache2=2.2.14-5ubuntu8.7
リポジトリにない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>
パッケージの固定 のubuntu howtoを参照してください:
ファイルを編集/etc/apt/preferences
「設定」ファイルは、実際の固定が行われる場所です。パッケージを固定するには、そのPin-Priorityをより高い数値に設定します。次に例を示します。
Package: Apache2
Pin: release n=raring
Pin-Priority: 1000
apt-get update
またはapt-get install
をapt-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
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を使用しているため、後でそれを解体しました
Ubuntu 13.04から13.10にアップグレードしましたか? Ubuntuパッケージリポジトリの外に出ないと、Apache 2.2を元に戻す方法はありません。 2.4で動作するようにApacheの設定を修正することをお勧めします。