IT pass HikiWiki - [TEBIKI]apache のアップデート Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}

= 概要

ここでは, apache のアップデートの手順を示す.

以下の出力例は 2019/04/18 に apache 1.6.9 apache2.4.37 から apache1.7.0 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://..." の両方に関して行う.

* 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