Проблемы с Perl Dancer во время работы CGI с dispatch.cgi
Я пытаюсь запустить свой проект на Dancer (perl 5.16.3 и centos 5.10), и до сих пор это был приятный опыт - пока я не попытался развернуть его на сервере.
Я решил сделать самое простое и запустить его как приложение CGI с помощью скрипта dispatch.cgi по умолчанию из дистрибутива Dancer.
Я использовал настройки Apache по умолчанию из руководства Dancer::Deployment, но что-то пошло не так. После дня борьбы с наполовину работающим проектом я вывел следующую странную вещь: при запуске через dispatch.cgi мой проект может читать из базы данных sqlite, но не может записывать в базу данных, поэтому Dancer::Session::DBI был не работает должным образом и, следовательно, проблемы.
Если я запускаю проект с автономным app.pl или с
plackup -E production -p 80 bin/app.pl
он отлично работает и может вставлять данные в БД. Я пытался изменить разрешения на 0666 для файла sqlite db, но это не помогло.
Так почему же проблема с sqlite при работе в качестве CGI и как это исправить?
1 ответ
Ну, это была проблема с правами доступа, но не для файла dbase - для каталога, содержащего этот файл! Судя по всему, sqlite создает некоторые временные файлы при обновлении баз. Осторожно.