それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

phpのSqliteでの「謎」のエラー unable open database

PHPSQLiteには謎のエラーがあって、

unable to open database file

になります。

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 14 unable to open database file

と出てきます。しかし・・・

[mi@www-mini db]$ ls -alt
合計 92
drwxrwxrwx  9 root root  4096  223 19:58 ..
drwxrwxr-x  2   mi   mi  4096  221 22:57 . #←これが原因
-rwxrwxrwx  1   mi   mi 36864  221 22:57 development.sqlite3
-rwxrwxrwx  1   mi   mi 29696  211 00:57 development.sqlite3.default

ファイルは777なんですね。でも動かない。

ディレクトリにも書き込み権限が必要

こっちは動く。
ファイルだけでなく、ディレクトリにも書き込み権限が必要。

[mi@www-mini db]$ ls -alt
合計 92
drwxrwxrwx  9 root root  4096  223 19:58 .. 
drwxrwxrwx  2  mi   mi  4096  221 22:57 .#←このパーミッションの注目
-rwxrwxrwx  1   mi   mi 36864  221 22:57 development.sqlite3
-rwxrwxrwx  1   mi   mi 29696  211 00:57 development.sqlite3.default

”. ”のパーミッションに注目! "drwxrwxr-x" → "drwxrwxrwx"だと書き込める。

あれれ、ディレクトリって、"rwx"の"x"さえアレばいいんだよね。って思ってたら、ディレクトリに書き込み権限つけたら治った。
まさか。まさかですよね。これはバグ?なのかな?