Probleme require avec sous domaine

Petit nouveau ! | 6 Messages

01 mai 2015, 12:47

Bonjour,

Je suis débutant en php

Mon site est http://www.trains-du-monde.com

Il est hébergé chez OVH en mutualise web
La racine est dans /www/

Pour afficher mon header et mon footer j'utilise require :
<?php require $_SERVER['DOCUMENT_ROOT'] .'/Header.php';?>
<?php require $_SERVER['DOCUMENT_ROOT'] .'/Footer.php';?>

Quand je rentre par mon domaine tout marche meme avec le .fr

J'ai créé un sous domaine : http://trains-luxe.trains-du-monde.com/
Je l'ai redirigé vers /www/Trains-Monde/Trains-Luxe-Monde

Le dossier racine créé par OVH est : /homez.55/trainsdu/www/Trains-Monde/Trains-Luxe-Monde

Quand je rentre par le sous domaine, j'obtiens le message d'erreur suivant :
Warning: main(/homez.55/trainsdu/www/Trains-Monde/Trains-Luxe-Monde/Header.php) [function.main]: failed to open stream: No such file or directory in /home/trainsdu/www/Trains-Monde/Trains-Luxe-Monde/index.php on line 21

Fatal error: main() [function.require]: Failed opening required '/homez.55/trainsdu/www/Trains-Monde/Trains-Luxe-Monde/Header.php' (include_path='.:/usr/local/lib/php') in /home/trainsdu/www/Trains-Monde/Trains-Luxe-Monde/index.php on line 21

J'ai cherché partout. Je n'ai rien trouvé!
Le support d'OVH m'a jeté en me disant que le probleme venani du script. Sur leur forum, pas de réponse

Merci de m'aider

Cordialement

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

01 mai 2015, 13:12

Bonjour,

Le message d'erreur est relativement explicite :
Le fichier Header.php est introuvable dans le répertoire :

Code : Tout sélectionner

/homez.55/trainsdu/www/Trains-Monde/Trains-Luxe-Monde/
Ce qui, d'après ce que je comprends de tes explications, est exact vu que tu as mis tes fichiers header et footer dans le répertoire

Code : Tout sélectionner

/homez.55/trainsdu/www/
Il faut donc que tu adaptes le chemin utilisé dans tes require pour qu'ils pointent vers le bon répertoire où se trouve tes fichier (ou que tu dupliques tes fichiers header/footer pour chaque sous-domaine, à toi de voir le plus pratique).
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 6 Messages

01 mai 2015, 14:13

Merci pour cette réponse

N'y a t il pas une manière d'automatiser cela car je compte faire des sous domaines pour un certain nombre de sujets

Merci

Cordialement

Petit nouveau ! | 6 Messages

01 mai 2015, 14:23

J'ai mis Header.php dans le répertoire /www/Trains-Monde/Trains-Luxe-Monde/
Ca ne marche pas

Je ne comprends pas

Mammouth du PHP | 688 Messages

01 mai 2015, 15:00

tu peux mettre
/homez.55/trainsdu/www/
dans ton require, peu génant si tu n'exécutes le php que chez ovh.

Petit nouveau ! | 6 Messages

01 mai 2015, 15:19

Je viens d'essayer et voici le message :

Warning: main(/homez.55/trainsdu/www/Trains-Monde/Trains-Luxe-Monde/Header.php) [function.main]: failed to open stream: No such file or directory in /home/trainsdu/www/Trains-Monde/Trains-Luxe-Monde/index.php on line 21

Fatal error: main() [function.require]: Failed opening required '/homez.55/trainsdu/www/Trains-Monde/Trains-Luxe-Monde/Header.php' (include_path='.:/usr/local/lib/php') in /home/trainsdu/www/Trains-Monde/Trains-Luxe-Monde/index.php on line 21

Avatar du membre
Mammouth du PHP | 1609 Messages

02 mai 2015, 14:39

Salut, il semblerait que le bon chemin commence par /home/ et non /homez.55/ d'après les messages d'erreur.
Développeur web depuis + de 20 ans

Petit nouveau ! | 6 Messages

02 mai 2015, 15:01

Merci pour tes efforts mais ca ne marche ps non plus et en plus dans ce cas ca ne marche plus non plus avec l'url normale

http://www.trains-du-monde.com/Trains-M ... uxe-Monde/

Avatar du membre
Mammouth du PHP | 1609 Messages

02 mai 2015, 16:10

D'accord donc c'est bien /homez.55/.

Pourquoi ne pas simplement faire ça ?
define('TPL_DIR', '/homez.55/trainsdu/www/');
require TPL_DIR.'Header.php';
Tu peux toujours mettre le define dans un fichier de configuration pour lequel tu adapteras le chemin du require en fonction que tu es sur le domaine principal ou un sous domaine.

EDIT : ceci dit si ça fonctionne, tu auras ensuite des problèmes d'accès vers tes images car je suppose que le répertoire /Images n'est pas présent dans le dossier du sous domaine (dans ce cas il serait peut être possible de faire un lien symbolique) et tu auras probablement des problèmes avec tes liens (qui te renverront sur le domaine principal au lieu de rester dans le sous domaine).
Si ça fonctionne pas, c'est à priori que OVH n'autorise pas à faire de require sur un répertoire parent du répertoire du sous domaine.
Développeur web depuis + de 20 ans

Petit nouveau ! | 6 Messages

02 mai 2015, 20:46

Ca ne marche pas car quand je passe par mon chemin de site de base j'ai une fatale erreur

Pour moi mon sous domaine c'est juste pour avoir ue entrée plus directe et améliorer le référencement

Je vais laisser tomber
Moi je pensais en débutant que dans la mesure où je pointais sur un répertoire, la page index de ce répertoire ce comporterais de la même façon via l'url du sous domaine que celle du domaine principal

Ca n'est pas le cas donc je vais supprimer mes sous domaines

Cordialement

Merci pour tout