У меня есть база данных sqlite3 ~ / dir / subdir / foo.sqldb с владельцем / группой me / me и разрешениями 777 (subdir имеет разрешения 775)
У меня есть PHP-скрипт командной строки, выполненный мной/ me, который открывает эту базу данных для чтения / записи и записывает в нее данные, затем закрывает ее и завершает работу.
У меня есть веб-страница, работающая на сервере Apache на той же машине http://localhost/~me/webpage.php, которая открываетбаза данных только для чтения, чтобы получить информацию для отображения, а затем снова закрыть.
Проблема заключается в том, что, когда режим журнала базы данных имеет статус WAL (pragma journal_mode = wal), после завершения программы командной строки веб-страницаоткрывает базу данных, но не может выполнить выборку для таблиц этой базы данных
Журнал ошибок apache2 показывает:
Не удалось выбрать некоторые данные Невозможно подготовить оператор: 8, попытка записи только для чтениябаза данных, реферер: http://localhost/webpage.php
Это происходит после того, как файл -wal был создан и удален во время выполнения сценария командной строки, поэтому я не верю, что -wпричиной является файл al (он принадлежит мне / мне и имеет разрешения 777 в любом случае)
Проблема не временная, и единственное решение, которое я нашел до сих пор, - это запустить мой webpage.php наКомандная строка, как я / я, и в этот момент веб-страница, запущенная через Apache, снова может выдавать выборки в базе данных.
Если я запускаю webpage.php в командной строке от имени другого пользователя, я вижута же ошибка
Неустранимая ошибка PHP: Uncaught Исключение: невозможно подготовить оператор: 8, попытка записи базы данных только для чтения
Изменение сценария веб-страницы для открытия SQLITE3_OPEN_READWRITE не имеет значения.
Однако, если я изменю режим журнала на «удалить», это вообще не проблема, поэтому у меня есть ау / а ... но я пытаюсь понять, в чем причина этого, и, если возможно, иметь свой сценарийбыть независимым от режима журнала.
Спасибо
linux: Ubuntu 16.04 LTS PHP 7.0.32-0 ubuntu 0.16.04.1 SQLite3 3.22.0 Apache / 2.4.18 (Ubuntu)