ストレージサーバにミドルウェアのセットアップします。
ここでは基本となる
最初にhttpサーバを設定します。
ディレクトリ構成は以下のようにします。
以下を実行します。
以下を実行します。
またファイルの最後に
以下を実行します。
認証のためのldapサーバを準備します。
以下を実行します。
また先頭に
以下を実行します。
これからldapの管理はこちらから行うことにします。
entry は領域を organizationalUnit で、
その領域にアクセスできるユーザを organizationalPerson で作ります。
なお、organizationalUnit の ou 属性が領域名、
organizationalPerson の cn 属性がユーザIDで、
sn 属性にフルネームをローマ字で、
userPassword 属性にパスワードをハッシュ値で入れておきます。
今度はPHPエンジンをインストールしましょう。
以下を実行します。
以下を実行します。
ldapについては後で修正した部分があり、
今思えばミスではあるが、
実はユーザ管理に使っている"organizationalPerson"要素には"mail"属性が含まれていませんでした。
今更"inetOrgPerson"に変えるのも面倒なので、
"organizationalPerson"に無理やり"mail"を追加しています。
まず、
元の部分はコメントアウト(各行の先頭に'#'を追加)します。
最後に
MySQLデータベースサーバをインストールします。
以下を実行します。
最後にtftpサーバと、
その公開ディレクトリにDAV経由でアクセスできるようにします。
以下を実行します。
以下を実行します。
ここでは基本となる
- httpサーバ
- ldapサーバ
- PHPエンジン
- MySQLデータベースサーバ
- tftpサーバ
最初にhttpサーバを設定します。
ディレクトリ構成は以下のようにします。
- バージョン管理のdav
- 公共用のpub
- 一次作業用のtmp
- tftpサーバで公開するtftp
- 特定ユーザのみログインできるproject1
以下を実行します。
# USE="ldap" emerge -pv www-servers/apache
# USE="ldap" emerge www-servers/apache
# echo "ServerName 10.19.59.191" >> /etc/apache2/httpd.conf
# vi /etc/conf.d/apache2で
APACHE2_OPTS="-D DEFAULT_VHOST"を
APACHE2_OPTS="-D SSL -D SSL_DEFAULT_VHOST -D DAV -D DAV_FS -D LDAP -D AUTH_LDAP"に変更します。
以下を実行します。
# chmod 777 /mnt
# chmod 777 /mnt/storage
# cd /mnt/storage
# mkdir dav
# chown apache:apache dav
# chmod 777 dav
# cd dav
# mkdir pub
# chown apache:apache pub
# chmod 777 pub
# mkdir tmp
# chown apache:apache tmp
# chmod 777 tmp
# mkdir project1
# chown apache:apache project1
# chmod 777 project1
# cd /mnt/storage/dav
# mkdir tftp
# chown apache:apache tftp
# chmod 777 tftp
# vi /etc/apache2/httpd.confで以下のように修正。
<Directory />を
Options FollowSymLinks
AllowOverride None
AllowOverride All
</Directory>
<Directory />に変更します。
Options FollowSymLinks
# AllowOverride None
AllowOverride All
</Directory>
またファイルの最後に
Alias /dav/pub "/mnt/storage/dav/pub"を追加します。
Alias /web/pub "/mnt/storage/dav/pub"
Alias /dav/tmp "/mnt/storage/dav/tmp"
Alias /web/tmp "/mnt/storage/dav/tmp"
Alias /dav/project1 "/mnt/storage/dav/project1"
Alias /web/project1 "/mnt/storage/dav/project1"
Alias /dav/tftp "/mnt/storage/dav/tftp"
Alias /web/tftp "/mnt/storage/dav/tftp"
<Location /dav/pub>
DAV on
SSLRequireSSL
</Location>
<Location /web/pub>
Options Indexes
SSLRequireSSL
</Location>
<Location /dav/tmp>
DAV on
SSLRequireSSL
</Location>
<Location /web/tmp>
Options Indexes
SSLRequireSSL
</Location>
<Location /dav/project1>
DAV on
SSLRequireSSL
AuthType Basic
AuthName "hoge-project1"
AuthLDAPURL ldap://localhost/ou=project1,o=hoge,c=com?cn
require valid-user
</Location>
<Location /web/project1>
Options Indexes
SSLRequireSSL
AuthType Basic
AuthName "hoge-project1"
AuthLDAPURL ldap://localhost/ou=project1,o=hoge,c=com?cn
require valid-user
</Location>
<Location /dav/tftp>
DAV on
SSLRequireSSL
</Location>
<Location /web/tftp>
Options Indexes
SSLRequireSSL
</Location>
以下を実行します。
# rc-update add apache2 default
# /etc/init.d/apache2 start
認証のためのldapサーバを準備します。
以下を実行します。
# cd /etc/openldap
# slappasswd
# vi slapd.confで以下のように設定します。
database bdbここで rootpw の値は
suffix "o=hoge,c=com"
rootdn "cn=root,o=hoge,c=com"
rootpw {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# slappasswd -s <パスワード>の結果です。
また先頭に
allow bind_v2を追加します。
以下を実行します。
# echo 'dn: o=hoge,c=com' > /tmp/hoge.ldif続いてPCでここからBrowser282b2.zipをダウンロードしてlbe.jarを実行します。
# echo 'objectClass: organization' >> /tmp/hoge.ldif
# echo 'o: hoge' >> /tmp/hoge.ldif
# ldapadd -x -h localhost -D "cn=root,o=hoge,c=com" -w <パスワード> -f /tmp/hoge.ldif
# rm /tmp/hoge.ldif
# cd /var/lib/
# mv openldap-data /mnt/storage/
# ln -s /mnt/storage/openldap-data openldap-data
# rc-update add slapd default
# /etc/init.d/slapd start
これからldapの管理はこちらから行うことにします。
entry は領域を organizationalUnit で、
その領域にアクセスできるユーザを organizationalPerson で作ります。
なお、organizationalUnit の ou 属性が領域名、
organizationalPerson の cn 属性がユーザIDで、
sn 属性にフルネームをローマ字で、
userPassword 属性にパスワードをハッシュ値で入れておきます。
今度はPHPエンジンをインストールしましょう。
以下を実行します。
# USE="cli apache2 mysql gd jpeg png gif ldap" emerge dev-lang/php
# vi /etc/conf.d/apache2でAPACHE2_OPTS 変数に"-D PHP5"を加えます。
# vi /etc/apache2/httpd.confで
DirectoryIndex index.html index.html.varを
DirectoryIndex index.html index.html.var index.phpに変更します。
以下を実行します。
# /etc/init.d/apache2 restart
# echo '' > /var/www/localhost/htdocs/phpinfo.php
# emerge dev-db/mysql
# rc-update add mysql default
# /usr/bin/mysql_install_db
# /etc/init.d/mysql start
ldapについては後で修正した部分があり、
今思えばミスではあるが、
実はユーザ管理に使っている"organizationalPerson"要素には"mail"属性が含まれていませんでした。
今更"inetOrgPerson"に変えるのも面倒なので、
"organizationalPerson"に無理やり"mail"を追加しています。
まず、
# vi core.schemaでファイルを開き、"organizationalPerson"の定義部分
objectclass ( 2.5.6.7 NAME 'organizationalPerson'を探します。ここの最後から2番目の行の最後に" $ mail"を追加し、
DESC 'RFC2256: an organizational person'
SUP person STRUCTURAL
MAY ( title $ x121Address $ registeredAddress $ destinationIndicator $
preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $
telephoneNumber $ internationaliSDNNumber $
facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $
postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l
) )
postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l $ mailとします。また、最後のほうにある
attributetype ( 0.9.2342.19200300.100.1.3を先の"organizationalPerson"の定義部分よりも前に移し、
NAME ( 'mail' 'rfc822Mailbox' )
DESC 'RFC1274: RFC822 Mailbox'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
元の部分はコメントアウト(各行の先頭に'#'を追加)します。
最後に
# /etc/init.d/slapd restartで、ldapサーバを再起動します。
MySQLデータベースサーバをインストールします。
以下を実行します。
# /etc/init.d/mysql stop
# cd /var/lib
# mv mysql /mnt/storage/
# ln -s /mnt/storage/mysql mysql
# /etc/init.d/mysql start
最後にtftpサーバと、
その公開ディレクトリにDAV経由でアクセスできるようにします。
以下を実行します。
# cd /etc/xinetd.dファイル"/etc/xinetd.d/tftp"を編集して以下の内容とします。
# touch tftp
# chmod 644 tftp
service tftpファイル"/etc/xinetd.conf"の
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = apache
server = /usr/sbin/in.tftpd
server_args = /mnt/storage/dav/tftp
}
only_from = localhostの行をコメントアウト(先頭に'#'を追加)します。
以下を実行します。
# /etc/init.d/xinetd start
# rc-update add xinetd default
0 件のコメント:
コメントを投稿