内容が古くなっている可能性がありますのでご注意下さい。
Virtuoso編の第3回では、マイクロソフトのクラウドプラットフォームAzureに環境を構築します。
はじめに、CentOSの仮想マシンを作成します。
エンドポイントは、
- リモートで作業するためのSSH(ポート22)
- SPARQLエンドポイントを公開するためのHTTP(ポート80)
- Virtuoso管理画面用のポート(ポート8890)
を設定します。
ここからはSSHで作業します。
root権限の必要な作業をする際に毎回sudoするのは面倒ですので、はじめにrootのパスワードを設定してsuできるようにします。
$ sudo passwd root
このままでは、SSHでrootにログインできますので、/etc/ssh/sshd_configファイルの
#PermitRootLogin yes
となっている箇所を
PermitRootLogin no
に変更し、rootのログインを不許可にして
# service sshd restart
sshdを再起動します。
azureのCentOSにはVirtuosoのビルドに必要な開発環境が入っていないため、yumでインストールします。
# yum install gcc gmake autoconf automake libtool flex bison gperf gawk m4 make openssl-devel readline-devel git
次に、GitHubからソースコードを入手します。
$ git clone git://github.com/openlink/virtuoso-opensource.git
あとは、お決まりの手順となります。
$ cd virtuoso-opensource $ ./autogen.sh $ ./configure --prefix=/usr/local/ --with-readline $ make # make install
ビルドが終了したら、以下のコマンドでVirtuosoを起動します。
# virtuoso-t +configfile /usr/local/var/lib/virtuoso/db/virtuoso.ini
Virtuosoを起動したら、ブラウザでポート8890に接続します。
左上の「Conductor」のリンクをクリックすると、アカウントとパスワードの入力を求められます。デフォルトでdbaとdavの2つのアカウントが用意されており、パスワードはアカウント名と同じです。
ログインしたら、[System Admin][User Accounts]タブ画面でdbaとdavのパスワードを変更し、不要なアカウントは無効にしておきます。
最後に、SPARQLエンドポイント公開の設定をします。
このままでは、SPARQLエンドポイントのURLは
http://サーバ名:8890/sparql
ですので、apacheのリバースプロキシを使用して
http://サーバ名/sparql
で接続できるようにします。
まず、apacheをインストールし、自動起動を有効にします。
# yum install httpd # chkconfig httpd on
次に、SELinuxを無効化します。
# setenforce 0
さらに/etc/selinux/configファイルの
SELINUX=enforcing
となっている箇所を
SELINUX=disabled
と変更し、再起動後もSELinuxが無効になるようにしておきます。
最後に、mod_proxyを設定します。
/etc/httpd/conf.d/mod_proxy.confファイルを開き、以下の記述をします。
ProxyPass /sparql http://localhost:8890/sparql retry=5 ProxyPassReverse /sparql http://localhost:8890/sparql
apacheを起動したら完了です。
# service httpd start
以上で、
http://サーバ名/sparql
でSPARQLエンドポイントに接続できるようになりました。