Windowsで作っていたPHP5 + SQLiteアプリをUbuntuに移植。

パソコン、シャットダウンしないと、簿記の勉強に集中できないので、UbuntuいれたサブのAcer Aspire One D-150にPHP + SQLiteアプリを移した。

必要なモジュールのインストール

cURLでちょっとしたスクレイピングするアプリなので、curlも入れる。

sudo apt-get install sqlite3 php5-sqlite php5-curl

設定ファイルちゃんと書かれているか確認して、Apacheリスタート。

ls /etc/php5/apache2/conf.d/
sudo apache2ctl restart

スクリプトファイル側の設定

Permissionは、666なら動くと思う。

chmod -R +w /var/www/data/xxxx.sqlite3

SQLiteは、DSNがファイルパスだから、Windowsから書き換えなくてはいけない。

vi /var/www/application/xxx.php

<?php
// before 
// $Logs = new Logs(new PDO('sqlite:D:\Web\xampp\htdocs\data\xxxx.sqlite3'));
// after 
$Logs = new Logs(new PDO('sqlite:/var/www/data/xxxx.sqlite3'));
?>

アプリ起動。エラーがでていないか確認

sudo tail -F /var/log/apache2/error.log

つまったところ。

PDOのドライバをインストールし忘れていた!

sudo tail -F /var/log/apache2/error.log

PHP Fatal error: Uncaught exception 'PDOException' with message
'could not find driver' in /var/www/x/y.php:19
Stack trace:
#0 /var/www/x/y.php(19): PDO->__construct('sqlite3:/var/ww...')
#1 {main} thrown in /var/www/x/y.php on line 19

sudo apt-get install php5-sqlite

このコマンドでOK!

SQLiteファイルのパーミッション・・・!

sudo tail -F /var/log/apache2/error.log

PHP Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE[HY000] [14] unable to open database file' in /var/www/x/y.php:18
Stack trace:
#0 /var/www/xxx/xxxx.php(18): PDO->__construct('sqlite:/var/www...')
#1 {main} thrown in /var/www/x/y.php on line 18

chmod -R +w /var/www/data/xxxx.sqlite3

このコマンドでOK!