Минимальные разрешения, необходимые для разрешения PHP PDO / Apache доступа к базе данных SQLite в / var / www - PullRequest
3 голосов
/ 18 декабря 2010

решено: Смотрите мой ответ ниже

У меня возникла та же проблема, с которой Остин Хайд столкнулся с в этом вопросе .У меня есть база данных SQLite, которую я могу читать, но не писать.

В частности, я получаю Общая ошибка: 8 попытка записи базы данных только для чтения в /var/www/html/green/database.php в строке 34

Моя проблема отличается от его следующего:

-Как рекомендовано в ответах на его вопрос, я сделал базу данных доступной для записи во всем мире, а также папку, в которой находится база данных, но не повезло.Я также установил для владельца базы данных значение «apache», а также «nobody», но безуспешно.

-Я установил полный путь 777, начиная с / var (что я ненавижуделай), радости нет.

- Я запутался в SELinux (я использую Fedora 12), чтобы позволить httpd делать то, что он хочет;ничего такого.

Мне кажется, что я почти наверняка упускаю что-то простое здесь, но у меня нет идей.

Какие разрешения необходимы для файла SQLite, чтобы разрешить PHP/ Apache для чтения и записи в него через PDO?

Редактировать: Еще один связанный вопрос , добавив вес гипотезе, что у меня где-то конфликт разрешений на запись.

1 Ответ

3 голосов
/ 15 апреля 2012

Для тех, кто не может позволить себе отключить SELinux полностью, вот путь.

Создание каталога (скажем, rw_data) и всего его содержимого, доступного для записи любому процессу, работающему в httpd_t типе домена, т.е. процессы веб-сервера, используйте следующую команду как root.

chcon -R -t httpd_sys_content_rw_t "/var/www/html/mysite/rw_data/"

Вы можете проверить SELinux метки контекста с помощью следующей команды:

ls -Z /var/www/html/mysite | grep httpd_sys_content_rw_t

Это работает на Fedora 16, должно работать на других SELinux включенных distros тоже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...