EasysoftのMicrosoftAccessODBCドライバーを使用すると、LinuxユーザーとWindowsユーザーの両方がそのデータベースにアクセスする必要がある環境でMDB/ACCDB形式のデータベースを操作できます。
たとえば、Linuxサーバーに基づくイントラネットWebサイトでWindowsベースのAccessデータベースを公開したい場合があります。これは、このブログで取り上げた例です。
これを行うには:
- Access ODBCドライバーをダウンロードし、LinuxWebサーバーマシンにインストールしてライセンスを取得します。
- odbc.iniのACCESS_SAMPLEデータソースを変更して、Windows共有のデータベースに接続するようにします。これを行うには:
[ACCESS_SAMPLE] Driver=Easysoft ODBC-ACCESS # Path to the database on Linux machine mdbfile=/home/samba/ms_access/Northwind.accdb # The SMB URL for the database file. Use this syntax for the SMB URL: # smb://windows_host/share/path/filename smbpath=smb://windows_machine/accounts_share/ms_access/Northwind.accdb # The path to the libsmbclient library on the Access ODBC driver machine. smblib=/usr/lib/libsmbclient.so smbuser=my_windows_user smbauth=my_winodws_password readonly=yes exclusive=no ignore_rel=no
- uouが
isql
で接続できることをテストします 。例:cd /usr/local/easysoft/unixODBC/bin ./isql.sh -v ACCESS_SAMPLE
- PHP PDO-ODBCパッケージをインストールし、Accessデータベースに接続するWebサーバーの下にPHPページを作成します。例:
<?php $con = odbc_connect("odbc:ACCESS_SAMPLE", "", ""); $err = odbc_errormsg(); if (strlen($err) <> 0) { echo odbc_errormsg(); } else { $rs2 = odbc_exec($con, "select * from Suppliers"); odbc_result_all($rs2); odbc_close($con); } ?>
注 Webサーバーが実行されているユーザーが実行されるように、アクセス許可を設定する必要があります。 www-dataは、Accessデータベースファイルへの書き込みアクセス権を持っています。