Apacheのインストール
ここでは、Webサーバソフトウェアである、Apacheをインストールする手順をご紹介します。
Solaris 11 x64 VPS/クラウドにてWebサーバ構築をする際の参考資料としてご利用ください。
インストールするパッケージについて
パッケージ名 | web/server/apache-22 | |
---|---|---|
SMFのFMRI | svc:/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 |
設定の流れ
- サーバキーの作成
- CSRの作成
- 証明書発行の申請
- 証明書のインストール
- Apacheの設定
- 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証明書発行の申請
証明局に証明書の発行を申請します。
- 作成したserver.csrを証明局に送り、証明書の発行を申請します。
- 証明局により手続きが異なりますので、証明局にお問い合わせください。
- 証明書が発行されます。
(自己署名する場合)
自己署名した証明書を作成する場合は、以下の手順で行います。
# 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のレコード設定が必要です。