Drupal 5.0 sur free.fr ?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Quelqu'un aurait'il réussi à installer Drupal 5 sur free.fr et pourrait-il partager sa recette ? Alors qu'il est possible d'installer la 4.7 (cf. herisson185.free.fr ) je désespère avec la 5.0 RC1.
Sinon, faut il espérer que cela changera avec la sortie finale ? Ou peut-être pouvez-vous me recommander un autre hébergeur gratuit qui marche bien avec Drupal.

Oui, j'en étais arrivé à la même conclusion : que la 5.0 va être difficile à installer sur free.
Dommage, parce qu'elle est vraiment bien, drupal est un chouette produit, et j'aurai bien aimé m'en servir aussi :-p

Je vais retenter le coup avec la version actuelle, et me plonger dans le code pour voir ce qui coince, mais si d'autres ont la réponse ça serait sympa de m'éviter ce boulot ;-)

Hello,

As tu essayé l'option update ?

Y'a un problême de détection du serveur par rapport à l'index renvoyé par apache (chez Free il est modifié par Apache/ProXad) donc il voit par la version et dit qu'elle est trop vieille... Ceci est contournable en commentant le fichier d'installation au bons endroit mais quelle idée de faire un script aussi bête sans option "continuer quand même".

Perso je bloque sur l'installation de la database, le script est buggé à fond les manettes ...

J'essaye l'update depuis la 4.7.4

Edit:

Ca marche sur Free, upgrader de 4.7.4 vers 5.0-rc1 :)

Résultat del'upgrade:

Drupal database update

Updates were attempted. If you see no failures below, you may proceed happily to the administration pages. Otherwise, you may need to update your database manually. All errors have been logged.

    * main page
    * administration pages

The following queries were executed
system module
Update #1000

    * CREATE TABLE {blocks_roles} ( module varchar(64) NOT NULL, delta varchar(32) NOT NULL, rid int unsigned NOT NULL, PRIMARY KEY (module, delta, rid) ) /!40100 DEFAULT CHARACTER SET utf8 */;

Update #1001

    * ALTER TABLE {poll_votes} ADD COLUMN chorder int NOT NULL default -1 AFTER uid

Update #1002

    * No queries

Update #1003

    * ALTER TABLE {aggregator_item} ADD guid varchar(255) AFTER timestamp ;

Update #1004

    * ALTER TABLE {access} CHANGE aid aid int NOT NULL AUTO_INCREMENT
    * ALTER TABLE {boxes} CHANGE bid bid int NOT NULL AUTO_INCREMENT

Update #1005

    * CREATE TABLE {node_type} ( type varchar(32) NOT NULL, name varchar(255) NOT NULL, module varchar(255) NOT NULL, description mediumtext NOT NULL, help mediumtext NOT NULL, has_title tinyint unsigned NOT NULL, title_label varchar(255) NOT NULL default '', has_body tinyint unsigned NOT NULL, body_label varchar(255) NOT NULL default '', min_word_count smallint unsigned NOT NULL, custom tinyint NOT NULL DEFAULT '0', modified tinyint NOT NULL DEFAULT '0', locked tinyint NOT NULL DEFAULT '0', orig_type varchar(255) NOT NULL default '', PRIMARY KEY (type) ) /!40100 DEFAULT CHARACTER SET utf8 */;

Update #1006

    * ALTER TABLE {blocks} ADD title VARCHAR(64) NOT NULL DEFAULT ''
    * ALTER TABLE {boxes} DROP title

Update #1007

    * ALTER TABLE {aggregator_item} ADD INDEX (fid)

Update #1008

    * ALTER TABLE {locales_source} ADD KEY source (source(30))

Update #1010

    * No queries

Update #1011

    * UPDATE {menu} SET mid = 2 WHERE mid = 0

Update #1012

    * ALTER TABLE {file_revisions} ADD INDEX(vid)
    * ALTER TABLE {files} ADD INDEX(nid)

Update #1013

    * ALTER TABLE {sessions} CHANGE COLUMN sid sid varchar(64) NOT NULL default ''

Update #1014

    * No queries

Update #1015

    * ALTER TABLE {watchdog} ADD INDEX (type)

Update #1016

    * ALTER TABLE {watchdog} CHANGE COLUMN location location text NOT NULL

Update #1017

    * ALTER TABLE {role} CHANGE name name varchar(64) NOT NULL default ''

Update #1018

    * UPDATE {node_revisions} SET body = REPLACE(body, '<!--break-->', '<break>')

Update #1019

    * No queries

Alors, je note autant pour moi que pour ceux qui tenterait l'expérience.

  • Il y a un problème de détection de la version du server apache parce que free l'a personnalisé. Dans "modules/system/system.install" , il faut mettre en commentaire les lignes (dans la RC1) 33 à 56.

  • Il y a toujours un problème avec les "LOCK TABLE" désactivé chez Free. Ce qui provoque des erreurs d'installation (et d'utilisation) de la DB.
    . Dans "includes/install.mysql.inc", désactiver les lignes 90 à 99
    . Dans "includes/database.mysql.inc", désactiver les lignes 404 et 411 (dans les fonctions db_lock_table() et db_unlock_table() )

  • Il me reste un problème d'échappement de caractère avec un appel de fonction qui ne semble pas disponible sur le PHP de free. (dans les fonctions db_escape_string() et db_encode_blob() )
    -> J'ai désactivé ces appels, mais du coup les requètes SQL ne sont plus valide, et donc ça reste inutilisable pour le moment...

C'est bizarre quand même ces fonctions non disponibles, alors que PHP et Mysql sont en bonnes versions.

Houuu, c'est funny ça ...
En fait, malgré des erreurs d'appel à la fonction "mysql_real_escape_string()" lors de l'install, et puisque dragan confirme que l'upgrade fonctionne, j'ai tout de même réactivé ces 2 appels et le site semble fonctionnel (sans warning ni erreur).

Donc, comme la version précédente, l'install est un peu "compliquée", mais après c'est bonheur :-)

Yes, sympa ton post avec toutes les infos ;)
La je galère un peu sur acidfree avec cette erreur:

warning: Invalid argument supplied for foreach() in /mnt/136/free.fr/d/3/blablabla/site/modules/acidfree/acidfree.module on line 127.

Je sais que acidfree fonctionne avec drupal sur free, j'ai vu des sites avec :p

Si je solutionne je reviens poster la soluce

Qui cherche fini toujours par trouver ! J'ai trouvé !!

Le problème vient de l'utilisation de la fonction php glob(), non disponible chez free. Ils s'en servent pour rechercher les fichiers .class qu'ils mettent ensuite dans un require_once.

J'ai remplacé cette fonction glob par un tableau contenant le nom des 3 fichiers .class et ça passe comme une lettre à la poste.

Certes, c'est pas hyper propre ce que j'ai fait, mais au moins ça marche. L'idéal aurait été d'écrire une petite fonction qui récupère ces fameux fichiers sans les écrire "en dur", mais bon, plus tard !

@++, Stef.

"drupal 5 sur free.fr" LA SOLUTION COMPLETE

il existe une autre méthode pour activer drupal 5 sur free, et c'est celle que je viens d'appliquer hier:

-copier l'ensemble des fichiers de drupal 5 sur le serveur free

-supprimer le .htaccess
je n'ai aucune idées de la raison pour laquelle free n'aime pas ce htaccess mais je n'avais pas le temps de découvrir cette raison

-à ce stade drupal refuse de s'installer car un test detecte la version d'apache comme trop vielle.
hors le test ne passe pas car la version d'apache du serveur free est "proxad" au lieu de "1.xx" normal..
le test se trouve dans le fichier module/system/system.install
Il suffit de requalifier le test de la version de serveur "REQUIREMENT_ERROR" en "REQUIEREMENT_WARNING" comme suit

switch ($server) {
      case 'Apache':
        if (version_compare($version, DRUPAL_MINIMUM_APACHE) < 0) {
          $requirements['webserver']['description'] = $t('Your Apache server is too old. Drupal requires at least Apache %version.', array('%version' => DRUPAL_MINIMUM_APACHE));
          $requirements['webserver']['severity'] = REQUIREMENT_WARNING;
        }
        break;

Ainsi le test du serveur passe.

-Ensuite drupal nous informe que le test de "LOCK TABLE" a échoué; normal chez free on a pas le privilège "LOCK TABLE". Cella permet de garantir l'intégrité de données stockées dans plusieurs tables
chez free on est en MYISAM et ce moteur à l'inverse d'INNODB ne permet pas les transactions."LOCK TABLE" permet de contourner la limitation.
il suffit donc de commenter tous les LOCK TABLE ainsi que les UNLOCK TABLE dans les appels de fonction. A noter que si vous faites la recherche de ce mot avec dreamweaver il ne trouvera pas car les extentions de fichier atypique comme ".install" ou ".module" seront ignorées.

Voilà votre installation de drupal peut fonctionner.

Je ne connais pas les conséquences exactes de la suppression du .htacess
La suppression du test de serveur est sans danger

En revanche la suppression du lock table peut s'avérrer très problèmatique pour un gros site communautaire à fort trafique.
Concrétement des bug assez difficile à diagnostiquer risque d'apparaitre, ils seront liés à la base de donnée: un utilisateur qui modifiera le profil d'un autre par exemple.

Donc drupal sur free ok mais pour le site de beau papa, pour un site plus sérieux préfèrer un hebergeur. J'utilise nuxit et ovh, et j'évite amen, en toute objectivité c'est un choix personnel.

En plus de cette discution; il en existe une autre sur drupal.fr donnant la solution, mais les deux explication m'apparraissent obscures. C'est pourquoi j'ai posté cette synthèse

le partage c'est aussi donner sans attendre de recevoir :
sharing learning http://www.domorobo.com

Concernant le LOCK TABLES, je ne pense pas qu'il faille commenter tous les appels a cette fonction, ca serait bien trop laborieux, par contre le simple fait de modifier la fonction db_lock_table et db_unlock_tables en commantant leur contenu suffit, par contre c'est clair que c pas vraiment viable pour de gros sites a fort traffic (de toute facon si mes souvenirs sont bons, Free est pas vraiment un modele de rapidite...)

Après test le simple fait de modifier la fonction db_lock_table et db_unlock_tables en commantant leur contenu ne semple pas suffir.

Est ce que l'un de vous pourrait tout simplement poster l'ensemble des fichiers qu'il a du modifier pour installer drupal 5.1 sur free ou bien même ceux pour Drupal 4.7 puisqu'une mise à jour semble suffir.

Merci d'avance.

Stéphane un webmaster désespéré.

MERCI,

en cherchant un peu j'ai trouvé.
Pour info j'ai réussi à installer drupal 5.1 sur free.
en suivant les instruction ci dessous tout se passe bien.
Même si il y a des warning pendant l'execution du script, il faut continuer et rafraichir la page 2 à 3 fois.

Ensuite roulez jeunesse...(C'est null comme expression ;-))

A+

Pour ceux qui veulent pas se prendre la t^te je peux leur filer le pakcage pré paramétré pour free

Bonjours Messieurs dames

Bon comme tous les gens ici, problème d'installation de drupal 5.1 avec free et db en mysql

Donc j'ai passé le 1er message d'erreur en mettant en commentaire les lignes 89 a 109 du fichier install_mysql.inc (paragraphes "test lock" et "test unlock").

j'ai commenté les appels a lock et unlock table dans le fichier includes/database.mysql.inc

Les tables se crée "parfaitement" dans la db chez free (je mets parfaitement entre " " car les tables se créent certe mais il se peut que des erreur surviennent mais je ne peux pas le verifier (ou via comparaison entre installation locale et installation chez free vous me direz)

Cependant je me retrouve soit avec une erreur de header et de fonction ligne 400 dans le fichier database.mysql.inc (je confirme pas a 100%, je suis au taffe et je fais l'installation depuis chez moi, j'editerais si probleme) ou bien une erreur dans le fichier cache
Fatal error: Call to undefined function: db_lock_table() in /mnt/125/sda/6/b/mtv.video/includes/cache.inc on line 94

donc 2 petites questions :
1- Y a t'il que les fichiers database.mysql.inc et install_mysql.inc a modifier pour la 5.1 (et dans ce cas c'est ma modification qui est mauvaise ?
2- Faut il modifier les 6-7 fichiers contenant l'appel a lock_table et unlock_table ?

donc voila apres recherche sur le forum, j'ai trouvé des reponses pour les install 4.7 non valable pour la 5.1 et des reponses pour la 5.1 mais "partielles"

merci d'avance

Je viens de terminer une install sur Free et en fait je vais corriger ce que je disais avant...

Il ne faut pas commenter totalement la fonction LOCK TABLE, par contre avant je disais qu'il fallait commenter son contenu.

Bref apres une install, bin en fait j'ai simplement remplacer dans database.mysql.inc (pas la peine de modifier le .mysqli.inc si tu utilises pas mysqli) db_lock_tables et db_unlock_tables par :

<?php
/<strong>
 *
Lock a table.
 */
function
db_lock_table($table) {
 
//db_query('LOCK TABLES {'. db_escape_table($table) .'} WRITE');
 
db_query('SELECT 1');
}

/</
strong>
 *
Unlock all locked tables.
 */
function
db_unlock_tables() {
 
//db_query('UNLOCK TABLES');
 
db_query('SELECT 1');
}
?>

Car sinon j'avais un message d'erreur qui disait que c'etait pas une ressource MySQL valide.

bon bilan apres 1ere series de test :

1- j'enleve le htaccess
2- edition de system.install pour la version de php
3- edition de install.mysql.inc ligne 89 a 109 pour eviter le test lock / unlock

<?php // Test LOCK.
 
/<em>$query = 'LOCK TABLES drupal_install_test WRITE';
 
$result = mysql_query($query);
  if (
$error = mysql_error()) {
   
drupal_set_message(st('We were unable to lock a test table on your MySQL database server. We tried locking a table with the command %query and MySQL reported the following error: %error.', array('%query' => $query, '%error' => $error)), 'error');
   
$err = TRUE;
  }
  else {
   
$success[] = 'LOCK';
  }

  // Test UNLOCK.
 
$query = 'UNLOCK TABLES';
 
$result = mysql_query($query);
  if (
$error = mysql_error()) {
   
drupal_set_message(st('We were unable to unlock a test table on your MySQL database server. We tried unlocking a table with the command %query and MySQL reported the following error: %error.', array('%query' => $query, '%error' => $error)), 'error');
   
$err = TRUE;
  }
  else {
   
$success[] = 'UNLOCK';
  }</
em>/ ?>

(ajout de /* au debut et de */ a la fin)

3- edition de database.mysql.inc comme decrit ci dessus

<?php function db_lock_table($table) {
 
//db_query('LOCK TABLES {'. db_escape_table($table) .'} WRITE');
 
db_query('SELECT 1');
}

/**
 * Unlock all locked tables.
 */
function db_unlock_tables() { 
   
//db_query('UNLOCK TABLES');
db_query('SELECT 1');
}
?>

resultat : identification pour la creation de la db
creation des tables et comme hier ->

Warning: mysql_real_escape_string(): 10702184 is not a valid MySQL-Link resource in /mnt/125/sda/6/b/mtv.video/includes/database.mysql.inc on line 400

ca une dizaine de fois + erreur sur bootstrap.inc sur pas mal de ligne comme suis
Warning: Cannot modify header information - headers already sent by (output started at /mnt/125/sda/6/b/mtv.video/includes/database.mysql.inc:400) in /mnt/125/sda/6/b/mtv.video/includes/bootstrap.inc on line 491

test sur un autre compte free (sans point dans le nom ..) : memes erreurs

bon je vais continuer de jouer en local pour le moment :D

Bonjour,

Je suis entrain d'essayer d'installer drupal-5.1 sur un compte free. J'ai essayer de suivre attentivement tout ce qui à été dit plus haut; ce qui donne a peu de choses pres le protocole de francisXV. Toutefois, j'ai lancé l'installation AVANT de rééditer une deuxième fois le fichier database.mysql.inc.
Aussi, après le "hack" des fonctions lock et unlock, l'erreur de non validité MYSQL disparait effectivement.
Cependant, à la place, j'ai le fameux:

Fatal error: Call to undefined function: filter_xss_bad_protocol() in /mnt/136/free.fr/c/e/mindhackers/includes/common.inc on line 837

C'est d'autant plus ennuyeux que j'ai suivi toutes les indications du forum anglophone en répétant l'ensemble de l'opération -y compris l'upload complet des fichiers- au moins 3 fois.

Que peut-on faire d'autre ?

Merci d'avance pour votre temps et votre patience,

qwerkus

J'ai eu aussi a faire cette erreur... Le seul moyen que j'ai trouve pour la corrigee a ete de reuploader (plusieurs fois) mon site complet.
Par contre vu que le FTP de free est legerement relou, j'ai limite mon client a 2 sessions max et je l'ai force a transferer les fichiers en ASCII...

Au bout d'un moment ca a marche mais j'avoue que je sais pas ce qu'il s'est passe...

Rebonjour

perso filezila
un nombre incalculable d'upload, ascii ou automatique, meme soucis

Je pense que je vais changer d'hebergeur, ca reglera pas le soucis mais au moins je pourrais faire ce que j'ai besoin

Je vais tester http://www.awardspace.com/ , gratuit le temps de mettre un place un truc qui fonctionne et au besoin switcher sur un vrai fai apres, un fois le site monté

FileZilla.

D'ailleurs je me rends compte d'un truc :D
Le pb vient pas vraiment de l'upload (desole pour le message precedent), mais d'une mauvaise creation de la BDD...

Si tu regardes ds phpMyAdmin, la table system a pas toutes les lignes qu'il faut (perso il me manquait la moitie des definitions de modules). Donc oui l'install te dit qu'il se fait bien mais en fait nan, un peu embetant ca vous me direz...

La solution que j'ai employe a ete de creer la BDD en local (easyphp, wamp...) de faire un export et de l'importe sous Free, et la miracle ca resout le pb du filer_....

Je crois qu'il va falloir que je fasse un vrai tuto car je me suis un peu enerver pendant un moment avec mon ftp avant de me rendre compte de la corruption de la BDD.

je vais tester ca ce soir
en tout cas, le nombre de table etait juste (40 chez free) avec l'erreur presente
ca n'exclus pas d'erreur dans la creation des tables evidement

par contre ca va etre tendu de créer la base en locale et l'uploader
pendant l'install on peut pas la faire avant sinon il te dis que la base est deja presente, et apres il t'affiche l'erreur

mais bon verdict vers 21h apres le taffe

Ouep moi aussi le nbr de table etait bon, mais comme j'arretais pas de reuploader le module filter, je me suis finalement dis que c'etait pas possible que ca plante a chaque fois.
Du coup je me suis souvenu que les modules etaient charges au bootstrap et que justement les modules a charger etaient listes dans la table system, un ti coup d'oeil a celle ci et j'ai vu qu'il manquait des tas de lignes dedans, d'ou l'idee d'importer le schema brutalement depuis une install locale :)

par contre ca va etre tendu de créer la base en locale et l'uploader
pendant l'install on peut pas la faire avant sinon il te dis que la base est deja presente, et apres il t'affiche l'erreur

Fait juste l'install normalement (comme ca settings.php est cree correctement), une fois l'install terminee, il va t'afficher l'erreur du filer_XSS...
La tu vas ds phpMyAdmin, tu droppes violemment toutes les tables de drupal (perso j'utilise un prefixe vu qu'y a d'autres trucs sur mon compte Free) et ensuite tu fais un import de ta BDD que tu auras cree en local ;)

Effectivement: apres recherche exhaustive, il semblerait que le probleme provienne d'une mauvaise base de donnee. Maintenant, je n'ai pas trop la possibilite de configurer un serveur apache avec support mysql en local; quelqu'un pourrait il avoir la gentilless de poster un lien vers un fichier backup mysql vierge, avec prefixe, si possible pour pouvoir etre inserer sur le site phpmyadmin de free.

merci beaucoup,

qwerkus

Tu peux pas installer easyphp en local ???
Parce que perso je prefere developper en local plutot que direct sur le serveur...

Si t'as vraiment pas la possibilite, j'essairai de poster un fichier mysql mais bon...

Ok: je croyais que mon installation de linux ne marchait plus: eh bien non, c'est robuste, ces betes-la.
J'ai créé les tables en local et tout balancé sur free:

IT WORKS !

merci à tostinni !

Tout de suite mes deux premières question:

  1. Est ce que ton (tostinni) patch http://drupal.org/node/21439 pour remplacer les fonctions LOCK tourne sur la version 5.1 et free.fr ?

  2. Dans la fenetre "status" de la page admin, drupal m'informe que la version de php est 4.4.3-dev, alors que free.fr permet la 5. Comment faire pour faire tourner drupal en php5 ? >support utf8 mbstring

1/ ca c'est du deterrage de patch :D
En fait il avait un pb ce patch c'etait la compatibilite avec MySQL, mais bon...
Du coup je crois qu'y en a un nouveau: http://drupal.org/node/55516 bon par contre il est pour la version 6 mais a priori y a pas l'air d'y avoir tant de changement a faire que ca...
Bon ceci dit a moins que t'aies un traffic de furieux sur ton site (et auquel cas Free tiendra pas la charge), je pense que tu peux laisser tomber mon patch et juste remplacer le contenu de db_lock_tables et db_unlock_tables par des "SELECT 1" comme je le disais plus haut.

2/ Il suffit de renomer index.php par index.php5 et a priori ca marche nickel.

PS: oublie pas le .htaccess dont je parlais un peu plus haut.

PPS: Je crois que je vais ecrire un vrai tuto des que tu me confirmes que ca marche pour toi car c un peu galere cette install.

Merci beaucoup pour ta reponse; le php5 fonctionne effectivement en se contentant de renommer le fichier index.php.

Concernant le patch: mon problème n'est pas tellement le traffic: je cherche une solution pour supprimer les messages d'erreurs recurrents comme: user warning:
Access denied for user 'mindhackers'@'172.20.%' to database 'mindhackers' query: LOCK TABLES drupal_sequences WRITE in /mnt/136/free.fr/c/e/mindhackers/drupal/includes/database.mysql.inc on line 172.
A chaque fois que l'on edite les permissions/droits d'access des utilisateurs:bing le meme message. Sans parler de l'impression d'amateurisme fini donnée au nouvel utilisateur, qui, dès qu'il a créé son compte, lorsqu'il se voit balancé le même message... Je vais essayer d'installer le patch, et voir si ça marche.

Pour finir, je ne vois pas tellement de quel fichier .htaccess tu veux parler ??? Si tu pense au fichier du repertoire racine: je l'ai supprimé, comme tout le monde ici, je pense...

Excellent tostinni: plus de messages d'erreur !
En fait, il faudrait preciser qu'il faut remplacer egalement les db_query('LOCK' / 'UNLOCK') de la fonction db_next_id; cela represente au totale 4 manip dans le fichier database.mysql.inc, comme explique dans l'autre thread. Maintenant je me pose egalement la question des pertes ce fonctionnalites dues a ces 'hacks'. Que ce soient les LOCKS ou l'absence de .htaccess. Est ce que cela justifie le passage / apprentissage d'un autre CMS (lequel?), ou est-ce negligeable ?

Bien vu pour les lock de db_next_id d'ailleurs je me demande bien ce qu'ils font la ceux la et pourquoi ils utilisent pas la fonction db_lock_tables bref, je pensais soumettre un patch mais vu que la 6 devrait faire sauter ce code la...

Comme je le commentais, c'est surtout une question de coherence de la BDD, les LOCKs sont la pour eviter l'insertion de 2 ids identiques dans les tables, ceci dit vu qu'y a des cles sur ces id, le seul truc c que tu peux avoir un message d'erreur au moment de l'insertion d'un node/comment... Mais bon ca depend surtout du traffic, donc je pense que sur un site a faible traffic (en ecriture) ca devrait passer.
Je commentais aussi que de toute facon Free etait pas adapte a un site a gros trafic donc la pas de pb...

Enfin qt a la solution d'apprendre un autre CMS, a toi de decider...
Perso c'est tout vu ;)

PS: l'abscence de .htaccess pose surtout un pb qt a la possibilite d'utiliser les cleans URLs sur Free, il faut que je me penche un peu plus dessus...

c'est bon on tient le bon bout je crois

alors :
1- extraction du zip
2- installation en local, creation de la db vierge, exportation du fichier sql de la DB locale
3- suppretion du htaccess du dossier a uploader
4- edition de modules\system\system.install REQUIREMENT_ERROR; devenu REQUIREMENT_WARNING;
5- edition de install.mysql.inc et mise en commentaire des lignes 89 a 109 (test lock et test unlock table
6- edition de database.mysql.inc avec 4 manip
6.1--
2 modif a la ligne 261 (fonction next_id)

<?php
function db_next_id($name) {
 
$name = db_prefix_tables($name);
 
//db_query('LOCK TABLES {sequences} WRITE');
 
$id = db_result(db_query("SELECT id FROM {sequences} WHERE name = '%s'", $name)) + 1;
 
db_query("REPLACE INTO {sequences} VALUES ('%s', %d)", $name, $id);
 
//db_query('UNLOCK TABLES');

 
return $id;
}
?>

6.2--
2 modif lignes 403 a 417

<?php
 
/<strong>
 *
Lock a table.
 */
function
db_lock_table($table) {
   
//db_query('LOCK TABLES {'. db_escape_table($table) .'} WRITE');
 
db_query('SELECT 1');
  }

/</
strong>
 *
Unlock all locked tables.
 */
function
db_unlock_tables() {
 
//db_query('UNLOCK TABLES');
 
db_query('SELECT 1');
}
?>

7- renomage de index.php a index.php5
8- upload de drupal chez frer et lancement de l'installtion
9- apres la creation "on line" de la db un message peut apparaitre (erreur 400 sur bootstrap etc ..) -> efacement de la db créée chez free, upload de la db locale, changement de l'url dans la barre d'adresse de
http://monsite.free.fr/install.php .. a http://monsite.free.fr/index.php5

et la pour moi ca a marché (disons que j'ai pas trop fais de test mais ca se presente bien avec mondule de creation de 1st
user etc

je viens de faire une install (version Drupal 5.1 ) sur free à partir d'une install en local ( linux / debian ).

En local après installation, j'ai juste créé l'admin (login/passwd).

Sauvegarde environnement (linux):
- sauvegarde des tables de la base ( fichier xxxx.sql )
- sauvegarde des fichiers de l'appli.

Modif. ensuite sur les fichiers sauvegardés :

1 - fichier xxxx.sql remplacer "url locale" par "url free.fr"

2 - fichier sites/default/settings.php (paramères accès base):

$db_url='mysql://"login":"passwd"@sql.free.fr/"base free.fr";

3 - fichier module/system/system.install :

en ligne 40 : remplacer REQUIREMENT_ERROR par REQUIREMENT_WARNING

4 - fichier includes/database.mysql.inc :

mis en commentaire les lignes (LOCK et UNLOCK)

ligne 263 //db_query('LOCK TABLES {sequences} WRITE');

ligne 266 //db_query('UNLOCK TABLES');

ligne 407 //db_query('LOCK TABLES {'. db_escape_table($table) .'} WRITE');

ligne 414 //db_query('UNLOCK TABLES');

5 - fichier includes/install_mysql.inc

mis en commentaire les lignes 89 à 109

// Test LOCK.
/* $query = 'LOCK TABLES drupal_install_test WRITE';
$result = mysql_query($query);
if ($error = mysql_error()) {
.....
.....
.....
else {
$success[] = 'UNLOCK';
}
*/

6 - fichier includes/file.inc ( .htaccess ) :

mis en commentaire les lignes 115 à 126

/* if ((file_directory_path() == $directory || file_directory_temp() == $directory) && !is_file("$directory/.htaccess")) {
....
....
....
watchdog('security', $message, WATCHDOG_ERROR);
}
} */

7 - supprimer tous les fichiers .htaccess :

Ensuite envoi sur free :

  • connection phpmyadmin :

selection de la base puis bouton sql envoi d'un fichier

envoi des tables fichier .....sql

  • connection ftp :

envoi de l'arborescence des fichiers appli.

Connection url site free ( http://****.free.fr ) :

L'on doit obtenir la page d'accueil.

connection avec login/passwd idem ceux de l'appli sous linux.

Reste à corriger :

Tableau de bord

en erreur WARNING :

Fichier de configuration Non protégé.
Le fichier sites/default/settings.php n'est pas protégé en écriture et cela pose un problème de sécurité. Vous devez changer les permissions du fichier pour qu'il ne soit pas accessible en écriture.

Ou modifier pour ne pas faire ce test (chmod désactivé sur free.fr)

en erreur ERROR :

version d'APACHE et librairie Unicode PHP

Reste à voir si tous fonctionne correctement !!!

Au total, cela représente pas mal de manips, pour une version 5 qui se voulait 'facile à installer'; mais d'un autre coté, une installation sans hacking laisse un furieux arrière goût micro$oft...

tostinni; moi aussi je me penche sur la question du URL rewriting chez free. Ayant déjà eut plusieurs pages, je me suis rendu compte que "tel quel", le référencement google est super-bizarre.

Que pensez-vous d'une solution type:

1) dans le .htaccess, mettre:

ErrorDocument 404 /erreur404.php

2) supposons que vos articles soient du style article.php?q=1, que vous reecrivez en /titre-de-article-1: créer le fichier erreur404.php avec:

<?php
$URL
= pathinfo("$REQUEST_URI"); // recupere le chemin demande

$vrai_chemin = $URL["basename"]; // ici va recuperer "/titre-de-article-1"

$tableau_chemin = explode("-",$vrai_chemin); // on obtient un tableau ["/titre","de","article","1"]

$q = $tableau_chemin[(count($tableau_chemin)-1)]; // maintenant $q=1

header("HTTP/1.0 200 OK");

header('Location: /article.php?q='.$q); // on fait une redirection code 200 vers /article.php?q=1
?>

source: forum webrankinfo

Ou alors cette autre solution: siteduzero

Nice.
J'ai ajouté deux trois petites choses sur les .htaccess, puisqu'il semblerait que l'on puisse garder certaines fonctions bien pratiques comme Options -Indexes.

Je propose aussi de coller deux liens sur la fin de l'article, vers deux différentes base de données "toutes faites" au format gz. Une sans préfixe, et une avec préfixe standart "drupal_". En plus, sous forme de lien, cela allègera considérablement l'article.

Cool pour le .htaccess, je pense que l'interdiction de la visualisation des fichiers *.engine & co devrait ptet marcher nan ?
En tout cas je pense que cette doc peut etre un peu retrecie qd meme car j'ai vraiment ecrit un roman :D
Par ex une fois tous les tests fait, on colle juste le .htaccess qui va bien et zou.

Cote BDD il faudrait voir avec les admins si on peut heberger le script SQL que j'ai mis ds la doc car je pense qu'il est pas forcement necessaire de stocker tout le script de creation de la BDD...

PS: c'est bizarre je vois pas les revisions du document...

jolie boulot et merci a tous en tous cas

j'ai pas trop testé au tafe today, mais la de ce que je bidouille, 2-3 warning mais rien ne semble grave pour le moment
Je pense exploser 2-3 install durant le WE et si des gros problèmes semblent arriver je repasserais

Bien joué, ça marche niquel sur free.fr

Reste que le settings.php n'est pas chmod'able et qu'il est donc accessible en lecture. Pour palier à ce défaut de sécurité j'ai simplement modifié le fichier bootstrap.inc ligne 202 :

$confdir = 'sites';

par

$confdir = 'MonRepUltraSecreT';

Il faut bien sur renommer le répertoire "sites" par "MonRepUltraSecreT" ou même le creer afin que les fouines s'amusent un peu quand même dans "sites" avec un settings.php ...vide

Toujours en rouge dans l'administration de drupal mais innaccessible en réalité.

(N'étant pas un white hat si quelqu'un trouve ça bête qu'il n'hésite pas :)

Pour info dans le tuto d'installation chez free.fr pour le .htaccess, cette ligne crée une erreur 500 :

Set the default handler.

DirectoryIndex index.php

Je l'ai donc virée

Encore une fois, il est normal (et même indispensable) que le fichier settings.php soit accessible en lecture. Le chmod est destiné à protéger ce fichier en écriture, pour éviter justement que quelqu'un de mal intentionné puisse le modifier et donc executer du code php.

Bonjour,

Tout ce topic me fait un peu peur au moment d'essayer d'installer un site Drupal chez Free... Ce n'est pas de ne pas y arriver que j'ai peur. Pour ça, vous avez largement oeuvré, et tout devrait bien se passer ! C'est l'avenir qui m'inquiète...

Comme je vous ai lu, je sais qu'il faut modifier des fichiers "core" (sources de Drupal si j'ai bien compris). Qu'en sera-t-il lors d'une mise à jour de Drupal ?

La mise à jour sera-t-elle possible ? Aisée ? Risquée ? Galère ?...

Merci de me rassurer si possible !
Stef.

Drupal 6 intègre (enfin!) un patch permettant de supprimer tout besoin de locking. Cela supprimera donc le plus gros problème à l'installation de Drupal sur Free.

En bref, c'est un peu crade maintenant, mais ca ira mieux demain.

Pour référence, l'issue en question est la #149176.

Bonjour,

J'ai suivi les instructions à la lettre écrit sur le wiki (http://drupalfr.org/node/1425) pour installer drupal.

La page d'accueil a démarrer. J'ai pu inscrire mon premier identifiant de super-administrateur. Mais j'ai voulu ajouté un module sur "module list", j'ai choisi le module "agrégator" et lorsque j'ai sauvegardé j'ai obtenue l'erreur suivante :
"Parse error: syntax error, unexpected $end in /mnt/163/sdb/9/9/les.zergonomes/modules/aggregator/aggregator.module on line 262"

Je ne peux pas faire de processus arrière, ni même changer de page. J'ai juste une page blanche avec l'erreur marqué dessus. Et ça me fait ça sur tout le site, y compris la page d'accueil !

Comment régler ce problème ?

Merci

j'ai finalement réussi à "régler" une partie du problème. J'ai écrasé l'ensemble des fichiers /modules/aggregator avec les fichiers de bases.
Ca a permit au site de redémarrer.

Puis j'ai enlevé le module puis encore remis le module pour faire qqch de plus clean. Mais maintenant j'ai cette erreur :

"
* user warning: Table 'les_zergonomes.aggregator_item' doesn't exist query: SELECT COUNT() FROM aggregator_item i INNER JOIN aggregator_feed f ON i.fid = f.fid in /mnt/163/sdb/9/9/les.zergonomes/includes/database.mysql.inc on line 172.
* user warning: Table 'les_zergonomes.aggregator_item' doesn't exist query: SELECT i.
, f.title AS ftitle, f.link AS flink FROM aggregator_item i INNER JOIN aggregator_feed f ON i.fid = f.fid ORDER BY i.timestamp DESC, i.iid DESC LIMIT 0, 20 in /mnt/163/sdb/9/9/les.zergonomes/includes/database.mysql.inc on line 172.

"

Après une journée de plus de recherche, je me rend compte que mon problème venait du transfert par FTP.

J'utilise Filezilla pour le transfert. Le transfert se fait, mais il se fait de manière incorrecte avec free. J'ai tout le temps des délais d'attentes dépassé, des connections au serveur impossible et un avertissement comme quoi il faut que je limite le nombre simultané de connection à 2.
On va dire que j'ai cette erreur tous les 3 à 5 fichiers, ce qui est énorme parce que pour installer Drupals il faut y installer plus de 200 fichiers.

Pourtant j'ai limité le nombre de connection simultané à 2, j'ai désactivé le firewall et j'ai activé le mode de transfert passif.

Quelqu'un à une idée ?