最近Asteriskばっかりいじっているので、今日はIVR(自動音声案内)を作成するにはどうしたらいいか、というのをやってみたいと思います。
なお、http://voip-info.jpを参考にしました。
“AsteriskでIVR(自動音声案内)を行う” の続きを読む
PHP5.1.4にしますか。
早起きはなんだかのオ得って昔から言いますけれど、PHP5.1.3にバグがあるらしいことを教えて頂いたので対処してみます。(^^;
毎度の事ながら、PHPのconfigureは、
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-xml --enable-mbstr-enc-trans --enable-mbstring --with-pgsql=/usr/local/pgsql --with-tsrm-pth
としてコンパイル。
手始めに我が家のをやってみるけれど、時間かかるなー。
なお、PHP5.1.4はこちらからダウンロードできます。
[BIND9]FreeBSD6.0にインストール&名前解決が遅い件。
BIND9の構築・設定をしてみます。
“[BIND9]FreeBSD6.0にインストール&名前解決が遅い件。” の続きを読む
[FreeBSD6.0]jailを試す。
FreeBSD6.0を導入した際に、jailを構築したときのメモです。
“[FreeBSD6.0]jailを試す。” の続きを読む
kenti.jpがピンチ。バックアップしておかねば。
給料日前でそりゃ本人もピンチですが、なんてことはなく、このHPの置いてあるサーバ、我が家の屋根裏にて動いています。
しかし最近、よく落ちます。原因はたぶんHDD。IBMのHDDを使用しているものだから、早めにデータをバックアップしておかねば…。
ところで、PC-UNIX環境でバックアップはどうするんじゃいとよく質問されるのですが、私の場合は以下のようなシェルスクリプトを動作させています。
“kenti.jpがピンチ。バックアップしておかねば。” の続きを読む
squidによる透過Proxyの構築。
職場での話なのですが、要はエロサイトばかりを見ておらっしゃる方がいたので対策をするため、透過Proxyの構築をしてみました。
FreeBSD5.3にImageMagickをインストール。
FreeBSD5.3にImageMagickをインストールした記録です。
“FreeBSD5.3にImageMagickをインストール。” の続きを読む
[apache2] webサーバのインストール
webを公開するためにwebサーバをインストールします。webサーバには、プロバイダなどでもよく使われているApacheを使用します。
Apacheには2種類のバージョンがありますが、今回はver2系のほう(httpd2)を使用します。
もちろん、ver1系のほうでも同様に動作させることが可能です。
ではでは早速、ソースをダウンロードし、コンパイル、インストールまで行います。
途中、注意するところがありますので気をつけて下さい。
> fetch http://www.apache.jp/dist/httpd/httpd-2.0.47.tar.gz Receiving httpd-2.0.47.tar.gz (6217401 bytes): 100% (ETA 00:00) > tar xzf httpd-2.0.47.tar.gz > cd httpd-2.0.47 checking for chosen layout… Apache checking for working mkdir -p… yes checking build system type… i386-unknown-freebsd5.1 ……(省略) # make (コンパイルします。気長に待ちましょう。) |
ここで気をつけるのは2点です。
※1
–enable-so (soモジュールを有効にする)
これは、後述するPHPを使用できるするために必要なので、つけました。
–enable-ssl (sslを利用可能にする)
SSLページ (https://〜で始まる暗号化されたページ)を利用可能にするために、必要です。
通常であれば必要ないですが、セキュアなページには必要でしょう。(^^;※2
今回、デフォルトのままインストールしましたので、インストールされる場所は、
/usr/local/apache2 以下にインストールされます。
インストールする場所を変えるには、※1の時に
./configure –prefix=/usr/local/httpd2 …
のように記述すれば変更可能です。
インストールが完了したら、早速設定ファイルを編集しましょう。
[ /usr/local/apache2/conf/httpd.conf ]
(216行あたり・使用ポートの設定と、IPV6を使わなければ#を)
Listen 80
#Listen [::]:80
(275行あたり・管理者のメールアドレスを書く) (305行あたり・ドキュメントルートの指定) (330〜360行あたり・ドキュメントルートのオプションなど) (365〜385行あたり・ユーザディレクトリの設定) (393行あたり・インデックスファイル名の指定) (794行あたり・デフォルトの文字コード) |
上記の設定では、SSI・CGIを使えるようにする他、後述するPHPを実行できるように設定しています。
(ちょっと手抜きですね…。ここは後ほど、もう少し詳しくツッコミを書きたいと思います。)
設定ファイルを書いたら、上記設定ファイルにおかしいところがないかどうか、チェックをします。
# /usr/local/apache2/bin/apachectl configtest Syntax OK |
Syntax OKと出てくれば、設定ファイルに間違いはなさそうです。
あとは起動するべし…。
# /usr/local/apache2/bin/apachectl start |
今回、ドキュメントルートには /home/www/html と設定をしたので、その中に適当なhtmlファイル云々を入れてみて表示されるかどうか確認してみましょう。うまくいけば、http://www.kenti.jp
のように表示できるはずです。(^_^)v
[php4]phpのインストール
webでPHPのスクリプトを扱えるようにするため、インストールをしてみましょう。
今回の場合、前回のApacheをインストールする際に、soモジュールというものを利用できるようにしていたので、インストール後に少しだけhttpd.confの設定を変更するだけで、簡単に使用することができます。
[ ソースのダウンロード・展開 ]# fetch http://www.php.net/get/php-4.3.3.tar.gz/from/jp.php.net/mirror
# mv mirror php-4.3.3.tar.gz (mirrorという名前でダウンロードしてしまうので名前変更)
# tar xzf php-4.3.3.tar.gz (カレントディレクトリに展開)
# cd php-4.3.3
[ 環境チェック・コンパイル前準備]# ./configure ¥
? –with-apxs2=/usr/local/apache2/bin/apxs ¥
? –with-xml –enable-mbstr-enc-trans –enable-mbstring ¥
? –with-mysql=/usr/local/mysql –with-tsrm-pth
creating cache ./config.cache
checking host system type… i386-unknown-freebsd5.1
checking for gcc… gcc
checking whether the C compiler (gcc ) works… yes
…………(環境チェックなどが始まります)
[コンパイルして、インストールする]# make ; make install
gcc -Iext/ctype/ -I/Users/kenti714/Desktop/php-4.3.3/ext/ctype/
-DPHP_ATOM_INC
…(コンパイル後、インストールされます)
コンパイル前に、Apache2を使用する、xmlを使用する、mbstring(日本語などの2bytes文字)を使用する、などの設定をしています。今回は必要な物だけをつけましたが、他に欲しい物は ./configure –help と入力すれば一覧を表示することが出来ます。
インストールが終わった後、httpd.confに以下のsoモジュール記述があるかどうか確認します。
[ /usr/local/apache2/conf/httpd.conf ]( 230行あたり )
LoadModule php4_module modules/libphp4.so
あとは、Apacheを再起動させて、web領域に以下のテストファイルを作成し、表示できるか確認してみましょう。
[ test.php ]<? phpinfo(); ?>
たったこれだけの記述ですが、うまく表示させることが出来ればにぎやかな表示が出ると思います。これで、Perlの他にもPHPを使ったCGIが使用できるようになります。
[apache2+SSL] SSLの構築・設定
SSLサイトを構築するために、当サイト用の公開鍵・秘密鍵・認証局提出用の認証鍵の作成をしてみます。
本当は…ベリサインとか、その手の認証局に提出して認証鍵に承認してもらうものですが、実験として自分で認証をすることにします。暗号化目的だけであれば、これはこれでいいのかもしれません(^^;
[ 秘密鍵の作成 ]
> openssl genrsa -des3 -rand /var/log/messages -out www.kenti.jp.pem loaded Generating RSA private key, 1024 bit long modulus …….++++++ ……….++++++ e is 65537 (0x10001) Enter PEM pass phrase: (パスフレーズを入力します) Verifying password – Enter PEM pass phrase: (同じものをもういちど) |
こうして、www.kenti.jp.pem という秘密鍵ファイルが出来ます。間違ってもweb領域に置かないように…。
それと、パスフレーズを忘れないようにしましょう。忘れると、以下の公開鍵などができませんです。。。
[ 認証局への認証鍵作成 ]
> openssl req -new -key www.kenti.jp.pem -out www.kenti.jp.csr Using configuration from /etc/ssl/openssl.cnf Enter PEM pass phrase: (秘密鍵を作成したパスフレーズを入力)You are about to be asked to enter information into your certificate request. What you are about to enter is what is called a Distinguished 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) [AU]:JP State or Province Name (full name) [Some-State]:Fukushima Locality Name (eg, city) []:Koriyama Organization Name (eg, company) [Internet Organizational Unit Name (eg, section) Common Name (eg, YOUR name) []:www.kenti.jp Email Address []:info@kenti.jp Please enter the following ‘extra’ attributes to be sent with your certificate request A challenge password []: An optional company name []: |
ここで、www.kenti.jp.csr というファイルができあがります。本来はこのファイルを認証局へ送って、費用を払えばいいらしいです。(^^ゞ
でも今回は、自分で認証してしまいます。
[ 自分が認証局のつもりで認証をし、公開鍵の作成 ]
> openssl x509 -req -days 365 -in www.kenti.jp.csr -signkey Signature ok subject=/C=JP/ST=Fukushima/L=Koriyama/O=kenti/CN=www.kenti.jp/Email=info@kenti.jp Getting Private key Enter PEM pass phrase: (秘密鍵のパスフレーズを入力) |
これで、自分が認証・署名した公開鍵、www.kenti.jp.crt ができあがります。
ここまでできあがれば大丈夫でしょう。
あとは、秘密鍵の中に、パスフレーズを埋め込んでおくと、SSLページを表示させるときにパスフレーズを入力する必要がなくなりますので、やっておくといいのかな…。
(我が家はこの方法じゃないと、SSLページをうまく表示してくれませんでした。)
[ 秘密鍵にパスフレーズを埋め込む ]
> mv www.kenti.jp.pem www.kenti.jp.pem.buckup (念のためバックアップ) > openssl rsa -in www.kenti.jp.pem.buckup -out www.kenti.jp.pem read RSA key Enter PEM pass phrase: (秘密鍵のパスフレーズを入力)writing RSA key |
こうして、www.kenti.jp.pem という秘密鍵ファイルに、パスフレーズが埋め込まれました。
次に、ApacheのSSL設定を行います。設定は、ssl.confに書きます。
基本的には、デフォルトの設定のままで大丈夫ですが、当サイトの設定は以下の通りです。
(webからのパスワード変更、メールの転送設定のページなどに使っています。)
[ /usr/local/apache2/conf/ssl.conf ] ※白地部分が書き換えた場所です <IfDefine SSL> Listen 443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLSessionCache dbm:logs/ssl_scache SSLSessionCacheTimeout 300 SSLMutex file:logs/ssl_mutex SSLRandomSeed startup builtin SSLRandomSeed connect builtin <VirtualHost 61.206.126.90:443> ServerName www.kenti.jp:443 ServerAdmin info@kenti.jp DocumentRoot “/home/www/sslpage_html” ScriptAlias /cgi-bin/ /home/www/sslpage_html/cgi-bin/ SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
(公開鍵の場所を指定します) SSLCertificateFile /usr/local/www/www.kenti.jp.crt (秘密鍵の場所を指定します) SSLCertificateKeyFile /usr/local/www/www.kenti.jp.pem SetEnvIf User-Agent “.*MSIE.*” nokeepalive ssl-unclean-shutdown ¥ downgrade-1.0 force-response-1.0 </VirtualHost> </IfDefine> |
我が家はIPベースで動かす方法をとったので、通常のwebページにもVirtualの設定を行いました。
こうすることで、普通のwebページと、SSLページを同居させることが出来ます。
[ /usr/local/apache2/conf/httpd.conf ] ※一番最後に追加 NameVirtualHost 61.206.126.90:80 <VirtualHost 61.206.126.90:80> ServerName www.kenti.jp DocumentRoot /home/www/html </VirtualHost> |
あとは、ApacheをSSL機能付きで、以下のように起動させます。
気をつけることは、通常の起動方法とは少しだけ変わります。
# /usr/local/apache2/bin/apachectl stop (既に動作していたら、止めます) # /usr/local/apache2/bin/apachectl sslstart (SSL機能付きでスタート) |
普通に、start ではないことに注意して下さい。
無事起動したか、アクセスして確認してみて下さい。
[ 通常のwebページ ] http://www.kenti.jp
[ SSLのページ ] https://www.kenti.jp/
(自己認証のため、警告が出ますがそのまま進むとSSLページに行きます)