リアルタイムの気象データにアクセスできるリーフレット マップ サイトに取り組んでいます。セキュリティ上の問題から SUID を使用する必要がないように、/var/www から画像データへのシンボリック リンクを使用しています。これらは単純な png ファイルであり、これは機能しています。
次に、画像データの上にマウスを置いた位置に基づいてリアルタイムのデータを取得したいと考えました。このために、実際の値を含む SQLite3 データベースを作成しました。最初に、テストとして、このデータベースを手動でサイト ルートに配置しましたが、すべてが完全に機能しました。残念ながら、そのデータベースをその場所に置くことはできません。次に、このデータベースを使用して、画像データ (機能した) に使用したのとまったく同じ手順を実行しました。
プロセスは次のとおりです。
私のサイトのルートで:
ln -sf /path/to/db/ db
chmod 777 /path/to/db/data.db
ファイルはクエリのために単純な PHP プログラムによって読み取られます。
<?php
$lat = floatval($_GET['lat']);
$lon = floatval($_GET['lon']);
$db = new SQLite3('db/sst.db'); # line 6
$results = $db->query("SELECT sst FROM current ORDER BY (($lat-lat)*($lat-lat) + ($lon-lon)*($lon-lon)) ASC LIMIT 1");
while ($row = $results->fetchArray()) {
echo $row['sst'];
}
?>
残念ながら、ブラウザ コンソールに次のエラーが表示されます。
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
/var/log/apache2/error.log ファイルを検査すると、次のエラーが表示されます。
PHP Fatal error: Uncaught exception 'Exception' with message 'Unable to open database:
unable to open database file' in /var/www/Mapea/sst.php:6\nStack trace:\n#0
/var/www/Mapea/sst.php(6): SQLite3->__construct('db/sst.db')\n#1 {main}\n thrown in
/var/www/Mapea/sst.php on line 6