質問: $this->_config['mask']; if (!$mask) { return file_put_contents($pathname, $output, FILE_APPEND); } ``` 試したこと ----- 他のサイトでも質問したところ回答をいただくことができたので下記を実行しましたが、 再度アクセスしてもエラー状況が全く一緒のままでした。 1 config/app.php 内の Datasources で、quoteIdentifiers に true を設定 2 `chmod 777 /vagrant/test2/logs` でlogsディレクトリへの書き込みを許可 2についてですが、実行前後で`ls -l`でパーミッションを確認したところいずれも以下のように表示されたので、設定が上手く行ってないのかなと考えています。 ``` drwxr-xr-x 1 vagrant vagrant 96 12月 24 17:43 logs ``` 質問内容 ---- 1「発生している問題・メッセージ」欄で記載しているエラーの解消方法を教えていただきたいです。 2パーミッションの設定方法について正しい方法を教えていただきたいです。 何卒よろしくお願いいたします。
回答: `SQLSTATE[HY000] [14] unable to open database file` は SQLite のエラーかなと思います。 DebugKitというプラグインが `APP/tmp/` (APP=アプリケーションディレクトリ) にSQLiteのデータベースを作成するのですが、tmpディレクトリの書き込み権限がない場合エラーとなりますので、こちらもパーミッションの問題でしょう。 パーミッションについてですが、Vagrantではホストからマウントする共有ディレクトリのパーミッションは `Vagrantfile` で設定します。 Vagrantfile ファイル内に以下のような行があるか確認してください。 ``` config.vm.synced_folder ".", "/vagrant", owner: 'vagrant', group: 'vagrant', mount_options: ['dmode=777', 'fmode=666'] ``` mount_options の dmodeがディレクトリのパーミッション、fmodeがファイルのパーミッションとなります。 参考: Basic Usage - Synced Folders - Vagrant by HashiCorp