Combo Lighttpd / PHP - FastCGI / SQLite / Wordpress - PHP - Programmation
Marsh Posté le 06-08-2013 à 22:24:19
Héhé, sympa le projet ^^
SqlLite nécessite la création de fichier, et visiblement, il n'a pas les droits nécessaires pour écrire dans le répertoire ou il doit écrire les fichiers.
Bonne chance
Marsh Posté le 06-08-2013 à 22:26:50
Yep, c'est effectivement ce que j'avais compris.
Mais où le process essaye-t-il d'écrire justement ?
Marsh Posté le 07-08-2013 à 15:13:59
Ben regard dans le fichier de conf de SQLite où il stocke normalement ses BD.
Cela dit, t'aurais mis un Mysql, tu te serais moins fait chier
Marsh Posté le 07-08-2013 à 16:48:48
Je ne sais pas où il se trouve, vais chercher.
Marsh Posté le 07-08-2013 à 18:24:24
Bon pas de fichier de configuration à priori.
Je vais continuer à fouiller mais si vous avez des idées.
Marsh Posté le 07-08-2013 à 19:39:54
et un grep FQDBDIR ? Sinon tu peux aussi changer le code pour logger le FQDBDIR. Y a rien dans les logs PHP ?
mais il y a 9 chances sur 10 que le répertoire soit celui de l'endroit où est installé wordpress. Mais il faut non seulement les droits mais aussi le répertoire parent (mkdir par défaut ne fait pas de création récursive)
Marsh Posté le 07-08-2013 à 20:53:09
Solution trouvée.
J'ai modifié le fichier wp-config.php pour lui donner un répertoire et un nom de base de données (fichier .db pour sqlite).
En modifiant les droits sur le répertoire en question, j'ai Wordpress qui m'a bien créé mon fichier .db.
L'installation s'est bien déroulé, malgrès un affichage un peu pourri.
Je rencontre maintenant le problème suivant, dans le errors.log de lighttpd:
Citation : 2013-08-07 19:41:24: (log.c.166) server started |
Mon répertoire /var/tmp/lighttpd existe, il a les bons droits et appartient au user qui lance lighttpd.
J'ai essayé le répertoire /tmp directement, même erreur.
Marsh Posté le 06-08-2013 à 21:48:28
Bonsoir à tous,
N'ayant que très peu de connaissance en serveur web, je voulais dédier mon Raspberry PI pour approfondir ma culture en la matière.
Pour bricoler, je me suis donc lancer dans l'installation du combo Lighttpd / PHP / SQLite / Wordpress.
Lighttpd:
Pas de soucis, après l'installation je peux afficher directement le contenu d'un index.html
PHP et mode FastCGI + FPM
Pas de soucis à l'installation, au niveau de la configuration avec lighttpd pas de soucis également à mon avis, ca tourne en tout cas.
L'affichage d'un phpinfo() dans un index.php fonctionne aussi.
Wordpress / SQLite
J'ai fais le choix de SQLite car c'est une base de données qui me semblait relativement aiser à appréhender dans le cadre de mes tests (un seul fichier pour la base) et parcequ'en terme de ressource, il me semblait très peu consommateur.
Là ou celà se complique c'est au niveau de l'interfaçage avec Wordpress qui n'est pas prévu pour dialoguer avec ce type de base de données.
J'ai donc installé en supplément le plugin SQL-Integration, et ai activé les librairies qui vont bien pour avoir le support de SQLITE au niveau wordpress (confirmé par les informations donnés par phpinfo).
Le plugin joue le rôle d'interface entre les requêtes venant de Wordpress et la base de données.
Il m'a fallu pas mal de lecture et de recherche sur le net pour arriver à une configuration qui me semble nickel. Je me suis basé sur ce TUTO:
http://dogwood.skr.jp/wordpress/sqlite-integration
Le hic arrive au moment de lancer l'installation de Wordpress et donc la création des tables qui vont bien dans la base de données SQLite.
Dans la barre de navigation de Chrome, je tape l'URL permettant de lancer l'installation et j'ai une erreur.
En regardant le fichier /var/log/lighttpd/errors.log, j'ai le message suivant:
2013-08-04 17:40:02: (mod_fastcgi.c.2676) FastCGI-stderr: PHP Fatal error: Call to undefined function __() in /srv/http/framboesa/wp-content/plugins/sqlite-integration/pdoengine.class.php on line 117
En regardant le contenu du fichier pdoengine.class.php, j'arrive sur le code suivant:
$message = __('Unable to create the required directory! Please check your server settings.', 'sqlite-integration');
La pavé entier, avec en gras la ligne de code qui coince.
/**
* Make database direcotry and .htaccess file
* executed once while installation process
*/
private function prepare_directory() {
global $wpdb;
$u = umask(0000);
if (!is_dir(FQDBDIR)) {
if (!@mkdir(FQDBDIR, 0777, true)) {
umask($u);
$message = __('Unable to create the required directory! Please check your server settings.', 'sqlite-integration');
echo $message;
return false;
}
}
if (!is_writable(FQDBDIR)) {
umask($u);
$message = __('Unable to create a file in the directory! Please check your server settings.', 'sqlite-integration');
echo $message;
return false;
}
if (!is_file(FQDBDIR . '.htaccess')) {
$fh = fopen(FQDBDIR . '.htaccess', "w" );
if (!$fh) {
umask($u);
$message = __('Unable to create a file in the directory! Please check your server settings.', 'sqlite-integration');
echo $message;
return false;
}
fwrite($fh, "DENY FROM ALL" );
fclose($fh);
}
umask($u);
return true;
}
J'ai donc un problème de droit mais j'ai du mal à identifier où.
Merci pour votre aide.