http://httpd.apache.org/download.cgi より
http://webdav.todo.gr.jp/download/ より
% cd httpd-2.0.50 % gzcat ../../src/014_path_iconv.gz |gpatch -p2
reject されるので srclib/apr/file_io/unix/Makefile.in を手直し
diff -c Makefile.in Makefile.in.org *** Makefile.in Wed Nov 26 17:02:50 2003 --- Makefile.in.org Wed Nov 26 17:10:21 2003 *************** *** 16,23 **** readwrite.lo \ seek.lo \ mktemp.lo \ ! tempdir.lo \ ! path_iconv.lo # bring in rules.mk for standard functionality @INCLUDE_RULES@ --- 16,22 ---- readwrite.lo \ seek.lo \ mktemp.lo \ ! tempdir.lo # bring in rules.mk for standard functionality @INCLUDE_RULES@ % gzcat ../../src/015_escape_amp.gz | gpatch -p2 % gzcat ../../src/016_ie_webdavize.gz | gpatch -p2
このままコンパイルするとエラーが出るんで, srclib/apr/file_io/unix/dir.c を修正する
diff -c dir.c dir.c.org *** dir.c Wed Nov 26 17:29:47 2003 --- dir.c.org Wed Nov 26 16:56:50 2003 *************** *** 13,20 **** * limitations under the License. */ - #define NAME_MAX 256 - #include "apr_arch_file_io.h" #include "apr_strings.h" #include "apr_portable.h" --- 13,18 ----
% ./configure --prefix=/opt/apache --enable-so \ --enable-mods-shared="access actions alias asis auth auth_anon auth_dbm autoindex cern_meta cgi dav dav_fs dir encoding env expires ext_filter headers imap include info log_config mime mime_magic negotiation rewrite setenvif speling unique_id userdir usertrack vhost_alias" \ --enable-ssl --with-mpm=prefork --with-z=/opt/local \ --with-ssl=/opt/SUNWconn/crypto EXTRA_LIBS="-lcryptography -lnvpair"
で build/config_vars.mk
EXTRA_LIBS = -lssl -lcrypto
の行を
EXTRA_LIBS = -lssl -lcrypto -lcryptography -lnvpair
と変更する.
その他,J 環境では同じく build/config_vars.mk に対して
AP_LIBS = /home/user01/build/httpd-2.0.50/srclib/pcre/libpcre.la ...
の行の最後に
-liconv
を付け加え,さらに
EXTRA_LDFLAGS = -L/usr/local/lib -L/opt/SUNWconn/crypto/lib ...
の行の最初の所に
-L/opt/local/lib
を加えて,
EXTRA_LDFLAGS = -L/opt/local/lib -L/usr/local/lib ...
となるようにする.
% make # make install
で,J 環境では,上記 EXTRA_LDFLAGS を元に戻して (2.0.50 で OpenSSL 0.9.7b ぐらいの時代), or "-L/opt/SUNWconn/crypto/lib" を一番前に持ってきて
% make clean % make # make install
しないと,Crypto Accelerator のライブラリにリンクしてくれない.
# groupadd -g 80 apache # useradd -d /dev/null -u 80 -g apache -s /bin/false apache
#!/bin/sh # # # Startup for httpd # APACHE_FS_ENCODING=eucJP export APACHE_FS_ENCODING case "$1" in 'start') /opt/apache/bin/apachectl startssl ;; 'stop') /opt/apache/bin/apachectl stop ;; 'restart') /opt/apache/bin/apachectl restart ;; *) echo "Usage: /etc/rc2.d/S98wwwserver { start | stop }" ;; esac exit 0
http://webdav.todo.gr.jp/download/ より
% gzcat ../src/mod_encoding-20021209.tar.gz | tar xvf - % cd mod_encoding-20021209/ % mv mod_encoding.c mod_encoding.c.org % cp ../../src/mod_encoding.c.apache2.20020611a-2 mod_encoding.c % cd lib % ./configure --prefix=/opt/local % gmake # gmake install
2.0.X 同志のバージョンアップなら古いものをコピーしても可能
ソース展開は, libiconv_hook のところを参照.
% cd .. % ./configure --prefix=/opt/local \ --with-apxs=/opt/apache/bin/apxs \ --with-iconv-hook=/opt/local/include % gmake # gmake install -> エラー % gcc -shared -o mod_encoding.so mod_encoding.o -Wc,Wall \ -L/opt/local/lib -R/opt/local/lib -liconv_hook # cp mod_encoding.so /opt/apache/modules
その後,/opt/apache/conf/httpd.conf に
LoadModule encoding_module modules/mod_encoding.so
という行を加える.
% cd imap-2002e % vi Makefile diff -c Makefile Makefile.org *** Makefile Wed Nov 26 19:26:34 2003 --- Makefile.org Tue Jul 15 10:17:18 2003 *************** *** 149,156 **** # std system standard (typically passwd file), determined by port # two try alternative (defined by CHECKPWALT), then std ! #PASSWDTYPE=std ! PASSWDTYPE=pam # SSL type. Defines whether or not SSL support is on this system --- 149,155 ---- # std system standard (typically passwd file), determined by port # two try alternative (defined by CHECKPWALT), then std ! PASSWDTYPE=std # SSL type. Defines whether or not SSL support is on this system
% vi src/osdep/unix/Makefile diff -c src/osdep/unix/Makefile src/osdep/unix/Makefile.org *** src/osdep/unix/Makefile Wed Nov 26 19:55:39 2003 --- src/osdep/unix/Makefile.org Wed Nov 26 19:50:40 2003 *************** *** 28,37 **** # Extended flags needed for SSL. You may need to modify. ! SSLDIR=/opt/local/ssl SSLCERTS=$(SSLDIR)/certs ! SSLKEYS=$(SSLDIR)/private ! SSLINCLUDE=/opt/local/include ! SSLLIB=/opt/local/lib SSLCRYPTO=-lcrypto --- 28,37 ---- # Extended flags needed for SSL. You may need to modify. ! SSLDIR=/usr/local/ssl SSLCERTS=$(SSLDIR)/certs ! SSLKEYS=$(SSLCERTS) ! SSLINCLUDE=$(SSLDIR)/include SSLLIB=$(SSLDIR)/lib SSLCRYPTO=-lcrypto
% make gso # cp c-client/c-client.a /opt/local/lib/libc-client.a # cp c-client/rfc822.h /opt/local/include/ # cp c-client/mail.h /opt/local/include/ # cp c-client/linkage.h /opt/local/include/
% cd gettext-0.12.1 # % ./configure --prefix=/opt/local % ./configure --prefix=/opt/local CC=cc CXX=CC LD_RUNPATH=${LD_RUNPATH} % make # make install
% cd libmcrypt-2.5.7 % ./configure --prefix=/opt/local % make
エラー?
% make clean;make (なんで 2回目は通る?) # make install
http://jp.php.net/get/php-4.3.8.tar.gz/from/this/mirror
Cypto Accelerator の場合,以下のパッチをあてる (リンクライブラリに -lcryptography -lnvpair を加えている)
----------------------------------------------------------------------- % diff configure configure.org 16461c16461 < LIBS="-lssl -lcryptography -lnvpair $LIBS" --- > LIBS="-lssl $LIBS" 40432c40432 < IMAP_SHARED_LIBADD="$IMAP_SHARED_LIBADD -lcrypto -lcryptography -lnvpair" --- > IMAP_SHARED_LIBADD="$IMAP_SHARED_LIBADD -lcrypto" 40439c40439 < DLIBS="$DLIBS -lcrypto -lcryptography -lnvpair" <--4.4.2 の場合は記述が少し違う(DLIBS じゃないので注意) --- > DLIBS="$DLIBS -lcrypto" -----------------------------------------------------------------------
#END OF Crypto Accelerator
% ./configure --prefix=/opt/local --with-apxs2=/opt/apache/bin/apxs \ --enable-mbstring --enable-mbregex \ --with-openssl=/opt/SUNWconn/crypto \ --with-imap=/opt/local --with-imap-ssl=/opt/local \ --with-zlib=/opt/local \ --with-gettext=/opt/local \ --with-xml \ --with-mcrypt=/opt/local \ --with-mysql=/opt/mysql % make # make install # # cp php.ini-dist /opt/local/lib/php.ini # cp php.ini-recommended /opt/local/lib/php.ini
編集
[PHP] output_buffering = Off [mbstring] mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none;
/opt/apache/conf/httpd に
AddType application/x-httpd-php .php .phtml
という行を付け加える.
また DirectoryIndex 行に index.php を加える.
ex.)
DirectoryIndex index.html index.html.var index.php
# pear install Log
# pear install Mail_Mime
# pear install Net_Socket Package 'Net_Socket' already installed, skipping
/* snip Horde のモジュール? kronolith のときにいる *Date_Calc *HTML_Common *HTML_Select */
# cd /opt/apache/htdocs # gzcat horde-2.2.1-jp-0.2.tgz | tar xvf - # mv horde-2.2.1-jp-0.2 horde # chown -R root:sys horde
# vi +23 horde/scripts/db/mysql_create.sql
で 23行目のパスワードを変更(********)
# mysql --user=root -p < horde/scripts/db/mysql_create.sql
# cd horde/config/ # for foo in *.dist; do cp $foo `basename $foo .dist`; done
(上記作業は新規の場合.J 版の場合はこの作業はしてあるが, 既存のものに上書きすると,現行設定が消えてしまうので注意. バージョンアップの場合は,J 版とダウンロード版で違いはないので, 現行設定をバックアップしておいて,それで上書きする)
# vi horde.php $conf['log']['type'] = 'syslog'; // 116行目 $conf['log']['name'] = LOG_LOCAL1; // 123行目 $conf['prefs']['driver'] = 'sql'; //148行目 $conf['prefs']['params']['phptype'] = 'mysql'; //157-162行目 $conf['prefs']['params']['hostspec'] = 'localhost'; $conf['prefs']['params']['username'] = 'horde'; $conf['prefs']['params']['password'] = 'r*******n'; //<--パスワード $conf['prefs']['params']['database'] = 'horde'; $conf['prefs']['params']['table'] = 'horde_prefs'; $conf['mailer']['type'] = 'smtp'; //204 行目 //$conf['mailer']['params'] = array(); //$conf['mailer']['params'] = array('sendmail_path' => '/usr/lib/sendmail'); $conf['mailer']['params'] = array('host' => 'mailhost.******.jp'); // 211-213 行目
# chown apache:apache horde.php # chmod 400 horde.php
http://localhost/horde/test.php にアクセスしてテスト.
テスト後は
# chmod 400 をしておく
# cd /opt/apache/htdocs/horde # gzcat imp-3.2.1-jp-0.1.tgz | tar xvf - # mv imp-3.2.1-jp-0.1 imp # chown -R root:sys imp
# vi +23 horde/config/registry.php $this->registry['auth']['login'] = 'imp'; //コメントを外す $this->registry['auth']['logout'] = 'imp';
# vi +109 horde/config/registry.php 'status' => 'active'
# vi +83 horde/config/registry.php 'name' => _("AAAA WebMail System"), /* TNK */
この後,horde/imp/locale/ja_JP/LC_MESSAGES/imp.mo を入れ換える.
(imp.mo は horde/imp/po/ja_JP.po から作成. 一旦,同じディレクトリ階層を作って ja_JP.po を編集,その後 imp/po で make し, ../locale/ja_JP/LC_MESSAGES/imp.mo にできたファイルを コピー. ちなみに,imp.mo の作成作業は Linux でやった方が良い. )
# cd horde/imp/config/ # for foo in *.dist; do cp $foo `basename $foo .dist`; done
(上記作業は新規の場合.J 版の場合はこの作業はしてあるが, 既存のものに上書きすると,現行設定が消えてしまうので注意.
conf.php はマージする必要があり.prefs.php は微妙.
# vi conf.php $conf['menu']['apps'] = array('turba'); $conf['msg']['append_trailer'] = false;
# vi server.php $servers['imap'] = array( 'name' => 'IMAP Server', 'server' => 'mailhost.*******.jp', 'protocol' => 'imap/notls', 'port' => 143, 'folders' => 'mail/', 'namespace' => '', 'maildomain' => 'up.*****.jp', 'smtphost' => 'mailhost.******.jp', 'realm' => 'up.*****.jp', 'preferred' => '' );
# vi prefs.php // should we move messages to a trash folder instead of just marking // them as deleted? // a value of 0 = no, 1 = yes $_prefs['use_trash'] = array( 'value' => 1, //<--- 0 を 1に変える 'locked' => false, 'shared' => false, 'type' => 'checkbox', 'desc' => _("When deleting messages, move them to your Trash folder insteadof marking them as deleted?") );
$_prefs['add_source'] = array( // 'value' => '', 'value' => 'localsql', 'locked' => false, 'shared' => false, 'type' => 'implicit' );
http://localhost/horde/imp/test.php にアクセスしてテスト.
テスト後は
chmod 400
をしておく
# cd horde # gzcat turba-1.2-jp-0.2.tgz | tar xvf - # mv turba-1.2-jp-0.2/ turba # chown -R root:sys turba
# /opt/mysql/bin/mysql --user=root -p horde \ < turba/scripts/drivers/turba.sql
# cd turba/config/ # for foo in *.dist; do cp $foo `basename $foo .dist`; done
(上記作業は新規の場合.J 版の場合はこの作業はしてあるが, 既存のものに上書きすると,現行設定が消えてしまうので注意.
sources.php はマージする必要があり.prefs.php は微妙.
# vi conf.php $conf['menu']['apps'] = array('imp'); // 31行目
# vi +140 sources.php $cfgSources['localsql'] = array( 'title' => 'My Addressbook', 'type' => 'sql', 'params' => array( 'phptype' => 'mysql', 'hostspec' => 'localhost', 'username' => 'horde', 'password' => 'r******n', 'database' => 'horde', 'table' => 'turba_objects' ),
また,$cfgSources['localsql'] と $cfgSources['prefs'] 以外の ブロックはコメントアウトしておく.
# chown apache sources.php # chmod 400 sources.php
# vi +118 horde/config/registry.php 'name' => _("Address Book"), 'allow_guests' => false, 'status' => 'active' //<-- この行
/root/acct-log.sh の最後に
# # horde.log の処理 if [ "`/usr/bin/date +%u`" = "1" ]; then cp /var/adm/horde.log ${ACCTDIR}/horde.log.${DATE} cp /dev/null /var/adm/horde.log fi #
/etc/syslog.confの最後に
local1.info /var/adm/horde.log
とりあえず
horde/imp/templates/login
の login.inc で
# diff login.inc login.inc.org 63c63 < <?php printf(_("Welcome to %s"), "WebMail") ?> --- > <?php printf(_("Welcome to %s"), ($registry->getMethod('auth/login') == 'imp') ? $registry->getParam('name', 'horde') : $registry->getParam('name')) ?>
といった強引な patch を作ったがどうなのか.
horde/imp/config/motd.php に以下のような内容を追加することで, horde/imp/config/motd.txt の内容をログイン画面に表示させることができる. (ただし,html のタグは食われるので注意)
<!-- It will be included below the log-in form on the login page. --> <?php echo '<div align="center" class="light">'; $trailer = implode(@file(IMP_BASE . '/config/motd.txt'), ''); echo "$trailer"; echo _("Tiger Tiger Gillets Tiger!</div>"); ?>
また,たぶん horde/config/motd.php に同じような修正を加えると, ログイン後の最初の Horde の画面にメッセージが表示される.
% /opt/mysql/bin/mysql -u horde -p******* -e "CREATE TABLE horde_fromaddr \ (user char(255) NOT NULL, fromaddr char(255) NOT NULL, \ fullname char(255) DEFAULT '')" horde
bash-2.03$ diff preference2-tnk.pl preference2.pl 1c1 < #!/usr/bin/perl -w --- > #!/usr/local/bin/perl -w 21c21 < my $mysql = "/opt/mysql/bin/mysql"; --- > my $mysql = "/usr/local/bin/mysql"; 23c23 < my $password = "********"; --- > my $password = "XXXXXXXX"; 28d27 < my $domain = "******.jp"; 59c58 < system("$mysql -u $user -p$password -e \"delete from $pref_table where pref_uid='$username\@$domain'\" $db"); --- > system("$mysql -u $user -p$password -e \"delete from $pref_table where pref_uid='$username\@localhost'\" $db"); 61c60 < system("$mysql -u $user -p$password -e \"delete from $addr_table where owner_id='$username\@$domain'\" $db"); --- > system("$mysql -u $user -p$password -e \"delete from $addr_table where owner_id='$username\@localhost'\" $db");
ZendOptimizer-2.5.3-sunos5.6-sparc.tar.gz を展開して,
./install
/opt/Zend/bin/zendenc --recursive --ignore config --no-header horde horde.n
このあと
# /opt/apache/htdocs/horde/config # /opt/apache/htdocs/horde/imp/config # /opt/apache/htdocs/horde/turba/config
内のファイルをこのディレクトリ構成でコピーしておく.