У меня есть приложение, отвечающее за маршрутизацию URL других моих проектов, которые я разработал в среде Windows.
Теперь, когда у меня есть среда Linux, установленная на виртуальной машине, и я не могу перегенерировать маршруты своих приложений, потому что файл SQLite, который я использую для хранения информации, очевидно, не может быть записан подпрограммами в моих приложениях PHP.
Я получаю исключение PDOException со следующим сообщением:
SQLSTATE [HY000]: общая ошибка: 8 попыток записи базы данных только для чтения
я прочел этот стек говоря, что родительская папка файла SQLite тоже должна быть доступна для записи. Ну … я новичок в мире Linux, и я решаю несколько небольших проблем по одной за раз, и хотя я понимаю это … ограничительная политика, которую имеет / имеет Linux, я не знаю, как это исправить.
Раздел Windows, где хранятся файлы, в соответствии с прочитанными мною учебниками, чтобы разрешить доступ к ним в гостевой системе (Linux), покажите мне, что я владелец:
И я читал PHP-скрипты, запускаемые с другим пользователем или группой. Что я должен делать?
Вздох … Я злюсь на эту среду Linux …
После прочтения комментарий на доске обсуждений Ubuntu у меня есть частичный ответ на мою проблему. Видимо права доступа к файлам на смонтированных папках NFS, которые я думаю, что это Windows NTFS (файловая система), плохо спроектированы.
После этого ответа я решил переместить файл SQLite куда-нибудь еще, за пределы смонтированной папки. Я получил новую ошибку о том, что файл базы данных не может быть открыт, но на этот раз я уже знал об описанном ограничении SQLite PDO Вот,в котором говорится, что родительская папка также должна быть доступна для записи.
Разрешения исправлены и все заработало. 🙂
После этого я заметил еще один комментарий впереди говоря, что эта ошибка была исправлена в Samba 3.2.5, что странно, потому что после запуска Smbstatus Команда, которую я получил в качестве версии как 4.1.6-Ubuntu.
Во всяком случае … Дело в том, что этот комментарий также утверждает, что если вы смонтируете раздел с помощью nobrl опция во время монтирования CIFS, консультативные блокировки не распространяются по сети.
Я не знаю, что это значит, я только знаю, что после редактирования моего / И т.д. / Fstab (см. ниже), чтобы включить эту опцию и перезапустить виртуальную машину, все работало.
//WindowsIP/SharedPartitionName /path/to/linux/folder cifs username=myusername,password=mypassword,rw,nobrl,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
Спасибо @AlejandroArbiza за терпение, и я надеюсь, что это поможет кому-то в будущем.
Других решений пока нет …