Apacheのインストール - JUSTPLAYER インターネットサービス

Top / サポート情報 / マニュアル / VPS / Apacheのインストール

Solaris 11 x64 VPS/クラウド Apacheのインストール

ここでは、Webサーバソフトウェアである、Apacheをインストールする手順をご紹介します。

Solaris 11 x64 VPS/クラウドにてWebサーバ構築をする際の参考資料としてご利用ください。

インストールするパッケージについて

パッケージ名web/server/apache-22
SMFのFMRIsvc:/network/http:apache22
インストールパス設定/etc/apache2/2.2/
コンテンツ/var/apache2/2.2/
プログラム/usr/apache2/2.2/
ログファイルSMFログ/var/svc/log/network-http:apache22.log
Apacheログ/var/apache2/2.2/logs/access_log
/var/apache2/2.2/logs/error_log など

インストールする

IPS(Image Packaging System)のpkgコマンドを利用して、パッケージをインストールします。
※ IPSについて → パッケージの管理

# pkg install -v web/server/apache-22

(実行時の例)

           Packages to install:        7
     Estimated space available: 28.43 GB
Estimated space to be consumed: 60.88 MB
       Create boot environment:       No
Create backup boot environment:       No
            Services to change:        1
          Rebuild boot archive:       No

Changed packages:
solaris
  database/mysql-51/library
    None -> 5.1.37,5.11-0.175.1.0.0.24.0:20120904T170747Z
  library/apr-13
    None -> 1.3.9,5.11-0.175.1.0.0.24.0:20120904T172319Z
  library/apr-util-13
    None -> 1.3.9,5.11-0.175.1.0.0.24.0:20120904T172328Z
  library/apr-util-13/apr-ldap
    None -> 1.3.9,5.11-0.175.1.0.0.24.0:20120904T172322Z
  library/apr-util-13/dbd-mysql
    None -> 1.3.9,5.11-0.175.1.0.0.24.0:20120904T172323Z
  library/apr-util-13/dbd-sqlite
    None -> 1.3.9,5.11-0.175.1.0.0.24.0:20120904T172324Z
  web/server/apache-22
    None -> 2.2.22,5.11-0.175.1.0.0.24.0:20120904T175058Z
Services:
  restart_fmri:
    svc:/system/manifest-import:default
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                7/7       665/665      8.7/8.7 1011k/s

PHASE                                          ITEMS
Installing new actions                       916/916
Updating package state database                 Done
Updating image state                            Done
Creating fast lookup database                   Done

インストールが完了しました。

Apacheを設定する

主な設定ファイル/etc/apache2/2.2/httpd.conf
  • 設定の内容については、公式ドキュメントをご覧ください。
  • 特殊な設定は、/etc/apache2/2.2/conf.d以下に「*.conf」という名前で保存することをおすすめします。
    • /etc/apache2/2.2/samples-conf.d以下に、サンプルファイルが保存されていますので、コピーやシンボリックリンクなどで利用することも可能です。

動作設定を確認する

Apacheの動作モードは、SMFにて管理されています。
※ SMFについて → サービスの管理

プロパティを確認する場合は、以下のコマンドで行います。

jpc@kubono-wp% svccfg -s svc:/network/http:apache22 listprop

listpropの後にプロパティ名を入力することにより、特定のプロパティを表示させることができます。

jpc@kubono-wp% svccfg -s svc:/network/http:apache22 listprop httpd/enable_64bit
httpd/enable_64bit boolean     false

動作設定を変更する

ここでは、Apacheを64bit・Worker MPMに設定する場合の例をご案内します。なお、標準では32bit・Prefork MPMに設定されています。

ご注意

  • モジュール版PHPをご利用の場合、64bit・Worker MPMの設定では動作しません。その場合は、32bit・Prefork MPMでご利用ください。

動作モードを、64bitに設定します。

# svccfg -s svc:/network/http:apache22 setprop httpd/enable_64bit = true

MPMを、Workerに設定します。

# sudo svccfg -s svc:/network/http:apache22 setprop httpd/server_type = worker

設定を反映します。

# sudo svcadm refresh svc:/network/http:apache22

Apacheが起動している場合は、Apacheの再起動が必要です。詳しくは、起動 / 停止 / 再起動をご覧ください。

起動 / 停止 / 再起動

Apacheを起動する

# svcadm enable svc:/network/http:apache22
  • サーバ再起動後も自動的に起動します。

Apacheを停止する

# svcadm disable svc:/network/http:apache22
  • サーバ再起動後も起動しません。

Apacheを再起動する

# svcadm restart svc:/network/http:apache22

サービスの起動を確認する

以下のコマンドを入力し、何も表示されなければ起動に失敗しているサービスはありません。

# svcs -xv

また、個別にApacheの詳細を確認するときは、以下のコマンドを使用します。

# svcs -l svc:/network/http:apache22
fmri         svc:/network/http:apache22
name         Apache 2.2 HTTP server
enabled      true
state        online
next_state   none
state_time   2013年03月01日 15時00分00秒
logfile      /var/svc/log/network-http:apache22.log
restarter    svc:/system/svc/restarter:default
contract_id  1912
manifest     /lib/svc/manifest/network/http-apache22.xml
dependency   require_all/error svc:/milestone/network:default (online)
dependency   require_all/none svc:/system/filesystem/local:default (online)
dependency   optional_all/error svc:/system/filesystem/autofs:default (online)

stateが「online」になっていれば起動しています。「maintenance」になっている場合、Apacheは起動に失敗しています。起動失敗時の再起動についてをご覧ください。

起動失敗時の再起動について

設定ファイルの誤りなどにより、Apacheが起動しない場合、サービスの状態は「maintenance」へと移行します。

maitenanceから再起動するときは、設定ファイルの修正など起動に失敗する要因を取り除き、以下のコマンドを使用します。

# svcadm clear svc:/network/http:apache22

(参考)応用設定

Webサーバを運用する際の応用的な設定をご紹介します。以下につきましては、お客様にて理解を深めた上で、参考資料としてご利用ください。

サイトをSSL対応にする

SSL証明局よりSSL証明書を購入することにより、SSLに対応したサイトを公開することができます。

概要

ここでは、以下のように証明書などを配置する場合を例としています。

サーバキー/etc/apache2/2.2/server.key
CSR/etc/apache2/2.2/server.csr
証明書/etc/apache2/2.2/server.crt

設定の流れ

  1. サーバキーの作成
  2. CSRの作成
  3. 証明書発行の申請
  4. 証明書のインストール
  5. Apacheの設定
  6. Apacheの再起動

サーバキーの作成

サーバキー(秘密鍵)を作成します。作業しやすいよう、サーバキーの配置ディレクトリに移動して行います。

# cd /etc/apache2/2.2
# openssl genrsa -des3 -out ./server_pass.key 2048
Generating RSA private key, 2048 bit long modulus
...............................................................................+++
.........+++
e is 65537 (0x10001)
Enter pass phrase for ./server_pass.key: パスフレーズを入力
Verifying - Enter pass phrase for ./server_pass.key: パスフレーズを再度入力

サーバキーにパスフレーズが含まれている場合、Apacheを起動するたびにパスフレーズの入力が必要になります。Apache再起動時にパスフレーズ入力を省略したい場合は、以下の手順でパスフレーズを解除します。

# openssl rsa -in ./server_pass.key -out ./server.key
Enter pass phrase for ./wikiplus.pass.key: 先ほど入力したパスフレーズを入力
writing RSA key

CSRの作成

証明局への申請に必要なCSRを作成します。

引き続き、サーバキーの配置ディレクトリで作業します。情報の入力はすべて半角英数字で行います。

# openssl req -new -key ./server.key -out ./server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []: 国コードを入力(例: JP)
State or Province Name (full name) []: 県名を入力(例: Shizuoka)
Locality Name (eg, city) []: 市名を入力(例: Shizuoka-Shi)
Organization Name (eg, company) []: 会社名を入力(例: JUSTPLAYER Co.,Ltd.)
Organizational Unit Name (eg, section) []: 部署名を入力(例: Internet Service)
Common Name (e.g. server FQDN or YOUR name) []: URL(FQDN)を入力(例: www.justplayer.ne.jp)
Email Address []: 必要であれば入力

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 何も入力しません
An optional company name []: 何も入力しません

SSL証明書発行の申請

証明局に証明書の発行を申請します。

  1. 作成したserver.csrを証明局に送り、証明書の発行を申請します。
    • 証明局により手続きが異なりますので、証明局にお問い合わせください。
  2. 証明書が発行されます。

(自己署名する場合)

自己署名した証明書を作成する場合は、以下の手順で行います。

# openssl x509 -req -days 365 -in ./server.csr -signkey ./server.key -out ./server.crt

※ 公的な証明局による署名ではないため、SSLによるセキュリティを担保することはできません。
※ ブラウザで接続する際に、セキュリティ警告が表示されます。

証明書のインストール

証明局より発行された証明書を、/etc/apache2/2.2/server.crtに配置します。また、中間証明書のインストールも必要な場合は、同ディレクトリに配置します。

Apacheの設定

SSLを使用するためのコンフィグのサンプルファイルは、/etc/apache2/2.2/samples-conf.d/ssl.confに保存されています。

この例では、このファイルをコピー・編集して設定します。

# cp /etc/apache2/2.2/samples-conf.d/ssl.conf /etc/apache2/2.2/conf.d
# vi /etc/apache2/2.2/conf.d/ssl.conf

ServerNameやServerAdminなどの必要な情報を編集し、証明書情報を記載します。

証明書SSLCertificateFile "/etc/apache2/2.2/server.crt" 
サーバキーSSLCertificateKeyFile "/etc/apache2/2.2/server.key"
(必要に応じて)
中間証明書
SSLCertificateChainFile "/etc/apache2/2.2/server-ca.crt"

Apacheの設定に誤りがないかを確認します。

/usr/apache2/2.2/bin/apachectl configtest
Syntax OK

「Syntax OK」と表示されれば問題ありません。エラーが出てしまった場合は、該当箇所を修正します。

Apacheの再起動

Apacheを再起動します。

# svcadm restart svc:/network/http:apache22
# svcs -xv

再起動後、ブラウザでhttps://[お客様のホスト名]にアクセスし、暗号化通信ができることをご確認ください。

VirtualHost設定

ここでは、1つのIPアドレスで複数のサイトを公開するためのVirtualHost設定をご案内します。

VirtualHostを利用することにより、異なるドメインやサブドメインなど、ホスト名が異なるサイトを複数作成することができます。

サンプルファイルのコピー・編集

VirtualHost設定のためのサンプルファイルは、/etc/apache2/2.2/sample-conf.d/vhosts.confとして保存されています。

この例では、このファイルをコピー・編集して設定します。

# cp /etc/apache2/2.2/sample-conf.d/vhosts.conf /etc/apache2/2.2/conf.d/
# vi /etc/apache2/2.2/conf.d/vhosts.conf

該当ファイルの、<VirtualHost>ブロック内を編集します。設定の内容については、公式ドキュメントをご覧ください。

設定の確認とApache再起動

Apacheの設定に誤りがないかを確認します。

/usr/apache2/2.2/bin/apachectl configtest
Syntax OK

「Syntax OK」と表示されれば問題ありません。エラーが出てしまった場合は、該当箇所を修正します。

Apacheを再起動します。

# svcadm restart svc:/network/http:apache22
# svcs -xv

再起動後、設定したServerNameでアクセスできるかをご確認ください。なお、アクセスにはDNSのレコード設定が必要です。