php - Laravel + SQLite = SQLSTATE[HY000] 一般错误 : 8 attempt to write a readonly database

标签 php linux laravel sqlite ubuntu

我正在尝试删除一个 db.sqlite 文件,重新创建它,然后使用相同的方法将一些信息插入到这个数据库中。这是我正在使用的方法:

public function destroy()
{
    // Store all contents and delete the first one since this is created via seeder
    $contents = $this->contents->all()->toArray();
    array_shift($contents);

    // Delete db file, creates it from an example file and changes permissions
    system('rm -rf ../database/database.sqlite');
    system('cp ../database/database.sqlite.example ../database/database.sqlite');
    system('chmod 0777 ../database/');
    system('chmod 0777 ../database/database.sqlite');

    // Insert data
    foreach ($contents as $content) {
        $this->contents->create($content);
    }

    return response()->json(['message' => 'Data has been destroyed!']);
}

但是,当我尝试运行它时,出现了标题中描述的错误:

SQLSTATE[HY000]一般错误:8 次尝试写入只读数据库

我根据其他问题的答案建议对文件和文件夹设置 777 权限,所以我不知道为什么它不起作用。

最佳答案

你需要运行两个命令

首先,将 Laravel 目录的所有权更改为 web 组:

sudo chown -R :www-data/var/www/yourLarvelFolder

其次,赋予存储目录权限,使其可写:

sudo chmod -R 775/var/www/yourLarvelFolder/storage

关于php - Laravel + SQLite = SQLSTATE[HY000] 一般错误 : 8 attempt to write a readonly database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47835714/

相关文章:

php - 什么是好的免费在线投票/调查应用程序?

php - 如何将 php include 插入到 heredoc 变量中?

linux - 在 arch linux 上安装 wakanda 服务器

linux - Mac OS 或 Linux - 更改年份但保持月日小时和秒数不变

c - 降级后 GCC 无法编译简单的 C 应用程序

laravel - required_without 不使用其他规则

mysql - Laravel 和 MySQL JOIN

php - mysql 查询问题 where (IN) - ' and "

php - SMTP 服务器有问题?

php - 上传PHP Mysql时重命名图片