XAMPP for Linux 1.8.0 の注意点

目次
  1. (解決) phpMyAdminを開くと"Error 403"が
  2. (未解決) デフォルトではSQLite2を使えない
  3. 結論

(解決) phpMyAdminを開くと"Error 403"が

http://localhost/phpmyadmin/


こんな画面、見たことありません ( ゚д゚)ポカーン
解決策は下記のページの最下段に書いてあります。


【参考】
Apache Friends Support Forum • View topic - New XAMPP security concept, from localhost? [Solved]
http://www.apachefriends.org/f/viewtopic.php?f=17&t=50970



(/opt/lampp/etc/extra/httpd-xampp.conf)
<Directory "/opt/lampp/phpmyadmin">
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
</Directory>
これを下記のように書き換えます。

<Directory "/opt/lampp/phpmyadmin">
AllowOverride AuthConfig Limit
Require all granted
</Directory>
あとはXAMPPを再起動すればOKです。

$ sudo /opt/lampp/lampp restart


(未解決) デフォルトではSQLite2を使えない

状況
SQLite2用のPHP関数を使っているページを開くと、下記のようなエラーが。

Fatal error: Call to undefined function sqlite_open() in ...
SQLite3は問題なく動きます。


リリースノートを確認
v1.8.0のリリースノートでは、SQLite2、3どちらも使えると書いています。
【参考】
http://www.apachefriends.org/LAMPP-RELEASENOTES.txt

[2012-07-10] XAMPP for Linux 1.8.0

This version of XAMPP includes:
...
- SQLite 2.8.17 (for PHP4 + PHP5)
- SQLite 3.6.16 (for PHP5 PDO SQLite)


[2011-09-19] XAMPP for Linux 1.7.7

This version of XAMPP includes:
...
- SQLite 2.8.17 (for PHP4 + PHP5)
- SQLite 3.6.16 (for PHP5 PDO SQLite)


"phpinfo()"で確認
バージョン2関連の記述がありません…!


私が借りているサーバ(usamimi.info)のphpinfo()。
SQLite2、3どちらにも対応しています。


XAMPP 1.8.0のphpinfo()。
SQLite3の記述しかありません ( ゚д゚)ポカーン


モジュールを確認

(v1.7.7)
$ /opt/lampp/bin/php -m
...
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
...
SQLite
sqlite3
...

(v1.8.0)
$ /opt/lampp/bin/php -m
...
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
...
SPL
sqlite3
standard

"SQLite"がない!!


PDOで実験
PDOは使えるようですし、PDO経由で接続してみました。

$db = new PDO('sqlite2:foo.sqlite2');
$sql = "SELECT * FROM tbl";
$result = $conn->query($sql);
$rows = $result->fetchall();
foreach ($rows as $row) {
echo $row['name'];
}
だめでしたorz

Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in ...
SQLite3ならOKなんですが… (-_-;)

$db = new PDO('sqlite:bar.sqlite3');


結論

MySQLは"httpd-xampp.conf"をほんの少し修正するだけでOKです。
SQLite3は何も問題ありません。
SQLite2はこの際3へ移行するか、2のまま使い続ける必要があるのなら、バグ修正されるまでv1.7.7を使うことをお勧めします。