UNIXOracle SolarisWebサーバー Apache

Apache HTTP Server のインストールと設定

更新日:2017年9月30日

Apache HTTP Server とは

Apache HTTP Serverは世界中で最も普及しているWebサーバーです、無料で利用できることはもとより、全てオープンソースとして公開されているため、高機能なプログラムへと頻繁に改編され続けています。
また、A pache 名の由来と同じく、モジュールによる機能拡張の追加が簡単でCGI(perl,PHP)プログラムと親和性が高いことが特徴です。

OpenSSL インストール

世界中で動作しているApacheを セキュア環境(https) の実装とともに Oracle Solaris へインストールしましょう。
https の実装は OpenSSL を使用し、Apache とともにソースコードからビルドしましょう。
また、gnuライブラリがすでにインストールされている環境を前提としていますので、まだインストールしていなければ、サイト内のページ「OS インストール後の環境整備のサーバー環境設定」を参考にインストールしておいてください。
例では、Solaris 10、GNUライブラリ使用、Cシェルを前提としています。

OpenSSL ダウンロード

OpenSSL のダウンロードページ「https://www.openssl.org/source/」にアクセスして、openssl-1.***.tar.gzをクリックしてダウンロードしましょう。
ファイルのURLがわかっている場合は、サーバーから wget コマンドを用いて直接ダウンロードすることも出来ます。

opensslダウンロード

OpenSSL 設定ファイル作成

OpenSSLファイルを解凍し、付属の ./Configure スクリプトを用いて設定ファイルを作成しましょう。
./Configure -h または ./Configure --help とコマンドすると、その他のオプションが表示できます。

% tar xzf openssl-1.0.2l.tar.gz
% cd openssl-1.0.2l
% ./Configure solaris64-x86_64-gcc shared
Configuring for solaris64-x86_64-gcc
no-ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)

...Configured for solaris64-x86_64-gcc.

メイク・テスト・インストール

設定ファイルからメイクして、テストを行い、OKであればインストールしましょう。
インストールは管理者(root)権限が必要です。

% make
making all in crypto...
...
% make test
...
OPENSSLDIR: "/usr/local/ssl"
% su
# make install

バージョン確認

OpenSSLのバージョンを確認しましょう。
デフォルトでは /usr/local/ssl/ 配下に全てのファイルがインストールされています。

# /usr/local/ssl/bin/openssl version
OpenSSL 1.0.2l 25 May 2017

Apache インストール

Apache ダウンロード

Apache のトップページ「https://httpd.apache.org/」にアクセスしましょう、2017年10月1日時点ではApache httpd 2.4.27とApache httpd 2.2.34がダウンロード出来ます、コンパイルが簡単な 2.2.34をインストールしましょう。
ファイルのURLがわかっている場合は、サーバーから wget コマンドを用いて直接ダウンロードすることも出来ます。

apacheダウンロード

Apache 設定ファイル作成

ファイルを解凍し、付属の ./Configure スクリプトを用いて設定ファイルを作成しましょう。
./Configure -h または ./Configure --help とコマンドすると、その他のオプションが表示できます。例ではmpm-workerを使用、SSLを使用、SSLの位置(先ほど指定したOPENSSLの位置)、SOでの追加許可、リライト許可を設定しています。

% tar xzf httpd-2.2.34.tar.gz
% cd httpd-2.2.34
% ./configure --with-mpm=worker --enable-ssl --with-ssl=/usr/local/ssl --enable-so --enable-rewrite=shared
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking build system type... x86_64-pc-solaris2.10
checking host system type... x86_64-pc-solaris2.10
checking target system type... x86_64-pc-solaris2.10
...
config.status: executing default commands

Apache インストール

設定ファイルからメイクして、インストールしましょう。
インストールは管理者(root)権限が必要です。

% make
% su
# make install

バージョン確認

Apache のバージョンを確認しましょう。
デフォルトでは /usr/local/apache2/ 配下に全てのファイルがインストールされています。

# /usr/local/apache2/bin/apachectl -v
Server version: Apache/2.2.34 (Unix)
Server built: Oct 1 2017 12:20:06

Apache 起動

Apache を起動して確認しましょう。
インストール直後ではサーバー名が設定されていないので警告文が出力されますが、起動には問題ありません。
ブラウザで確認してIt works!が表示されれば起動完了です。

% /usr/local/apache2/bin/apachectl start
httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.10.133 for ServerName

自動起動スクリプト作成

サーバーが起動した際に Apache もSVCで自動的に起動するようにしましょう。 Solaris OS インストール時に作成されている Apache 用の起動スクリプトがすでに存在するので、インストールした Apache のディレクトリ構成に併せるように編集しましょう。
自動起動スクリプトの編集には管理者(root)権限が必要です。

# chmod u+w /var/svc/manifest/network/http-apache2.xml
# vi /var/svc/manifest/network/http-apache2.xml
...

<service_bundle type='manifest' name='apache2:apache'<

<service
name='network/http'
type='service'
version='1'<
...

<documentation<
<manpage title='httpd' section='8'
manpath='/usr/local/apache2/man' /<
<doc_link name='apache.org'
uri='http://httpd.apache.org' /<
</documentation>
....
# chmod u-w /var/svc/manifest/network/http-apache2.xml
# chmod u+w /lib/svc/method/http-apache2
# vi /lib/svc/method/http-apache2
...

APACHE_HOME=/usr/local/apache2
CONF_FILE=/usr/local/apache2/conf/httpd.conf
PIDFILE=/usr/local/apache2/logs/httpd.pid

....
# chmod u-w /lib/svc/method/http-apache2

作成した起動スクリプトをSVCに読み込ませて、起動しましょう。

# svccfg delete -f apache2
# svccfg import /var/svc/manifest/network/http-apache2.xml
# svcadm -v enable apache2
svc:/network/http:apache2 が有効になりました。