このページは、2019年3月に保存されたアーカイブです。最新の内容ではない場合がありますのでご注意ください

(Linuxサーバー)
●SSL+PHP+Apacheのインストール手順



Apacheのインストールと同時に、OpenSSL,Mod_SSL,PHPのインストールも行う。

検証した時の各プログラムのバージョンは、である。

Apacheのインストール先は「/usr/local/apache/」とする。




  1. 前準備

    1. root になっておく
      $ su -

    2. 全ソースを展開する
      # cd /usr/local/src
      # tar zxvf apache_1.3.27.tar.gz
      # tar zxvf php-3.0.18-i18n-ja-2.tar.gz
      # tar zxvf mod_ssl-2.8.4-1.3.27.tar.gz
      # tar zxvf openssl-0.9.6g.tar.gz

    3. Apacheを停止させる
      Apacheが既に起動している場合、停止させる必要がある。
      # /usr/local/apache/bin/apachectl stop


  2. OpenSSLのインストール

    # cd openssl-0.9.6g
    # ./config \
    --prefix=/usr/local \ ← OpenSSLのインストール先を指定
    --openssldir=/usr/local/openssl \ ← 指定したフォルダに全てインストール
    -fPIC ← DSO版作成時に必要なPICオプション
    # make clean ← 前に作成した際のゴミを削除
    # make ← オブジェクト生成
    # make test ← 自己テスト

    ※make installは行わなくても良い(行っても良い)。
    ※PIC……Position Independent Code
    ※DSO……Dynamic Shared Object。モジュールをコンパイルせずに(再起動のみで)追加できる。

    ※単に
    # ./config
    とだけ入力して実行した場合のオプションは
    # ./config --prefix=/usr/local --openssldir=/usr/local/openssl
    と同様。


  3. mod_sslのインストール

    # cd mod_ssl-2.8.10-1.3.27
    # ./configure \
    --with-apache=../apache_1.3.27 \ ← Apacheのソースディレクトリを指定
    --with-ssl=../openssl-0.9.6g \ ← SSLのソースディレクトリを指定
    --prefix=/usr/local/apache \ ← Apacheのインストール先を指定
    --enable-shared=max \ ← 有効モジュールをすべてDSOに対応
    --enable-shared=ssl \ ← SSLに対応
    --enable-module=so ← DSOモジュールを使用する。

    ※モジュールをApacheに組み込む場合は、
    --enable-module=モジュール名
    ※ShareModuleとして、モジュールをDSOを使ってあとから組み込めるようにコンパイルする場合は、
    --enable-shared=モジュール名
    とする。
    ※mode-SSLのconfigureがapacheのconfigureも兼ねている。従って apacheのconfigureに付けるオプションをmode-SSLに付けてやる必要がある。


    ◎ Configureについて

    1. モジュールを有効化(バイナリ「httpd」に組み込ませる)

      • AddModuleに相当
        $ ./configure --enable-module=モジュール名

      • ShareModuleとしてモジュールをDSOとして組み込めるようコンパイルする。
        $ ./configure --enable-shared=モジュール名
        ※モジュール名には「mod_」やモジュールの拡張子(「.o」や「.a」)を付加させない名称を指定する。

      • --enable-module=all
        mod_auth_digest以外のすべてのモジュールをApacheに組み込む。

      • --enable-module=most
        mod_auth_db、mod_log_agent、mod_log_referer、mod_log_example、mod_so、mod_mmap_static、mod_auth以外のすべてのモジュールをApacheに組み込む。

      • --enable-shared=max
        有効になっているモジュール(Configurationファイル中にAddModuleで記述されているモジュール)全てを、Apacheに組み込むのではなく、DSOを使ってあとから組み込めるようにコンパイルする。

      • --enable-shared=remain
        無効になっているモジュールすべてを有効化し、DSOを使ってあとから組み込めるようにコンパイルする。

      • --enable-rule=SHARED_CORE
        SHARED_COREルールを有効化する。DSOを利用するために必須指定である。

      • すべてのモジュールを、あとからDSOを使って組み込めるようにコンパイルする。
        $ ./configure --enable-module=all --enable-shared=max --enable-rule=SHARED_CORE


    2. インストール先

       Apacheの関連ファイルは、標準ですべて/usr/local/apacheディレクトリ下にインストールされる。
       このインストール先ディレクトリを変更したい場合には、--prefixオプションで変更する。
       $ ./configure --prefix=/usr/local/myapache

      # cd mod_ssl-2.8.10-1.3.27
      # ./configure \
      --with-apache=../apache_1.3.27 \ ← Apacheのソースディレクトリを指定
      --with-ssl=../openssl-0.9.6g \ ← SSLのソースディレクトリを指定
      --prefix=/usr/local/apache \ ← Apacheのインストール先を指定
      --enable-shared=max \ ← 有効モジュールをすべてDSOに対応
      --enable-shared=ssl \ ← SSLに対応
      --enable-module=so ← DSOモジュールを使用する。




  4. Apacheのインストール

    1. コンパイル
      # cd apache_1.3.27/
      # make clean ← 前に作成した際のゴミを削除
      # make ← オブジェクト生成
      # make certificate ← テスト用の証明書やプライベート鍵を生成

    2. テスト用の証明書やプライベート鍵を生成


    3. Apache+mod_sslのインストール
      # make install ← インストール

      ※証明書の作成はApacheのインストール後でも行うことができる。
      その場合は、手動で/usr/local/src/apache1.3.27以下の3つのファイル
      • conf/ssl.key/server.key
      • conf/ssl.crt/server.crt
      • conf/ssl.csr/server.csr
      を、/usr/local/apache以下に上書きコピーする必要がある。


  5. PHP4のインストール

    # cd php-4.2.2
    # ./configure \
    --enable-mbstring \ ← マルチバイト文字列のサポートの有効化
    --enable-mbstr-enc-trans \ ← 日本語のエンコーディング変換の有効化
    --with-pgsql=/usr/local/pgsql \ ← postgreSQLのインストールベースディレクトリ
    --without-mysql \ ← mysqlをインストールしていない場合に記述
    --enable-track-vars \ ← GET/POST/Cookieからの値が参照される
    --enable-mbregx \ ← マルチバイト文字列の正規表現関数の有効化
    --disable-debug \ ← デバッグの無効化
    --with-gd \ ← GDサポートを追加
    --with-sablot \ ← sablotサポートの有効化
    --with-dom \ ← DOMサポートの有効化
    --with-zlib-dir=/usr/local/lib \ ← zlibのサポートの有効化
    --with-mhash=/usr/local/lib \ ← mhashのサポートの有効化
    --with-apxs=/usr/local/apache/bin/apxs ← Apache共有モジュールの構築
    # make clean ← 前に作成した際のゴミを削除
    # make ← オブジェクト生成
    # make install ← インストール

    ※日本語のエンコーディング変換は、PHP 4.3.0以降では廃止されている。
    ※zlibのサポートを有効にするには、zlib>= 1.0.9が必要。
    ※DOMサポートを有効にするには、libxml>= 2.4.2が必要。


  6. 設定ファイルの編集

    1. httpd.confの編集
      # vi /usr/local/apache/conf/httpd.conf

      以下の項目を変更(編集例・ユーザー名を「postgres」とする)

      ※「postgres」は、web専用のユーザとして作成する必要がある。
      ※DocumentRoot……HTMLファイルを置くルートディレクトリを指定。
      ブラウザでサーバ名が指定された場合に、サーバに対してアクセスしにいくディレクトリ階層。
      ※DirectoryIndex……要求されたURLにファイル名がない場合、デフォルトで表示されるファイル名。
      ブラウザでディレクトリが入力されファイル名が入力されなかった場合に、アクセスしにいくファイル名。

      さらに、以下の項目を変更(編集例)


    2. apachectlの編集
      PHPをApacheで使用する場合、ライブラリーのパスを設定しておく。
      # vi /usr/local/apache/bin/apachectl

      以下の項目に記述を追加。



  7. Apacheの動作確認

    1. SSLを有効にしたApacheを起動
      # /usr/local/apache/bin/apachectl stop
      # /usr/local/apache/bin/apachectl startssl

    2. プロセスの確認
      psコマンドで"-DSSL"付きでhttpdが起動されているか確認できます。
      # ps -xa

    3. ブラウザからアクセス 別PCのブラウザから目的のURLをアクセスして、表示されることも確認して下さい。

      https://localhost/


  8. 次回起動のための設定

    1. パスフェーズを起動時に入力しなくする
      # openssl rsa -in /usr/local/apache/conf/ssl.key/server.key
      -out /usr/local/apache/conf/ssl.key/server.key
      # chmod 600 /usr/local/apache/conf/ssl.key/server.key← 鍵を書き換え不可にする

    2. apache+ssl自動起動
      # vi /etc/rc.local

      以下を追加




このページは、2019年3月に保存されたアーカイブです。最新の内容ではない場合がありますのでご注意ください