また,Cryptographic Framework については, Sun Bingadmin
http://www.sun.com/bigadmin/motd/042006.html
から crypto framework で検索して出てくる文書 「The Solaris Cryptographic Framework」(pdf)を参照.
http://httpd.apache.org/download.cgi より
http://webdav.todo.gr.jp/download/ より
$ cd httpd-2.0.59 $ 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 ----
$ CFLAGS='-DSSL_EXPERIMENTAL -DSSL_ENGINE -xO4' \ (-xO4 はもしかしたら gcc じゃ NG?) > ./configure --prefix=/opt/apache --enable-so \ > --enable-mods-shared=all \ > --enable-ssl --with-mpm=prefork --with-z=/usr \ > --enable-rule=SSL_EXPERIMENTAL \ > --with-ssl=/usr/sfw
その他,J 環境では同じく build/config_vars.mk に対して
AP_LIBS = /home/nullpyon/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
# groupadd -g 80 apache # useradd -d /dev/null -u 80 -g apache -s /bin/false apache
SSLCryptoDevice pkcs11 SSLRandomSeed startup file:/dev/urandom 512 SSLRandomSeed connect file:/dev/urandom 512
という行を加えておく. あと,SSLCipherSuite の設定を次のようにするべし.
SSLCipherSuite ALL:!ADH:!EXPORT56:-AES256-SHA:-DHE-RSA-AES256-SHA: -DHE-DSS-AES256-SHA:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL (実際は 1行)
既にOS標準の apache が SMF で管理されているので,これを修正する. (通常は修正しなくても大丈夫なはずだが...
# vi /var/svc/manifest/network/http-apache2.xml # svccfg import /var/svc/manifest/network/http-apache2.xml
# vi /lib/svc/method/http-apache2 (以下の修正を加える) --- --- /lib/svc/method/http-apache2.OSORG Sat Jan 8 17:51:58 2005 +++ /lib/svc/method/http-apache2 Fri Jul 29 18:22:03 2005 @@ -8,9 +8,9 @@ . /lib/svc/share/smf_include.sh -APACHE_HOME=/usr/apache2 -CONF_FILE=/etc/apache2/httpd.conf -PIDFILE=/var/run/apache2/httpd.pid +APACHE_HOME=/usr/local/apache2 +CONF_FILE=/usr/local/apache2/conf/httpd.conf +PIDFILE=/usr/local/apache2/logs/httpd.pid [ ! -f ${CONF_FILE} ] && exit $SMF_EXIT_ERR_CONFIG @@ -17,7 +17,6 @@ case "$1" in start) /bin/rm -f ${PIDFILE} - /bin/mkdir -p /var/run/apache2 ssl=`svcprop -p httpd/ssl svc:/network/http:apache2` if [ "$ssl" = false ]; then cmd="start" ---
SSLを利用する場合には,以下のようにする.
# svccfg -s apache2 setprop httpd/ssl = true
(<-これ,再起動しないと反映しないんだけど,何か方法があるのか?)
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 src/osdep/unix/Makefile
で
SSLDIR=/usr/sfw SSLCERTS=/etc/sfw/openssl/certs SSLKEYS=/etc/sfw/openssl/private SSLINCLUDE=$(SSLDIR)/include SSLLIB=$(SSLDIR)/lib
このまま make gso をするとエラーが出るので, 以下ファイルの scandir の部分を scandirtnk に変更する.
% 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.14.6 # % ./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
まず,以下の作業をしてから.
$ cd php-src/pear/packages $ wget http://pear.php.net/get/Archive_Tar-1.3.1.tar $ wget http://pear.php.net/get/Console_Getopt-1.2.tar $ wget http://pear.php.net/get/HTML_Template_IT-1.1.tar
$ ./configure --prefix=/opt/local --with-apxs2=/opt/apache/bin/apxs \ --enable-mbstring --enable-mbregex \ --with-openssl=/usr/sfw \ --with-imap=/opt/local --with-imap-ssl=/opt/local \ --with-zlib \ --with-gettext=/opt/local \ --with-xml \ --with-mcrypt=/opt/local \ --with-mysql=/usr/sfw $ make # make install # 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 --alldeps Mail
# pear install Log
# pear install Mail_Mime
# pear install Net_Socket Package 'Net_Socket' already installed, skipping
ZendOptimizer-3.0.1-sunos5.8-sparc.tar.gz インストール場所を
/opt/Zend
とする.
上記で作成した WWW サーバに LDAP 関連モジュールを追加する.
Apache を作成したときのソースツリーを利用して
$ mkdir build/apx_mod $ cd build/httpd-2.0.59/modules/experimental $ cp *ldap* ../../../build/apx_mod $ cd ../../../build/apx_mod $ /opt/apache/bin/apxs -c mod_auth_ldap.c
でできるかと思ったが,apr-util が「LDAP 対応でないとだめ」という エラーが出て N.G.
apr, apr-util だけ作りなおすってこともできそうなんだけど, なんかちょっと不安なので, インストールしなおした方がいいかなと思う.
なので,
PATH=/opt/SUNWspro/bin:/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/local/bin:/opt/local/bin:/usr/ccs/bin:. export PATH LD_LIBRARY_PATH=/opt/local/lib:/usr/local/lib:/usr/sfw/lib LD_RUN_PATH=${LD_LIBRARY_PATH} export LD_LIBRARY_PATH LD_RUN_PATH $ cd build/httpd-2.0.59 $ make distclean $ CFLAGS='-DSSL_EXPERIMENTAL -DSSL_ENGINE' \ ./configure --prefix=/opt/apache --enable-so \ --enable-mods-shared=all \ --enable-ssl --with-mpm=prefork --with-z=/usr \ --enable-rule=SSL_EXPERIMENTAL \ --with-ssl=/usr/sfw \ --with-ldap --enable-ldap --enable-auth-ldap
このまま make したのでは,LDAP_OPT_X_TLS_HARD が定義されていないだの たくさんのエラーが出る.
どうも,LDAP の SDK の種類を自動的に見分けられないようで httpd-2.0.59/srclib/apr-util/include/apr_ldap.h に次のパッチをあてる.
*** apr_ldap.h.org Mon Dec 10 15:25:40 2007 --- apr_ldap.h Mon Dec 10 15:26:48 2007 *************** *** 78,83 **** --- 78,86 ---- #endif /* APR_NOT_READY_YET */ + #define APR_HAS_NETSCAPE_LDAPSDK 1 + #define APR_HAS_LDAP_SSL 1 + /* If no APR_HAS_xxx_LDAPSDK is defined error out * Define if the SDK supports the ldap_url_parse function */
で
$ make # make install
インストールが終われば,httpd.conf に次の 2行を追加して再起動.
LoadModule ldap_module modules/mod_ldap.so LoadModule auth_ldap_module modules/mod_auth_ldap.so
その他,マニュアルを参考にディレクティブを書いていく必要がある.
一応テストで使った .htaccess は次の通り.
AuthType Basic AuthName "LDAP Auth Test" AuthLDAPURL ldap://192.168.1.1:389/ou=People,dc=ldap,dc=example,dc=jp?uid require valid-user