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

Catégories:

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

#

C’est la meme chose chez la plupart des prestataires :

je vous conseille cet excellent article :

http://blog.christophelebot.fr/2008/04/19/drupal-6-ovh/

#

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.

www.cocardes.com
Maquettes et Photos d’Avions

#

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 = ” ;

#

autre solution :

url encoder ton paramètre dans le fichier de conf

$db_url = ‘mysql://user:password@localhost%3Aport%3A%2Fpath%2Fto%2Fsocket%2Ffile/database’ ;

#

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

#

Je vais regarder tout ça demain. Nota : il est impossible de toucher le php.ini chez 1and1.
Merci beaucoup pour ces pistes.

www.cocardes.com
Maquettes et Photos d’Avions

#

OK, cela fonctionne parfaitement en intégrant le path/to/socket directement dans le fichier de configuration.
merci beaucoup !

www.cocardes.com
Maquettes et Photos d’Avions

#

Peux tu décrire ce que tu as fait concretement ? cela aidera les drupaliens

n’hésite pas à mettre un copier coller de ton fichier «settings.php»

#

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

www.cocardes.com
Maquettes et Photos d’Avions

#

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

Syndiquer le contenu