J'ai une petite application CGI basée sur Perl, que je cours dans l'espace web du projet fourni pour un projet SourceForge. Cette application stocke les données dans un fichier de base de données SQLite (v.Comment puis-je écrire dans un fichier de base de données SQLite dans l'espace Web d'un projet SourceForge?
Lorsque j'exécute des scripts de test à partir d'un shell, je peux lire et écrire dans ce fichier SQLite. Cependant, lorsque le code CGI est exécuté par Apache, il a un accès en lecture seule. opérations d'écriture entraînent une erreur de fichier journal:
error.log.web-2:[Wed Oct 27 14:40:22 2010] [error] [client 127.0.0.1] DBD::SQLite::db do failed: unable to open database file
Pour des fins de test, j'ai coudés les autorisations pour ce fichier SQLite tout le chemin jusqu'à 777. Aucune différence.
Cependant, il y a des mises en garde amusantes sur l'espace web de projet de SourceForge, et je me demande si je suis perturbé par cela. Généralement, le système de fichiers du serveur Web principal est en lecture seule sur Apache. Si vous avez des fichiers qui doivent être accessibles en écriture au moment de l'exécution, vous devez les stocker dans un répertoire spécial "persistant" ailleurs ... et créer des liens symboliques à partir de votre espace web vers les fichiers sous ce répertoire.
Je l'ai fait, et les autorisations sont définies sur 777 pour le lien symbolique et le fichier SQLite réel sous l'emplacement "persistance". Je sais que ce mécanisme fonctionne en général, parce que je fais la même chose avec le cache et les fichiers journaux et ça marche. Je me demande s'il y a quelque chose de génial à propos de SQLite lui-même, dans le sens où il ne veut pas ouvrir un lien symbolique (plutôt qu'un fichier brut) pour l'écriture.
Le répertoire parent brut dispose des droits d'accès "drwxrws-x". La commande chmod affiche "opération non autorisée" lorsque j'essaie de le modifier. –
Pouvez-vous essayer le pragma pour définir temp_store sur MEMORY. "PRAGMA temp_store = MEMORY". http://www.sqlite.org/pragma.html#pragma_temp_store –
Qu'a dit le support de SourceForge? –