Problèmes droits dossiers/fichiers suite migration

Bonjour,
Je dois faire une migration d’une installation dolibarr 7.0.3 sur windows (doliwamp) vers Ubuntu 18.04.01LTS.
J’ai bien réussi a installer un Dolibarr 7.0.3 vierge sur Ubuntu via le package dolideb. J’ai du ajouter manuellement des droits à l’utilisateur root@localhost pour la base de donnée qui m’a permis de finaliser l’installation. J’ai bien accès à la page de login de dolibarr.
Mon problème est que j’ai laissé par défaut les chemins d’installation indiqués soit /usr/share/dolibarr/htdocs pour les pages et /var/lib/dolibarr/documents pour les docs.
J’ai bien récupéré mes fichiers sur l’installation windows mais je voudrait être sûr de la meilleure méthode pour procéder à l’installation sur le linux.
En effet, tout d’abord je bute sur le problème des droits, malgré ma session administrateur, pas moyen de copier mes fichiers dans les répertoire sus-nommés car seul l’utilisateur www-data, qui est le propriétaire, a les droits d’écriture. Si j’ai bien tout suivi, cela correspond à apache.
Donc première question:
Comment procéder à la copie des anciens fichiers et écraser les nouveaux? Faut il que je m’attribue les droits sur ces dossiers? Si oui, en passant par le terminal avec un chown? Quelle serait la meilleure syntaxe? Cela va pas bloquer par la suite le bon fonctionnement d’apache?
Deuxième question:
Ne faut il pas que je déplace ces dossiers à un autre endroit (comme le var/www/html pour les pages web) qui semble être plébiscité dans les wikis et forums? Dans ce cas comment procéder pour modifier les chemins dans les composants apache/php/sql? le tout avec les droits qui vont bien pour la sécurité, les backups et les mises à jour.
Merci de prendre du temps pour me répondre, car après avoir parcourus moult forums, tutos, wikis, je commence à saturer et à ne plus comprendre réellement quelle est la « best practice »

Bonjour,

Normalement si vous faite « sudo » avant toute commande vous serrez « root » et donc vous aurez le droit de tout faire.

Pour copier les fichiers : sudo cp /ma_sauvegarde/ /usr/share/dolibarr/htdocs
Pour redonner les bons droits aprés la copie : sudo chown -R www-data:www-data /usr/share/dolibarr/htdocs

Pas besoin de mettre obligatoirement les fichiers dans /var/www/

1 « J'aime »

Merci pour votre réponse, j’ai essayé de mettre l’utilisateur administrateur dans le groupe www-data en me disant que ça allait me permettre de modifier les fichiers sans faire dysfonctionner apache à cause des droits, mais impossible de faire quoi que ce soit sur les dossiers …
Je me suis donc attribué la propriété des dossiers le temps de la copie puis rétabli les droits comme vous me l’avez proposé.
Dans les étapes, faut il modifier le fichier conf.php du dossier web sachant que je passe d’un windows a un linux?
En effet, lorsque j’ouvrais la page dolibarr il ne trouvait pas de dossier c:\dolibarr …
J’ai donc modifié les 2 chemins dans le conf.php mais maintenant si je lance la page localhost/dolibarr/install j’ai une erreur comme quoi il ne se connecte pas à la base. J’ai essayé le couple identifiant/mdp de la base de départ sous windows, puis celui de la base crée à l’installation sous linux dans le conf.php même combat. Pas de connexion, pas de page de login donc pas moyen d’ouvrir le menu restauration afin de restaurer la sauvegarde de base :unsure:
Bref je suis bloqué :blush:
Voilà le message pour localhost/dolibarr:

DolibarrHasDetectedError.
InformationToHelpDiagnose:
Date: 20180917082948
Dolibarr: 7.0.3
PHP: 7.2.7-0ubuntu0.18.04.2
Server: Apache/2.4.29 (Ubuntu)
OS: Linux DOLISERVEUR 4.15.0-34-generic #37-Ubuntu SMP Mon Aug 27 15:21:48 UTC 2018 x86_64
UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0

RequestedUrl: /dolibarr/
Referer:
MenuManager:

DatabaseTypeManager: mysqli
RequestLastAccessInError: ErrorNoRequestInError
ReturnCodeLastAccessInError: ErrorNoRequestInError
InformationLastAccessInError: ErrorNoRequestInError

Message: host=localhost, port=3306, user=XX, databasename=dolibarr, Access denied for user 'XX'@'localhost' to database 'dolibarr'

Dans mon cas je ne comprend pas quel identifiant utiliser, de ce qu je comprend à travers les wiki et tuto, l’emplacement physique de la db se trouve ailleurs que dans les dossiers document et htdocs, J’ai fait l’installation de dolibarr via le package dolideb qui utilise comme serveur sql litghpt ou un truc du genre :tongue: La logique voudrait donc que ce soit cet identifiant créé à l’installation sous linux qui soit utilisé… :dry:

je ferais plutot une install classique
d abord apache2
puis mysql server
config du mot de passe

installer phpmyadmin ss config auto mysql

puis import de la base
puis creer ancien utilisateur et donner droit sur base

j aurais fait plutot une install classique avec lamp

Bonjour,
Le message est explicite, il s’agit d’une question de droit d’accès à la base de données. Les identifiant/mdp sont dans le fichier conf.php. Ceux-ci permettent-ils d’accéder à la base depuis mysql en ligne de commande ou phpmyadmin ?
Le remplacement des fichiers dans /usr/share/dolibarr/htdocs n’est pas nécessaire en principe, ce sont les mêmes que sous Windows.
Par contre, je ne vois rien sur le transfert des données de la base ? Qu’en est-il ?

Bonjour,

Il faut utiliser -p pour preserve

cp -rp

ou un rsync

rsync -a

Pour avoir les options des commandes exemple [code]
rsync --help[/code

Bonjour,
C’est bien mon problème, j’ai essayé les 2 couples ID/mdp et aucun me donnent accès à la base que je suppose vierge puisque je n’ai pu me re-loggé sous dolibarr pour importer ma db.
J’ai essayé d’installer phpmyadmin mais celle ci est bloquée car le compte root@localhost n’est pas autorisé…
J’ai donc essayé à nouveau (car j’ai du le faire lors de l’instal de dolibarr ) de redonner les droits via la commande « sudo mysql » puis « GRANT ALL privileges ON *.* TO root@‹ localhost › IDENTIFIED BY ‹ newrootpass › WITH GRANT OPTION; »
sauf que j’ai du mettre un mdp. Or je ne suis plus ûr de celui ci car il me refuse l’accès. J’ai tenté de le réinitialiser mais j’ai pas réussi. J’ai "error 1045 (28000): access denied for user ‹ root ›@‹ localhost › (using password: NO)
Pour les fichiers web, je dois les copier car certains sont modifiés pour notre application :wink:
Donc je suis pas plus avancé :confused:

Merci pour ces précisions, cependant vu que les fichiers d’origine ont été copiés d’une partition ntfs, les fichiers source n’ont de toute façon pas de droits particuliers.

Bonjour,

Dans ce cas : désinstallation puis re-installation de MYSQL

Bon, je galère à supprimer correctement mysql, visiblement il reste ou manque des bouts. Lorsque je relance l’installation de mysql, il fini par me retourner

E: Sub-process /usr/bin/dpkg returned an error code (1)

Le serveur étant virtualisé, j’ai la possibilité de revenir à un snapshot pris avant que j’écrase les fichiers des dossiers htdocs et document.
Donc dans l’ordre que dois je faire pour que le transfert fonctionne? sachant que j’ai déjà un dolibarr fraichement installé (via dolideb) sur le linux et qui fonctionne, où j’ai juste renseigné un nom d’entreprise.
Je m’attribue la propriété des dossiers htdocs et document de dolibarr
Je copie les 2 dossiers récupérés sous windows dans les dossiers correspondants.
Ensuite?
Je récupère le conf.php de l’installation linux d’origine et je le colle à la place de celui provenant de windows
Je rétablis l’appartenance de ces dossiers à www-data ainsi que les autorisations comme vu plus haut.
J’ouvre la page localhost/dolibarr/install
Je lance l’installation/migration en cliquant sur le dernier bouton en bas de la page
je prie pour que ça marche :tongue:
Ensuite je me logue avec mes identifiants admin de dolibarr (ceux du linux?)
Dans le menu restauration de dolibarr, je récuppère/restaure ma base sqldump effectuée sous windows via là aussi l’interface de dolibarr
Et là normalement bingo, on est bons?
Merci de me confirmer la procédure :whistle:

apt-get install -f

apt-get remove --purge mysql-server mysql-client

puis apt-get install mysql-server mysql-client

tu peux utiliser les commandes de Doudouvs mais n’oubli pas le « sudo » devant

Si avec le snapshot, il était possible d’accéder à la base, c’est là qu’il faut reprendre les codes de l’utilisateur qui accèse à la base.
Et perso, je ne recopierais pas le conf.php du Windows.

C’est ce que j’ai fait :dry:

- désinstallation de mysql-server, mysql-common et phpmyadmin :

apt-get remove --purge mysql-server mysql-common phpmyadmin

- suppression de /var/lib/mysql/*
- suppression de /etc/mysql/*
- suppression du profil mysql de AppArmor (/etc/apparmor.d/usr.sbin.mysqld)
- réinstallation de mysql-common, mysql-server et phpmyadmin

d’après ce forum : suppression mysql

j’ai bien les deux couples id/mdp utilisés par dolibarr (ils sont en clair dans le fichier conf.php) mais il ne voulais pas se connecter ni avec l’un ni avec l’autre :huh:
Là maintenant si je lance la commande mysql j’ai un message :

ERROR 2002 (HY000) can't connect to local mysql server though socket '/var/run/mysqld/mysqld.sock' (2)

De toute façon j’ai eu des erreurs lors de la desinstallation et d’autres à l’instal. C’est pourquoi je m’oriente plus sur le fait de repartir du snapshot avec dolibarr installé vierge. Il faudrait juste me confirmer les étapes :blush:

edite /etc/mysql/my.cnf

modifie :
#bind-address = 127.0.0.1

par :
bind-address = localhost

et restart
/etc/init.d/mysql restart

Ou :
mv /var/run/mysql/mysql.sock /var/run/mysql/mysql.sock.bak
/etc/init.d/mysql restart

regarde ce que syslog raconte

Le dossier /etc/mysql est vide, vu que j’ai tout supprimé :pinch: La réinstallation ne l’a pas recréé :unsure:

Je suis donc reparti sur mon snapshot avant migration, j’ai copié les fichiers du répertoire document avec la commande « sudo cp … » suivie de « sudo chown -R www-data:www-data /usr/share/dolibarr/htdocs ».
J’ai eu un problème de droits dans dolibarr par la suite: Sur la génération de documents, si une version a déjà été générée, j’avais une page blanche et rien n’était régénéré. un « ls -l » sur les dossiers/fichiers faisait apparaitre un s dans les droits. J’ai du faire un « sudo chmod 0755 * » dans chaque dossier pour débloquer le truc sur les fichiers déjà générés et copiés de l’installation Windows.
Sinon après m’être loggé avec mes identifiants temporaires de dolibarr, j’ai été dans restauration, fait la restauration de mon fichier mysqldump.
Reloggé avec mes identifiants d’origine, ça a marché :cheer:
J’ai fait l’upgrade en 8.02->OK
Pour les fichiers web, j’ai du re-modifier les fichiers core/modules de génération via un « sudo nano » pour les adapter à notre besoin car ceux ci semblent avoir été modifiés dans la version 8 par rapport à la version 7, du coup la copie de nos versions 7 modifiées n’aurai pas été pertinente.
Je ne sais pas si dans la roadmap il est prévu une personnalisation des documents générés directement dans dolibarr afin de pas avoir à tapper en dur du code PHP dans les modules et les voir écrasés à chaque mise à jour :dry:
Pour nous il faudrait pouvoir ajouter le N° de projet et sa désignation sur les documents (devis, commande, BL, Facture en client et fournisseurs)

Bonjour,

Si vous suivez ce tutot : https://wiki.dolibarr.org/index.php/Créer_un_modèle_de_document_PDF
Pas de probléme de msie à jour.