You are not logged in.
Bonjour,
Je cherche à migrer l’application glpi de la version 0.83.1 vers la version 0.85.1
Ci-dessous les informations système :
Operating system : Linux <nomserveur> 2.6.32-504.8.1.el6.x86_64 #1 SMP Wed Jan 28 21:11:36 UTC 2015 x86_64
PHP 5.3.3 (Core, PDO, Phar, Reflection, SPL, SimpleXML, apache2handler, apc, bz2, calendar, ctype, curl, date, dom, ereg, exif,
fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, json, ldap, libxml, mbstring, mysql, mysqli, openssl, pcre, pdo_mysql,
pdo_pgsql, pdo_sqlite, pgsql, session, shmop, sockets, sqlite3, standard, tokenizer, wddx, xml, xmlreader, xmlwriter, xsl, zip,
zlib)
Setup: memory_limit="128M" max_execution_time="600" safe_mode="1" session.save_handler="files" post_max_size="10M"
upload_max_filesize="10M"
Software: Apache ()
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)
MySQL: 5.1.73 (mysqladmin@localhost/glpi)
../config : OK
../files : OK
../files/_dumps : OK
../files/_sessions : OK
../files/_cron : OK
../files/_cache/ : OK
../files/_graphs : OK
../files/_log : OK
L’application est installée sur un serveur Lamp qui comporte plusieurs instances dont une pour glpi.
Il y a un serveur mysql propre à chaque instance avec un chemin de socket « /<instance>/mysqld/mysql.sock ».
TCP/IP est désactivé sur le serveur.
Lorsque je fais la mise à jour, j’ai un message d’erreur :
A link to the Mysql server could not be established. Please check your configuration.
Le serveur Mysql est inaccessible. Vérifiez votre configuration.
En passant display_errors à On, j’ai les précisions suivantes :
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /inst-glpi/apache/glpi/inc/dbmysql.class.php on line 109
Si je crée un lien symbolique entre le bon chemin de socket « /<instance>/mysqld/mysql.sock » et « /var/lib/mysql/mysql.sock », la connection se fait bien et je peux réaliser la migration mais dès que je supprime ce lien symbolique, la connexion est bien sûr impossible.
Je crois voir que cela vient des modifications apportées dans la classe DBmysql depuis la version 0.83.1 mais comment peut-on configurer glpi pour indiquer le bon chemin de socket ? Merci beaucoup si vous pouvez m’éclairer.
Offline
Un simple rgrep "var/lib/mysql" * à la racine du répertoire de glpi te permettra d'en être fixé.
- SoluTek.fr - | occasional plugin contributor
GLPI 9.3.1
Windows 2016 - IIS Reverse Proxy - HTTPS/Let's Encrypt | Apache 2.4.33 / PHP 7.1.16
Offline
Bonjour et merci pour cette réponse mais justement pas de trace de ce chemin par défaut dans les fichiers de glpi.
J'ai modifié le fichier inc/dbmysql.class.php pour indiquer le bon chemin dans $this->dbh = new mysqli($host, $this->dbuser, rawurldecode($this->dbpassword), $this->dbdefault,0,'/<nom_de_l'instance>/mysqld/mysql.sock');
et cela fonctionne. Mais je voulais savoir s'il y avait une procédure plus officielle pour éviter de "bidouiller" les fichiers. Merci
Offline
La base de données MySQL est définie dans le fichier glpi/config/config_db.php
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour,
En effet, la base de données est bien définie dans le fichier glpi/config/config_db.php.
On a les éléments host, user, password et base mais pas le socket.
Si on reprend la modification faite dans le fichier inc/dbmysql.class.php ($this->dbh = new mysqli($host, $this->dbuser, rawurldecode($this->dbpassword), $this->dbdefault,0,'/<nom_de_l'instance>/mysqld/mysql.sock');), c'est le dernier élément qui permet que cela fonctionne parce qu'il "écrase" le chemin du socket par défaut qui est '/var/lib/mysql/mysql.sock' .
Merci
Offline