[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[ノート>ノート/ノート]]~
訪問者数 &counter(); 最終更新 &lastmod();
*ACS導入の経緯 [#kc3f48ca]
***導入ガイドメモ &ref(); [#y173b7b2]
***環境作り Pepper編 [#hbb63608]
-PepperはFreeBSD
-Apache2 (ACSはApache1を仮定。動かないかも)
-PHP5 (ACSはPHP-4を仮定。動かないかも)
-PostgreSQL
新しく導入。/usr/portsは古くてファイルが存在しないので、[[日本PostgreSQLユーザ会サイト:http://www.postgresql.jp/PostgreSQL]]からソースをダウンロード(wget ftp://ftp.jp.postgresql.org/source/v8.2.5/postgresql-8.2.5.tar.gz)。~
INSTALLに従って、./configure ⇒ gmake ⇒ gmaie install。インストールテストはINSTALLにある通りでいいが、psql testで起動されたセッションの終了は\qで。
-ImageMatick (6.3.1)
-ApacheにSSL virtual host 導入
--http://httpd.apache.org/docs/2.2/vhosts/
--http://wiki.apache.org/httpd/ExampleVhosts
--SSLのモジュールmod_sslは、Apache2では./configureのオプションであらかじめ
組み込んでおくことになっているらしい。ので、./configure (いろいろ) -enable-ssl
をしたあと、make ⇒ make install で再構築。
--あと、OpenSSLのパッケージが必要なので、インストールしておくこと。
--httpd.confファイルに2つの変更。1つはvirtual host機能を使ってnon-SSLとSSLの
2つのサーバー(named host)を立てること。もう1つはSSL用の構成を作ること。
--virtual host機能は
### Virtual Host Configuration. Two V-H are configured
NameVirtualHost *:80
NameVirtualHost *:443
# Virtual Host #1 Non-SSL host
<VirtualHost *:80>
ServerName pepper.is.sci.toho-u.ac.jp
DocumentRoot "/usr/local/apache2/htdocs"
</VirtualHost>
<VirtualHost *:443>
ServerName pepper.is.sci.toho-u.ac.jp
DocumentRoot "/usr/local/apache2/htdocs-ssl"
SSLEngine On
</VirtualHost>
--SSL用の構成は、全体に
SSLCertificateFile /path/path/path/server.crt
SSLCertificateKeyFile /path/path/path/server.key
--これらの証明書ファイルの作り方は、http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html のCertificateの項を参照。~
その他参照ページは、[[これ:http://mars.elcom.nitech.ac.jp/security/openssl/ca.html]] や [[これ:http://www.aconus.com/~oyaji/www/certs_linux.htm]] や [[オリジナルドキュメント:http://www.openssl.org/docs/HOWTO/]]。有効期限については[[こんな話:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32060&forum=14&4]]~
今のところ手抜きで、Self-signed certificateを使うことにする。
--SSLがうまく動くかどうかのアクセスチェック方法として、
http://httpd.apache.org/docs/2.2/ssl/ssl_faq.htmlのConfigurationの項の
「How do I speak HTTPS manually for testing purposes?」が使える。具体的には
port80にtelnetする代わりに
$ openssl s_client -connect localhost:443 -state -debug
GET / HTTP/1.0
でマニュアルアクセスできる。telnetの時と同様に、GET / HTTP/1.0のあとで2回Enterキーを押すこと。まぁ、ブラウザからhttpsでアクセスしてチェックしてもいいけれど。
-なんと、PHPでPEARによるライブラリ導入が必要。PEARとはPHPの(外部)ライブラリを
簡単に導入できる仕組(というか、開発を標準化してみんなが便利なライブラリを作り、
流通させられるようにする仕組かな)。ACSのインストールリストにあがっているものを
PEARで導入する必要がある。たとえばDB, Mail, ...
--なんと、PEARのバージョンがちょっとだけ古かったので、ライブラリの一部がインストールできないことを発見。面倒(?)なので、PHP全体をバージョンアップ。(マイナーバージョンがちょっとだけ古い状況だったので、大丈夫かと思ったのだけれど、だめだった。)
--多分無事にバージョンアップ。まずはpukiwikiなどの(ACSより前から入っている)システムが問題なく動くことを確認する必要あり。⇒ 一応よさそう。
--PEARでライブラリをインストール
pear install -alldeps <library>
無事完了
-いよいよACSにかかる。
--さっそく、PHP4 vs 5 の問題が発生。PHP5では"this"の扱いが違うので、PHP4で書かれたコンストラクタ(PHP4ではクラス名の関数を定義する)内で、if (うまくいかなければ) $this=NULL;
としておいて、外側で $xx_instance = new Class名(); としてうまく作られなければ
$if (!xx_instance) あきらめる、 という仕組が、「$this=NULL」の部分がエラーになる。
PHP5のマニュアルを見ると、thisは変わったよ、と書いてある。どう書き換えたらいちばんいいのか?~
~
マニュアル [[PHP 4 から PHP 5 への移行:http://www.php.net/manual/ja/migration5.php]]
の下位互換性のない変更点の1行目 「新たな予約キーワードがいくつか あります。」
--あっさり逃げる手としては、[[FAQ PHP 4 から PHP 5 への移行:http://www.php.net/manual/ja/faq.migration5.php]] にある記述、~
PHP 5 ではまったく新しいオブジェクト指向モデルが採用されていると 聞きましたが、既存のオブジェクト指向なコードは動きますか? 新しい オブジェクト指向モデルについての情報はどこで得られますか?~
PHP 5 での主要な変更点は新しいオブジェクト指向モデルであり、それは Zend Engine 2.0 を用いています。 zend.ze1_compatibility_mode ディレクティブを設定することで、 Zend Engine 1.0 (PHP 4) との互換性を保つことができます。~
新しいオブジェクト指向モデルについては、 クラスとオブジェクト と 新しい オブジェクトモデル の章に記述されています。~
にあるように、Zend Engineの1.0を使うようにしてしまえばいいという方法はある。でも、なるべくならやりたくない。
--関数unsetは使えるか? 仮にNULLの代入からunsetに変更。
--画面に何も表示されず。 ログにはcronで書かれている中でmb_http_outputがundefinedとのメッセージ。
***[[面倒なので、ACSご指定の環境を別途構築>ノート/ACS2]] [#qee9294d]
終了行:
[[ノート>ノート/ノート]]~
訪問者数 &counter(); 最終更新 &lastmod();
*ACS導入の経緯 [#kc3f48ca]
***導入ガイドメモ &ref(); [#y173b7b2]
***環境作り Pepper編 [#hbb63608]
-PepperはFreeBSD
-Apache2 (ACSはApache1を仮定。動かないかも)
-PHP5 (ACSはPHP-4を仮定。動かないかも)
-PostgreSQL
新しく導入。/usr/portsは古くてファイルが存在しないので、[[日本PostgreSQLユーザ会サイト:http://www.postgresql.jp/PostgreSQL]]からソースをダウンロード(wget ftp://ftp.jp.postgresql.org/source/v8.2.5/postgresql-8.2.5.tar.gz)。~
INSTALLに従って、./configure ⇒ gmake ⇒ gmaie install。インストールテストはINSTALLにある通りでいいが、psql testで起動されたセッションの終了は\qで。
-ImageMatick (6.3.1)
-ApacheにSSL virtual host 導入
--http://httpd.apache.org/docs/2.2/vhosts/
--http://wiki.apache.org/httpd/ExampleVhosts
--SSLのモジュールmod_sslは、Apache2では./configureのオプションであらかじめ
組み込んでおくことになっているらしい。ので、./configure (いろいろ) -enable-ssl
をしたあと、make ⇒ make install で再構築。
--あと、OpenSSLのパッケージが必要なので、インストールしておくこと。
--httpd.confファイルに2つの変更。1つはvirtual host機能を使ってnon-SSLとSSLの
2つのサーバー(named host)を立てること。もう1つはSSL用の構成を作ること。
--virtual host機能は
### Virtual Host Configuration. Two V-H are configured
NameVirtualHost *:80
NameVirtualHost *:443
# Virtual Host #1 Non-SSL host
<VirtualHost *:80>
ServerName pepper.is.sci.toho-u.ac.jp
DocumentRoot "/usr/local/apache2/htdocs"
</VirtualHost>
<VirtualHost *:443>
ServerName pepper.is.sci.toho-u.ac.jp
DocumentRoot "/usr/local/apache2/htdocs-ssl"
SSLEngine On
</VirtualHost>
--SSL用の構成は、全体に
SSLCertificateFile /path/path/path/server.crt
SSLCertificateKeyFile /path/path/path/server.key
--これらの証明書ファイルの作り方は、http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html のCertificateの項を参照。~
その他参照ページは、[[これ:http://mars.elcom.nitech.ac.jp/security/openssl/ca.html]] や [[これ:http://www.aconus.com/~oyaji/www/certs_linux.htm]] や [[オリジナルドキュメント:http://www.openssl.org/docs/HOWTO/]]。有効期限については[[こんな話:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32060&forum=14&4]]~
今のところ手抜きで、Self-signed certificateを使うことにする。
--SSLがうまく動くかどうかのアクセスチェック方法として、
http://httpd.apache.org/docs/2.2/ssl/ssl_faq.htmlのConfigurationの項の
「How do I speak HTTPS manually for testing purposes?」が使える。具体的には
port80にtelnetする代わりに
$ openssl s_client -connect localhost:443 -state -debug
GET / HTTP/1.0
でマニュアルアクセスできる。telnetの時と同様に、GET / HTTP/1.0のあとで2回Enterキーを押すこと。まぁ、ブラウザからhttpsでアクセスしてチェックしてもいいけれど。
-なんと、PHPでPEARによるライブラリ導入が必要。PEARとはPHPの(外部)ライブラリを
簡単に導入できる仕組(というか、開発を標準化してみんなが便利なライブラリを作り、
流通させられるようにする仕組かな)。ACSのインストールリストにあがっているものを
PEARで導入する必要がある。たとえばDB, Mail, ...
--なんと、PEARのバージョンがちょっとだけ古かったので、ライブラリの一部がインストールできないことを発見。面倒(?)なので、PHP全体をバージョンアップ。(マイナーバージョンがちょっとだけ古い状況だったので、大丈夫かと思ったのだけれど、だめだった。)
--多分無事にバージョンアップ。まずはpukiwikiなどの(ACSより前から入っている)システムが問題なく動くことを確認する必要あり。⇒ 一応よさそう。
--PEARでライブラリをインストール
pear install -alldeps <library>
無事完了
-いよいよACSにかかる。
--さっそく、PHP4 vs 5 の問題が発生。PHP5では"this"の扱いが違うので、PHP4で書かれたコンストラクタ(PHP4ではクラス名の関数を定義する)内で、if (うまくいかなければ) $this=NULL;
としておいて、外側で $xx_instance = new Class名(); としてうまく作られなければ
$if (!xx_instance) あきらめる、 という仕組が、「$this=NULL」の部分がエラーになる。
PHP5のマニュアルを見ると、thisは変わったよ、と書いてある。どう書き換えたらいちばんいいのか?~
~
マニュアル [[PHP 4 から PHP 5 への移行:http://www.php.net/manual/ja/migration5.php]]
の下位互換性のない変更点の1行目 「新たな予約キーワードがいくつか あります。」
--あっさり逃げる手としては、[[FAQ PHP 4 から PHP 5 への移行:http://www.php.net/manual/ja/faq.migration5.php]] にある記述、~
PHP 5 ではまったく新しいオブジェクト指向モデルが採用されていると 聞きましたが、既存のオブジェクト指向なコードは動きますか? 新しい オブジェクト指向モデルについての情報はどこで得られますか?~
PHP 5 での主要な変更点は新しいオブジェクト指向モデルであり、それは Zend Engine 2.0 を用いています。 zend.ze1_compatibility_mode ディレクティブを設定することで、 Zend Engine 1.0 (PHP 4) との互換性を保つことができます。~
新しいオブジェクト指向モデルについては、 クラスとオブジェクト と 新しい オブジェクトモデル の章に記述されています。~
にあるように、Zend Engineの1.0を使うようにしてしまえばいいという方法はある。でも、なるべくならやりたくない。
--関数unsetは使えるか? 仮にNULLの代入からunsetに変更。
--画面に何も表示されず。 ログにはcronで書かれている中でmb_http_outputがundefinedとのメッセージ。
***[[面倒なので、ACSご指定の環境を別途構築>ノート/ACS2]] [#qee9294d]
ページ名: