Page 1 sur 2

Problème site TUTO MVC mise en ligne OVH

Posté : 07 août 2019, 15:43
par romain34
Bonjour,

J'ai créé un site en suivant les tutoriels "Développer un site" (jour 1 à cette adresse: https://www.grafikart.fr/tutoriels/deve ... onnees-183), qui sont, soit dit en passant, super bien faits.

Mon site est terminé (ça fait deux ans que je bosse dessus en local) et je l'ai uploadé sur mon server OVH (en php 7.2.19, comme mon wamp).
Et là, grosse déception , rien ne fonctionne. Le css n'est pas pris en compte, aucun lien ne fonctionne (j'obtiens des File not found. à chaque fois). J'ai essayé pas mal de choses, rien à faire.

Je fais mes liens grâce à deux fonctions, Router::url et Router::webroot, qui finissent toutes les deux par retourner BASE_URL.$url sachant que BASE_URL vaut dirname(dirname($_SERVER['SCRIPT_NAME'])). et est initialisé dans un fichier index.php dans un dossier webroot/index.php

Ce qui est étonnant c'est que les images sont bien affichées (avec ce code:

Code : Tout sélectionner

<img src="<?php echo Router::webroot('img/img.png'); ?>" alt="machin" />
Mais les liens css

Code : Tout sélectionner

<link rel="stylesheet" type="text/css" href="<?php echo Router::webroot('webroot/css/style.css'); ?>" />
ne fonctionnent pas (enfin dans le code de la page, quand je clique dessus, je vois bien le css mais les styles ne sont pas appliqués...)

Et les liens sont faits comme ça:

Code : Tout sélectionner

<a href="<?php echo Router::url('homepage/index'); ?>">Page d'accueil</a>
J'ai bien mis en place les .htaccess comme indiqué dans le tuto.

Une idée?
Merci!

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 07 août 2019, 15:52
par Saian
Bah j'imagine qu'en local tu testais ton site en faisant du localhost/webroot (où dans le genre) et que en ligne tu es directement sur le nom de domaine sans sous répertoire ? Faut juste que tu corriges tes adresses en fonction de ça non ?

PS : à priori étant donné le nom de dossier webroot, je suppose que l'alias ou le nom de domaine devrait pointer sur ce répertoire. Et les chemins devraient donc être donnés sans le webroot (<?php echo Router::webroot('css/style.css'); ?>).
Pour les urls, regarde les chemins générés et compare les à ce qu'ils devraient être pour comprendre pourquoi ils ne fonctionnent pas.

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 07 août 2019, 16:27
par romain34
Hello!
Merci de te réponse :)
Dans le tuto, on mettait en place un .htaccess qui redirige tout vers le webroot.

RewriteEngine on
RewriteRule (.*) webroot/$1 [L]

Donc je ne pense pas que ce soit ça...

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 07 août 2019, 16:34
par Saian
Ça sous entendrait que le répertoire principal est le répertoire parent de webroot, d'accord...
En tout cas si les styles ne s'appliquent pas c'est que la CSS n'est pas chargée, donc à priori que le chemin vers la CSS n'est pas bon.
As tu au moins essayé de virer webroot du chemin et voir si c'est bon ? parce que tu penses pas que ce soit ça mais si ça fonctionne tu m'en dois une ! ^^
Et pour la question du sous répertoire dans tes tests en local VS le nom de domaine en directe pour le site en ligne, tu ne confirmes ni n'infirmes, qu'en est il ?

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 07 août 2019, 16:51
par romain34
Alors, j'ai essayé Router::webroot('css/style.css') mais ça ne fonctionne pas mieux. En local, les deux fonctionnent (avec ou sans webroot devant, étrange?)
En local, quand je regarde le code source de page, ça met: `<link rel="stylesheet" type="text/css" href="\css/style.css" />`
sur OVH ça met: `<link rel="stylesheet" type="text/css" href="/css/style.css" />`
Il y a une différence au niveau du slash mais je ne sais pas si ça joue...

C'est étrange en plus, le css a l'air chargé puisqu'il met un code 200 OK dans la console de développement de Firefox.

Pour l'arborescence du site ça fait:
racine -> webroot -> index.php et des dossiers js, css, img, ...
racine -> view
racine -> controller
racine -> core

Sur OVH, je met tout ça dans un dossier appelé www.

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 07 août 2019, 16:59
par Saian
Bah pour moi vu comment réagit la méthode Router::webroot ça confirmerait que c'est le dossier webroot qui devrait être le dossier sur lequel pointe la configuration du nom de domaine. Sinon en l'occurrence la méthode devrait retourner /webroot/css/styles.css. L'avantage c'est qu'à part les fichiers présents dans webroot, aucun autre fichier n'est accessible directement via url.
Mais avec le htaccess je dis pas, peut être as tu justement et tout simplement un problème de rewrite mod qui n'est pas activé ?

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 07 août 2019, 18:59
par romain34
Peut-être oui, comment le savoir?
J'ai bien mis un
RewriteEngine On
RewriteRule (.*) webroot/$1 [L]
dans le htaccess...

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 08 août 2019, 11:01
par Saian
Salut, en faisant un phpinfo(); tu devrais trouver mod_rewrite dans les loaded modules si il est bien activé.

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 08 août 2019, 14:33
par romain34
J'ai fait le php info, aucune trace de mod_rewrite (alors qu'en local il y est bien). Mais je n'ai pas la partie "Loaded Modules " sur OVH (alors que je l'ai bien en local).

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 08 août 2019, 14:42
par Saian
C'est quoi ton hébergement OVH ? mutualisé ? dédié ? d'après le site d'OVH, en mutualisé il faut bien passer par le .htaccess pour l'activer mais il n'est pas disponible sur les mutualisés 20gp.
https://docs.ovh.com/fr/hosting/htacces ... d-rewrite/

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 08 août 2019, 14:49
par romain34
J'ai un mutualisé oui, mais aucune idée sur je suis 20gp ou non...
EDIT: bon apparemment, j'ai une offre "perso". Je ne sais pas du coup si l'url_rewriting est activé ou pas. Je discute en chat actuellement avec un des conseillers.

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 08 août 2019, 15:01
par romain34
Visiblement je serai en Apache 2.4 avec le mod_rewrite activé.
Edit: le module est bien activé, aucune erreur possible, le conseiller m'a montré la liste des modules Apache activés sur mon cluster.

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 08 août 2019, 15:06
par Saian
Bah pour vérifier tu peux faire un test simple comme suggéré sur la doc OVH. Tu crées un fichier de test (testing.php) avec ce que tu veux dedans (hello) et tu rediriges tout dessus. Et tu testes /une-adresse voir si elle te redirige bien sur ta page de test.
RewriteEngine On
RewriteRule .* testing.php

Peut être avec un [L] pour être sûr qu'il sort après la règle.
RewriteRule .* testing.php [L]

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 08 août 2019, 15:19
par romain34
Je ne sais pas vraiment si ça fonctionne... En tout cas mon site a l'air d'être bien redirigé vers ma page index.php qui se trouve dans le dossier webroot.
Je te mets le lien d'ailleurs: http://naboombu.fr/

Re: Problème site TUTO MVC mise en ligne OVH

Posté : 08 août 2019, 15:26
par Saian
En train de batailler dessus non ? il s'est bien affiché à un moment.

Il semble que la réécriture fonctionne oui mais par contre un problème de type mime avec tous les fichiers css.
La feuille de style http://naboombu.fr/css/main.css n’a pas été chargée car son type MIME, « application/x-httpd-php », n’est pas « text/css ».

Une règle de réécriture qui modifie le type mime ?