Installation 6.13 sur 1and1.fr [Résolu]

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.

Bonjour à tous

J'ai un peu galérer pour l'installation sur 1and1, alors je vous donne la solution pour que tout se passe bien :

  1. dézipper la version de drupal dans un répertoire (c:\drupal par exemple :-) )
  2. dézipper la traduction de drupal en français dans le même répertoire
  3. aller dans c:\drupal\site\default et dupliquer (et non pas renommer) default.settings.php en default.php
  4. modifier le fichier .htaccess du répertoire principal (c:\drupal dans notre exemple) et ajouter la ligne suivante :
    SetEnv REGISTER_GLOBALS 0

de plus modifier la ligne :
php_value register_globals 0
par :
php_value register_globals off
dans le paragraphe :

PHP 5, Apache 1 and 2.

et voilà, y'a plus qu'a transférer et à ouvrir votre site pour lancer l'installation

Version de Drupal : 

Malheureusement cela ne règle pas le problème d'impossibilité de connexion à la base de données dans le cas d'un hébergement sur serveur dédié 1and1.

Quand on entre localhost:/tmp/mysql5.sock en serveur on a :
Impossible de se connecter à votre serveur MySQL. MySQL a répondu : Unknown MySQL server host 'localhost:/tmp/mysql5.sock' (1).

et quand on entre localhost comme serveur de bd on a :
Impossible de se connecter à votre serveur MySQL. MySQL a répondu : Access denied for user: 'dbo292717913@localhost' (Using password: YES).

pourtant j'ai fait un petit fichier test avec le script :

<?php
$hostname
="localhost:/tmp/mysql5.sock";
$database="db2XXXXXXXX";
$username="dboXXXXXXXX";
$password="********";
$link = mysql_connect("$hostname", "$username", "$password", "$database");
if (!
$link)
{
  die(
'pas de connexion possible: ' . mysql_error());
}
echo
'Connexion réussie';
mysql_close($link);
?>

et ce dernier se connecte parfaitement.
Alors quelle solution ?

la déclaration de localhost:/tmp/mysql5.sock comme variable $db_host dans le fichier install.php n'y change rien.

Si quelqu'un a une idée... pour résoudre ce problème de socket non pris en charge par le script du fichier install... je suis preneur ! Merci d'avance.

regarde ce post :

http://drupal.org/node/7620

j'aime pas trop c'est un "hack" sinon tu peux peut etre créer un nouveau connecteur personnel c'est plus propre

In the file includes/database.mysql.inc change the db_connect function as follows:

function db_connect($url) {
$url = parse_url($url);

// Allow for non-standard MySQL port.
if (isset($url['port'])) {
$url['host'] = $url['host'] .':'. $url['port'];
}

/** Added to allow socket file in path; last path element becomes DB name *****/
$p = explode('/', $url['path'] );
$plen = count($p);
if ($plen > 1) {
$url['path'] = '/' . array_pop($p);
$url['host'] = $url['host'] .':'. join('/', $p);
}
/***********************************/

$connection = mysql_connect($url['host'], $url['user'], $url['pass'], TRUE) or die(mysql_error());
mysql_select_db(substr($url['path'], 1)) or die('unable to select database');

return $connection;
}

Then in your /sites/default/settings.php file you use a DB URL string like mysql://username:password@localhost:/path/to/socket/dbname. (The last element of the path is the database name).

In my case the socket is in my user home folder, so I did this:

$mysql_socket = $_ENV["HOME"] . "/mysql/socket";
$db_url = 'mysql://username:password@localhost' . $mysql_socket . '/drupal';
$db_prefix = '';

dernière je ne sais pas si c'est possible sur 1&1 :

surcharger la variable d'environnement ou bien :
editer le fichier php.ini

chager le paramètre :

mysql.defautl_socket =

en

mysql.default_socket = /full/path/tol/mysql.sock

Bonjour, il suffit d'insérer cette ligne à la place de la ligne originale de default-settings.php et de settings.php dans sites/default/

procédure :

commenter :
$db_url = 'mysql://user:password@localhost/database';

puis écrire :
$db_url = 'mysql://user:password@localhost%3Aport%3A%2Fpath%2Fto%2Fsocket%2Ffile/database';

en remplaçant par les bonnes valeurs user, password, chemin du socket et nom de la bd.
c'est tout.

Dans le cas d'un serveur dédié 1and1 la ligne est sous la forme :
$db_url = 'mysql://dboXXXXXXXXX:********@localhost%3aport%3a%2ftmp%2fmysql5.sock/dbXXXXXXXXX';

En testant avec mysqli

il faut faire autrement :

j'ai patché drupal : les fichiers :
/includes/database.mysqli.inc et
/includes/install.mysqli.inc

  $connection = mysqli_init();
  @mysqli_real_connect($connection, $url['host'], $url['user'], $url['pass'], substr($url['path'], 1), $url['port'], '<b>/tmp/mysql5.sock</b>', MYSQLI_CLIENT_FOUND_ROWS);

http://elrems.wordpress.com