config php, open_basedir, documents et htdocs...

Bonjour à tous,

Après deux jours de tests, en désespoir de cause, et après avoir cherché sur ce forum, je me tourne vers vous…
Je découvre Dolibarr et souhaite le proposer à certains de mes clients comme base de gestion.
Je n’arrive plus à l’installer sur mon VPS (linux, mysql, php7, https), alors que, deux jours auparavant tout c’était parfaitement déroulé.
En local aucun souci.

Actuellement donc, suivant les instructions présentes sur Git :
- je clone le dépôt git dans un répertoire sur mon vps (chez phpnet.org) : ok
- je crée le confi/config.php : ok
- je lance l’installation https://dolibarr.mondomaine.com/install (qui pointe sur dolibarr/htdocs) : ok
- configuration de la bdd (testé aussi avec pdo sur un script à part) : ok
- step1.php : ko

Voici l’erreur :

Warning: is_dir(): open_basedir restriction in effect. File(/home/www/site/doliv10/documents) is not within the allowed path(s): (/home/www/site/doliv10/htdocs:/etc/phpnet-php/php72-x86_64/lib/php:/dev/urandom:/usr/share/php:/tmp/:/home/php-upload/:/usr/local/lib/ioncube) in /home/www/site/doliv10/htdocs/install/step1.php on line 388

Warning: is_dir(): open_basedir restriction in effect. File(/home/www/site/doliv10/documents) is not within the allowed path(s): (/home/www/site/doliv10/htdocs:/etc/phpnet-php/php72-x86_64/lib/php:/dev/urandom:/usr/share/php:/tmp/:/home/php-upload/:/usr/local/lib/ioncube) in /home/www/site/doliv10/htdocs/install/step1.php on line 393
Le répertoire /home/www/site/doliv10/documents n'existe pas ou n'est pas accessible. Vous devez créer ce dossier et permettre au serveur web d'écrire dans celui-ci.

J’ai donc créé le répertoire « documents » à la racine du projet, je lui ai même donné les droits chmod « 777 », par dépit et après tellement de tests, mais rien à faire ça ne passe pas.

J’ai donc vu que l’on pouvait « forcer » l’installation en créant le fichier « htdocs/install/install.forced.php », ça passe en effet mais…

A ce stade, c’est la connexion qui coince :

Warning: mysqli::__construct(): (HY000/2002): No such file or directory in /home/www/site/doliv10/htdocs/core/db/mysqli.class.php on line 205
Echec de la connection au serveur de base de données. Vérifier que votre serveur est bien lancé (par exemple, avec MySQL/MariaDB, vous pouvez le lancer depuis la ligne de commande avec 'sudo service mysql start').

"note : petite faute d’orthographe sur « connexion ».
"note 2 : Vérifiez que votre serveur…

Sauf que ma connexion passe si je la teste avec PDO.

Alors si je parle du souci avec le répertoire « documents » et de celui avec la connexion c’est que les deux sont arrivés en même temps.
Sur ma toute première installation tout c’était parfaitement déroulé. Est-ce lié… Ne sais po.

J’espère vous avoir donné suffisamment de détails et que vos lumières pourront éclairer l’obscurité qui commence à m’envahir.

Merci à vous,
Stéphane

Je viens de trouver, donc au cas où ça pourrait aider quelqu’un d’autre, voici la solution.

La clé est : « open_basedir restriction in effect », qui :
est une mesure de sécurité en mode sans échec qui empêche les utilisateurs d’ouvrir des fichiers ou des scripts situés en dehors de leur répertoire de base

Effectivement en pointant sur :
dolibarr/htdocs
impossible d’ouvrir :
dolibarr/documents
du moins avec la config du VPS de phpnet.org

Il suffit donc de pointer sur :
dolibarr/
et tout est ok.

Bonjour
Oui mais si vous pointez sur dolibarr, alors documents sera visible sur le web. Attention à la sécurité !
C’est openbasedir qu’il faut paramétrer dans la configuration De pop.
@+

Bonjour,

Ah oui bien vu…
Mais qu’entendez-vous par configuration de De pop ?

Merci pour votre retour.

Sans doute PHP (erreur de frappe) :wink:

Saleté de correcteur auto :happy:
Merci, je vais regarder de ce côté là.

:blush: désolé pour la faute de frappe. Oui c’est php
@+

Merci surtout d’avoir pris le temps de m’aiguiller.

Donc je pointe à nouveau sur htdocs, c’est effectivement nécessaire.

J’ai compris que je pouvais, en théorie, changer le paramètre de configuration grâce à un .htaccess et y inclure la directive :
php_value avec comme option open_basedir

En plaçant ce .htaccess dans « htdocs » et en lui donnant la valeur :
php_value open_basedir « /home/www/sites/dolibarr »
Je pensais être bon.

Mais ça ne fonctionne pas, impossible de remonter malgré tout.

Pensez-vous que mon raisonnement soit correcte ?
Et si oui, alors il semblerait que open_basedir ait été désactivé dans le httpd.conf (auquel cas je ne pense pas avoir accès puisque sur un VPS, à voir avec mon hébergeur).

Si non, super, en quoi me suis-je trompé ?

Merci pour votre aide.
Stéphane

Pour ceux qui auraient aussi ce genre de souci, le raisonnement précédent est correcte.

Il faut effectivement pouvoir remonter d’un cran par rapport au nom de domaine et c’est faisable par le htaccess sauf avec un serveur mutualisé (serveur mutualisé, pas offre mutualisée).
Dans ce cas là, du moins chez mon hébergeur, je peux alors simplement retirer la restriction en décochant une case.

Donc tout fonctionne.

PS : je viens de voir que le sujet n’est pas sur le bon forum, je ne peux pas le déplacer.