Combo Lighttpd / PHP - FastCGI / SQLite / Wordpress

Combo Lighttpd / PHP - FastCGI / SQLite / Wordpress - PHP - Programmation

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:
 

Citation :

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:
 

Citation :

$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.
 

Citation :


/**
   * 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.

Reply

Marsh Posté le 06-08-2013 à 21:48:28   

Reply

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 ;)

Reply

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 ?

Reply

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 :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 07-08-2013 à 16:48:48    

Je ne sais pas où il se trouve, vais chercher.


Message édité par Le Taz le 07-08-2013 à 16:48:58
Reply

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.

Reply

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)
 

Reply

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
2013-08-07 19:41:24: (mod_fastcgi.c.977) bind failed for: unix:/var/tmp/lighttpd/php-fastcgi.sock-0 No such file or directory
2013-08-07 19:41:24: (mod_fastcgi.c.1397) [ERROR]: spawning fcgi failed.
2013-08-07 19:41:24: (server.c.964) Configuration of plugins failed. Going down.


 
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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed