[[ノート>ノート/ノート]]~
訪問者数 &counter();      最終更新 &lastmod();

*ACS導入の経緯 2 [#nfe9dd4f]
***導入ガイドメモ &ref(); [#s5c7468d]

***もう一度最初から挑戦。今度は完全にPHP4環境を構築 [#f4314eb9]
[[新しいマシンsalt.yyで以前にやったことは、ここ参照>ノート/ACS2]]

***環境作り salt編  ここは前のコピー [#o3421ae6]
-saltはFedora8-live。パッケージからインストール。パッケージ情報は
http://koji.fedoraproject.org/koji/packageinfo?packageID=280 あたりにあり。検索で探せる。
-OpenSSLは、Fedora-8上のパッケージを利用。/usr/bin/openssl version ⇒ 
OpenSSL 0.9.8b 04 May 2006。ということでよさそう。~
ヘッダファイルなどが見当たらない。で yum install openssl-devel~
これのdependencyとして、yum install krb5-devel、yum install zlib-devel。
-mod_sslが必要。コンパイル時にリンクしてしまうのではなく、モジュールとして実行時にロードする(ようにFedoraでは設定されている)~
yum install mod_ssl
-あと必要なのが、OpenSSLでサーバー証明書を作成しておくこと。
これらの証明書ファイルの作り方は、http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html のCertificateの項を参照。
今のところ手抜きで、Self-signed certificateを使うことにする。~

-ApacheにSSL virtual host 導入
--http://httpd.apache.org/docs/2.2/vhosts/
--http://wiki.apache.org/httpd/ExampleVhosts
--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
--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キーを押すこと。
-Fedoraのapacheのconfファイルは、追加分を別ファイルとしてconf.d/ssl.confやconf.d/php.confのように作ることになっている。でも全体構造がわかり難いので
このやり方はやめて(includeを止めて)すべてhttpd.confに書き込む。

***ここから新しい試み PHP-4をインストール [#l9db4d6c]
-(ACSはPHP-4を仮定しているが)前は、PHP5をインストールしてZend-1互換をOnに
したが、これでは十分な互換性が無く、ACSはエラーメッセージを吐き続けた。
-- PHP-5にこだわった理由は、12月いっぱいでPHP-4の提供が終わるので、
PHPの本家ページでは、PHP-5を入れて、PHP-4互換性のためにはZend-1を使うように
php.iniを設定して、PHP-4をシミュレートせよ、と書いてあったため。
--もう1つは、yumでパッケージを簡単に入れられるため。

-で、PHP-4の最終版のソースをダウンロードし、自分でビルドする。
--wget http://www.php.net/get/php-4.4.7.tar.bz2/from/jp.php.net/mirror
でダウンロード、tar -jxvf php-4.4.7.tar.bz2で展開。

--configureのパラメタは、既に入っているものを参考にするが、いろいろと追加も必要。
 #!/bin/sh
 ./configure\
  --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin\
  --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include\
  --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var\
  --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info\
  --cache-file=../config.cache --with-libdir=lib --with-config-file-path=/etc\
  --with-config-file-scan-dir=/etc/php.d --disable-debug --with-pic\
  --disable-rpath --with-pear=/usr/share --with-bz2 --with-curl --with-exec-dir=/usr/bin\
  --with-freetype-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf\
  --without-gdbm --with-gettext --with-gmp --with-iconv --with-jpeg-dir=/usr\
  --with-openssl --with-png --with-pspell --with-expat-dir=/usr --with-ldap\
  --with-pcre-regex=/usr --with-zlib --with-layout=GNU --enable-exif\
  --enable-ftp --enable-magic-quotes --enable-sockets --enable-sysvsem\
  --enable-mbstring\
  --enable-sysvshm --enable-sysvmsg --enable-track-vars --enable-trans-sid\
  --enable-yp --enable-wddx --with-kerberos --enable-ucd-snmp-hack\
  --with-unixODBC=shared,/usr --enable-memory-limit --enable-shmop\
  --enable-calendar --enable-dbx --enable-dio --without-mime-magic\
  --without-sqlite --with-libxml-dir=/usr --with-xml --with-apxs2=/usr/sbin/apxs\
  --without-mysql --without-gd --without-odbc --disable-dom --disable-dba --with-pgsql\
  --without-unixODBC --disable-pdo --disable-xmlreader --disable-xmlwriter\
  --disable-json
のようなものを作って、configure、あとはmake; make install

--with-pgsqlとwith-ldapとwith-opensslとwith-apxs2=/usr/sbin/apxsは追加。

--逆に、withで書かれているもので、ソフト(開発)環境が不足するものがあるので
(これはconfigure時にエラーメッセージが出る)いくつか追加。たとえばaspell-devel, 
curl-devel, gpm, openssl-devel, postgresql-devel, など。(抜けがあるかも)

--/etc/php.iniはphp-4用のものでphp-ini.distとphp-ini.recommended(ソース内にあり)があるが、recommendedをコピー。しかしかなり改変が必要。
---error_reportingは E_ALL & ~E_NOTICEに戻す
---include_pathを include_path = ".:/php/includes:/usr/share/pear" これはPEARで導入したモジュールをincludeさせるため
---allow_call_time_pass_reference = On  これはACSで使っていて、Offだと実行時に警告が出るので。


-PHPからldapサーバをアクセスするために、php-ldapモジュールが必要だが、rpmパッケージと違い、自分でconfigureしたときに--with-ldapを入れているためstaticで入っている。確認のため、次のページを作って試す。~
http://www.php.net/manual/ja/ref.ldap.php
 <?php
 // LDAP の基本シーケンスは、接続、バインド、検索、検索結果の解釈、
 // 接続のクローズです。
 
 echo "<h3>LDAP query test</h3>";
 echo "Connecting ...";
 $ds=ldap_connect("remote host name: 389");  // 有効な LDAP サーバーに違いない!
 echo "connect result is " . $ds . "<br />";
 
 if ($ds) { 
     echo "Binding ..."; 
     $searchstring="(objectClass=*)";
 
     $r=ldap_bind($ds);     // これは "匿名" バインドで、通常は
                            // 読みこみのみのアクセスとなります。
     echo "Bind result is " . $r . "<br />";
 
     echo "Searching for (sn=S*) ...";
     // 名前(surname)エントリを検索
     $sr=ldap_search($ds, "cs=Manager,dc=...", $searchstring);  
     echo "Search result is " . $sr . "<br />";
 
     echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "<br />";
 
     echo "Getting entries ...<p>";
     $info = ldap_get_entries($ds, $sr);
     echo "Data for " . $info["count"] . " items returned:<p>";
 
     for ($i=0; $i<$info["count"]; $i++) {
         echo "dn is: " . $info[$i]["dn"] . "<br />";
         echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />";
         echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />";
     }
 
     echo "Closing connection";
     ldap_close($ds);
 
 } else {
     echo "<h4>Unable to connect to LDAP server</h4>";
 }
 ?>

-これで、ACSの画面が出るところまでやっと行き着いた。しかし、まだnagoya-uと
行ったり来たり。つまりジャンプ先URLにnagoya-uが入っている場所が多数あり。
 sql/setup.sql:01        SYSTEM_BASE_URL http://acs.is.nagoya-u.ac.jp/   string  3
 sql/setup.sql:01        SYSTEM_BASE_LOGIN_URL   https://acs.is.nagoya-u.ac.jp/login/    string  4
 sql/setup.sql:01        SYSTEM_MAIL_ADDR        acs-admin@acs.is.nagoya-u.ac.jp string  5
 sql/setup.sql:01        LDAP_SERVER     ldap.nagoya-u.jp        string  8
 sql/setup.sql:01        DESIGN_STYLE_CSS_URL   http://acs.is.nagoya-u.ac.jp/css/selection      string  13
 sql/setup.sql:03        COMMUNITY_ML_MAIL_ADDR  bbs@acs.is.nagoya-u.ac.jp       string  4
 webapp/lib/acs_define.php:define('ACS_COMMUNITY_ML_ADDR_SUFFIX', '@acs.is.nagoya-u.ac.jp');

-更に、メッセージ関係がある。特に
 webapp/lib/messages/ja/lib_messages.ini
 webapp/lib/messages/ja/templates_messages.ini
最後のtemplates_messages.iniはトップページのスタティックイメージを作るときに使うが、その中でブラウザのタイトル欄の表示を決めるところがある。英文用も同様に変更。

-また、ページのバナー的な部分はイメージふぁいるだが、その中に名古屋大学の文字が
あるので、それを修正する。 htdocs/img/head.jpg

-あと、htdocs/faq/index.htmlの文章の内容が名古屋大学向けなので、それを修正する必要あり。(まだやっていない)

-webapp/pages/***はトップページのスタティックイメージで、実行中に生成するので、ここでの修正は不要。

-これらを修正した後で、pgsqlのDBを作り直して(なぜならsql初期生成スクリプトを直したから)、かつスタティックなトップページを作り直して(php -f /home/acsuser/acs/bin/create_statictop.php) ほぼOK

***LDAP認証がうまくいかないので、apache設定の変更 ⇒ [[ここから研究室内のみアクセス可>]] [#tc7a1f2d]
***LDAP認証がうまくいかないので、apache設定の変更 ⇒ [[ここから研究室内のみアクセス可>yylab/山内の研究ノート/LDAP認証の実データ]] [#tc7a1f2d]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS