さぁ〜いよいよWWWサーバーを立ち上げます。
今までは、それぞれのソフトはほとんど個別に動いていましたが、WWWサーバーでは
いろいろなモジュールが有るので、インストール設定などが複雑です。
各自、必要なモジュールだけ選んでいれましょう。
使用しないモジュール部分は飛ばしてインストール、設定しても大丈夫です。
まずapache_1.3.36をDLする。
http://www.apache.jp/
http://httpd.apache.org/download.cgi
に最新版があります。
DLしたら/usr/local/srcなどに解凍する
$ cd /usr/local/src
$ tar zxvf apache_1.3.36.tar.gz
次にOPENSSL0.9.8bをダウンロードし解凍する。
http://www.openssl.org/source/
ここに最新版があります。
DLしたら同じく/usr/local/srcに解凍します。
$ cd /usr/local/src
$ tar xvzf openssl-0.9.8b.tar.gz
次にOPENSSLのコンフィグをする。
$ cd openssl-0.9.8b
$ ./config --prefix=/usr/local --openssldir=/usr/local/src/openssl-0.9.8b -fPIC
↑ ↑
| opensslのソースの位置を指定
インストールするディレクトリを指定
#-fPIC はDSO 版作成時に必要なPIC(Position Independent Code)
オプションを指定してconfigureしています
$ make
ここでmake installはしない。
次にmod_sslのコンフィグをする
http://www.modssl.org/
に最新があります。
解凍してconfigure
$ cd /usr/local/src
$ tar xvfz mod_ssl-2.8.27-1.3.36.tar.gz
$ cd mod_ssl-2.8.27-1.3.36
$ ./configure --with-apache=../apache_1.3.36 --with-ssl=../openssl-0.9.8b --prefix=/usr/local/apache --enable-shared=ssl --enable-module=so --enable-rule=SHARED_CORE --enable-module=rewrite --enable-shared=rewrite
これでDSO,SSL,rewriteが有効になる。この段階でApacheのMakefileが適切に変更されている。
Apacheのディレクトリーに移動してコンパイルする
$ cd ../apache_1.3.36
$ make
$ make certificate
各種入力
--------------------------------------------------------------------------
Signature Algorithm ((R)SA or (D)SA) [R]:
暗号化方式は何を利用しますか?
RSAを使うのでRと入力してからリターンを押す。
--------------------------------------------------------------------------
1. Country Name (2 letter code) [XY]:
証明書を発行するための情報です。国名を入力してください。
例:JP
--------------------------------------------------------------------------
2. State or Province Name (full name) [Snake Desert]:
証明書を発行するための情報です。都道府県名を入力。
例:Tokyo
--------------------------------------------------------------------------
3. Locality Name (eg, city) [Snake Town]:
証明書を発行するための情報です。市町村名を入力してください。
例:Chiyoda
--------------------------------------------------------------------------
4. Organization Name (eg, company) [Snake Oil, Ltd]:
証明書を発行するための情報です。組織名(会社名)を入力してください。
例:NTT
--------------------------------------------------------------------------
5. Organizational Unit Name (eg, section) [Webserver Team]:
証明書を発行するための情報です。部署名を入力してください。
例:Docomo
--------------------------------------------------------------------------
6. Common Name (eg, FQDN) [www.snakeoil.dom]:
証明書を発行するための情報です。組織の通称を入力してください。
例:www.sv-miya.dyndns.org(無しでも可)
--------------------------------------------------------------------------
7. Email Address (eg, name@FQDN) [www@snakeoil.dom]:
証明書を発行するための情報です。メールアドレスを入力してください。
例:root@sv-miya.dyndns.org
--------------------------------------------------------------------------
8. Certificate Validity (days) [365]:
証明書の有効期限を入力してください。単位は日単位になります。
例:365
--------------------------------------------------------------------------
Certificate Version (1 or 3) [3]:
証明書のバージョンを指定してください。
バージョン3を使うので3を入力。
--------------------------------------------------------------------------
Encrypt the private key now? [Y/n]:
証明書の暗号化を行いますか?
行うのでYを入力。
--------------------------------------------------------------------------
Enter PEM pass phrase:
4文字以上のパスワードを入力してください。
適当なパスワードを入力。
--------------------------------------------------------------------------
Verifying password - Enter PEM pass phrase:
パスワードを再入力してください。
A12で入力したパスワードを再度入力。
--------------------------------------------------------------------------
入力終了後、インストールする。(ルート権限になっておくこと)
これでApache+SSLのインストールは終了
$ su
# make install
インストール終了後
# /usr/local/apache/bin/apachectl startssl
で動作しているか見る。
動作していればmake certificateのところで入力したパスワードがきかれ、入力すると起動する。
動作を止める場合はです。
# /usr/local/apache/bin/apachectl stop
http://www.modruby.net/
まずmod_ruby をダウンロードし解凍する
$ cd /usr/local/src
$ tar xvzf mod_ruby-1.2.6.tar.gz
$ cd mod_ruby-1.2.6
mod_ruby.h をエディタで開いて、214行目にある
と変更しコンパイル後インストールする
#define MR_DEFAULT_SAFE_LEVEL 1
↓
#define MR_DEFAULT_SAFE_LEVEL 0
$ ./configure.rb --with-apxs=/usr/local/apache/bin/apxs
$ make
$ su
# make install
とすると、自動的に apache のモジュールディレクトリに mod_ruby.so ができまる。
httpd.conf に定義を追加し、apache を再起動させてやれば OK
httpd.conf修正例なぜか最新rubyだとエラーしたので1行目の libpthread.so を読み込ませました
LoadFile /usr/lib/libpthread.so LoadModule ruby_module libexec/mod_ruby.so AddModule mod_ruby.c <IfModule mod_ruby.c> RubyRequire apache/ruby-run SetEnvIf Request_URI \.rbx rbx SetEnvIf Request_URI \.css rbx <Files *.rbx> SetHandler ruby-object RubyHandler Apache::RubyRun.instance </Files> </IfModule>
必ずmod_ruby.soよりも前に入れて下さい
まず、使用するデーターベースをインストールしておく必要があります。
私はMySQL派(マイナーですが)なのでMySQLをインストールします。
これはパッケージでもかまいません。これで他にも必要なパッケージは自動でダウンロード&インストールしてくれます。
# pkg_add -r mysql323-server
次にデーターベースを初期化します
後半のchownはrootのままだと立ち上がらないのでユーザーとグループをmysqlにします
# cd /usr/local/bin
# ./mysql_install_db
# cd /var/db
# chown -R mysql:mysql mysql
あとはwebminからでも起動して下さい。
そして、Apacheでこのデータベースとの受渡をする為にPHPをインストールします。
http://jp.php.net/downloads.php
ここで最新版をダウンロードし解凍する
MySQLの場合私の場合、libx,l2がインストールされていないとエラーしたのでpkg_addでlibxml2をインストールし直して再configしました
$ tar xvzf php-5.1.4.tar.gz
$ cd php-5.1.4
$ ./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs --enable-mbstring --enable-mbstr-enc-trans
$ make
$ su
# make install
引き続き設定をします。
まずPHP設定ファイルをコピーします
# cp php.ini-dist /usr/local/lib/php.ini
そして以下の部分を編集します
/usr/local/lib/php.iniここを直さないとデータベースにアクセスできません。
#register_globals = Off
register_globals = On
なぜかデフォルトは「off」なんて不親切ですね!
私も修正したのを忘れていました。ご指摘ありがとうございました>山上氏
次にApacheのconfファイルを編集します。
/usr/local/apache/conf/httpd.conf
LoadFile /usr/local/lib/mysql/libmysqlclient.so
LoadModule php5_module libexec/libphp5.so
AddModule mod_php5.c
AddType application/x-httpd-php .php
# デフォルトページに追加する場合
DirectoryIndex index.html index.php
あとはApacheを再起動すればOKです。
動作確認する為に以下の内容のファイルを作りアクセスして見てPHPの設定などちゃんと出れば動いています。
info.php
<?php phpinfo(); ?>
http://www.freebsd.org/cgi/pds.cgi?ports/www/mod_perl
上記の何処かのサイトから最新版をダウンロードし解凍、コンパイル、インストールする
$ tar xvzf mod_perl-1.29.tar.gz
$ cd mod_perl-1.29
$ perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/local/apache/bin/apxs EVERYTHING=1
$ make
$ su
# make install
Apacheのconfファイルを設定する
/usr/local/apache/conf/httpd.conf
LoadModule perl_module libexec/libperl.so
AddModule mod_perl.c
Options FollowSymLinks ExecCGI
AddHandler cgi-script .cgi
あとはApacheを立ち上げ直せば動くと思います。
http://www.apache.org/dist/httpd/contrib/modules/1.3/
ここにある「apache-contrib-1.0.8.tar.gz」をダウンロードし、引き続き解凍します。これでインストール出来ます。
$ cd /usr/local/src
$ tar xvzf apache-contrib-1.0.8.tar.gz
$ su
# make all install /usr/local/apache/bin/apxs
引き続きApacheを設定します
/usr/local/apache/conf/httpd.conf上記の例は「jp」ドメインが128kbps、それ以外を64kbpsにしてみました。
LoadModule bandwidth_module libexec/mod_bandwidth.so
AddModule mod_bandwidth.c
<IfModule mod_bandwidth.c>
BandWidthModule On
BandWidth jp 16834
BandWidth all 8192
LargeFileLimit 500 8192
</IfModule>
数字はバイト/秒です。
また、LargeFileLimitは大きなファイルの場合の制限です。
この場合は500kB以上のファイルは64kbpsにした例です。
openSSLを入れてしまうとApacheを起動する度にパスを聞いて来るので
Webminmからなどは起動できなくなってしまいます。
そこで、このパスを自動で入力して打ち込まないでも起動できるようにしてしまいましょう!
まずはApacheのconfファイルを編集します
/usr/local/apache/conf/httpd.conf
# ↓の行をコメントアウトして
#SSLPassPhraseDialog builtin
# ↓を追加します
SSLPassPhraseDialog exec:/usr/local/etc/private/pp-filter
次にこのpp-filterというファイルを作ります。そしてpp-filterの中身は
# cd /usr/local/etc
# mkdir private
# cd private
# ee pp-filterこの**********はパスワードをそのままいれます。
#!/bin/sh
echo ************
パーミッションは700にでもしておいてください。
# chmod 700 pp-filter
そして、立ち上げ時に自動起動、シャットダウン時に自動終了するには以下のファイルを作成します。
#!/bin/sh apache=/usr/local/apache/bin/apachectl case "$1" in start) $apache startssl ;; stop) $apache stop ;; *) echo "$0 start | stop" ;; esac
Webminで起動、停止のコマンドの場合は
起動=/usr/local/etc/rc.d/apache.sh start
停止=/usr/local/etc/rc.d/apache.sh stop
をカスタムコマンドに追加すればボタン一発で起動停止ができるようになります。