[TEBIKI]apache のアップデート
概要
ここでは, apache のアップデートの手順を示す.
以下の出力例は 2019/04/18 に apache2.4.37 から apache2.4.39 へのアップデートした際のものである. そのため, バージョン番号などは適宜読み替えること.
設定ファイルのバックアップ
- 設定ファイルのバックアップをとる
- /usr/local/apache2/conf/ 以下の httpd.conf
- /usr/local/apache2/conf/extra/ 以下の httpd-ssl.conf と httpd-usrdir.conf
Apache のインストールと設定
最新バージョンの状況に合わせて作業内容を見直しながら行う.
ビルドのための設定
- ソースを取得・展開
- apache の最新バージョンを <URL:http://httpd.apache.org/> から確認し, 取得・展開する.
apache2.4.x では apr と apr-util を別途用意する必要が有るため, <URL: http://apr.apache.org/download.cgi/> から最新版を取得し, 展開する. (参照: <URL: http://weblabo.oscasierra.net/install-apache24-1/>)
# cd /usr/local/src # wget http://ftp.tsukuba.wide.ad.jp/software/apache//httpd/httpd-2.4.39.tar.gz # wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-1.7.0.tar.gz # wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.6.1.tar.gz
- apr, apr-util のインストール
インストール先と configure の際につけるオプションは以下の通り.
# tar xzf apr-1.7.0.tar.gz # cd apr-1.7.0 # ./configure # make # make install # cd /usr/local/src # tar xzf apr-util-1.6.1.tar.gz # cd apr-util-1.6.1 # sudo ./configure --with-apr=/usr/local/apr # make # make install
ビルドとインストール
# make # make install
- /usr/local/apache2 の下に以下のディレクトリが作成されていることを確認する.
XXXX@xxx-itpass:/usr/local/apache2# ls bin build cgi-bin conf error htdocs icons include logs man manual modules
実行ファイルへのパスの設定
- インストールされた Apache のバイナリファイル群へパスを通す.
- [ITPASS2017]パスの設定 の <一般ユーザ用コマンドのパス> と <システム管理用コマンドのパス> の両方に /usr/local/apache2/bin を追加する. (システム管理用コマンドも一般ユーザ用コマンドと同じ場所にインストールされているため, システム管理用コマンドの設定を別途行う必要は無い).
- 具体的には, 以下のようにする.
/etc/zsh/zshenv の末尾に
# add PATH for local installed softwares export PATH="$PATH:/usr/local/apache2/bin” # add PATH for local installed softwares (for root) if [ "`id -u`" -eq 0 ]; then export PATH="$PATH:/usr/local/apache2/bin” fi # delete duplicated path setting typeset -U path
の記述を追加する.
設定ファイルの置き換え
設定ファイルをバックアップをとっておいたものに置き換える.
- httpd 用
- /usr/local/apache2/conf/httpd.conf
- httpd-ssl
- /usr/local/apache2/conf/extra/httpd-ssl.conf
- 各ユーザの public_html 以下の設定用
- /usr/local/apache2/conf/extra/httpd-userdir.conf
動作チェック
apache を起動させる
# /usr/local/apache2/bin/apachectl -k start
起動したかどうかを以下のコマンドで確認する.
# ps aux | grep http
画面左端に www-data と表示され, 起動できていることを確認できる.
- ~itpass/public_html/ に test という名前のディレクトリを作成し, その中に test.txt というファイルを作成する.
- ブラウザで test.txt が正常に表示されるかどうかを確認する.
- URL は http://ika-itpass.scitec.kobe-u.ac.jp/test/test.txt, https://ika-itpass.scitec.kobe-u.ac.jp/test/test.txt
- "http://..." と "https://..." の両方に関して行う.
- URL は http://ika-itpass.scitec.kobe-u.ac.jp/test/test.txt, https://ika-itpass.scitec.kobe-u.ac.jp/test/test.txt
apache を停止
# /usr/local/apache2/bin/apachectl -k graceful-stop
- 停止したかどうかを確認する.
- apache のエラーログ /var/log/httpd-error.log を確認し, エラーなどが出ていないことを確認する.
起動スクリプトの更新
- サーバの起動時に apache が起動させるための起動スクリプトを更新する.
- Debian 8 から導入された systemd による起動設定を行う.
具体的には, <URL:http://www.smiyasaka.com/CentOS7.0_server21.html> を参考に, /etc/systemd/system に apache2.service を作成する.
chikuwa2@tako-itpass /etc/systemd/system % cat apache2.service [Unit] Description=httpd-2.4.39 daemon [Service] Type=forking ExecStart=/usr/local/apache2/bin/apachectl start [Install] WantedBy=multi-user.target
起動テストを行い, 起動を確認する.
$ sudo systemctl start apache2 $ ps aux | grep httpd
証明書を更新する
certbot-auto を用いて証明書を更新する.
# cd /usr/local/src/certbot # ./certbot-auto renew --force-renewal
apache の再起動を行う
# /usr/local/apache2/bin/apachectl -k graceful-stop # /usr/local/apache2/bin/apachectl -k start
Keyword(s):
References:[計算機とネットワークの手引集]