PnEcrins / FollowDem

Cartographic web application to track moving objects equipped with a GPS.
http://bouquetins.ecrins-parcnational.fr
GNU General Public License v3.0
21 stars 11 forks source link

Hébergement sur serveur mutualisé - 500 Internal Error #14

Closed camillemonchicourt closed 9 years ago

camillemonchicourt commented 9 years ago

Nous avons essayé d'installer l'appli sur un hébergement mutualisé basique OVH. On a posé l'appli à la racine, créé et connecté la BDD MySQL. On a aussi modifié les fichiers /config/config.php, /config/carto.php et /classes/controler/controler.class.php

Cependant l'appli renvoie une page blanche, vide et la console une 500 Internal Error.

@nienfba une idée ?

gildeluermoz commented 9 years ago

Mattez les logs apache s'ils sont dispo, voir si le .htaccess est toléré sur l'hébergement, voir si ce qu'il contient est compatible avec ce qu'autorise ovh. Rechercher avec grep -rn '/var/www' si il n'y a pas de la conf en dur qui traine. Voir si le mode rewrite est activé/activable. Comparer les info.php des deux serveurs : global settings, version PHP, ou n'importe quel service utilisé qui manquait ou qu'illustrateur faille activer via le htaccess justement. Bon courage.

Envoyé de là où je me trouve...

camillemonchicourt commented 9 years ago

En effet, on a accès à rien sur le serveur mutualisé. Pas de logs du serveur notamment... On peut pas faire de GREP. On ne se connecte qu'en FTP... On va creuser le reste, le rewrite, la conf des serveurs. Merci !

nienfba commented 9 years ago

Quel est le type de l'hébergement OVH ? Mutu perso, pro, autre ? L'application n'est pas optimisé pour ce type d'hébergement MAIS elle devrait fonctionner. Le seul problème pour moi proviendrait de l'URL rewriting (donc fichier .htaccess). Premier essai à faire, le renommer en .htaccess.OLD. Pouvez-vous me passer sur mon email l'URL du serveur et un accès FTP que je regarde.

camillemonchicourt commented 9 years ago

Oui c'est justement pour voir si l'appli peut passer sur un serveur de base. Et adapter notre doc en fonction. A priori le mod_rewrite est activé sur les mutualisés OVH mais je laisse @romthi38 compléter et t'envoyer les infos. Merci.

nienfba commented 9 years ago

Le problème pourrait venir de qq chose comme ça dans le .htaccess :

RewriteRule ^([a-z]{2})/pages/([a-zA-Z0-1_-]+).html$ /index.php?controler=controler&action=get_page&langue=$1&params=page-$2 [NC,L,QSA]
RewriteRule ^([a-zA-Z_-]+)/([a-zA-Z_-]+)$ /index.php?controler=$1&action=$2 [NC,L,QSA]
RewriteRule ^([a-zA-Z_-]+)/([a-zA-Z_-]+)/([a-zA-Z0-9_-]+)$ /index.php?controler=$1&action=$2&params=$3 [NC,L,QSA]

à remplacer peut-être par ça (suppression du / devant index.php)

RewriteRule ^([a-z]{2})/pages/([a-zA-Z0-1_-]+).html$ index.php?controler=controler&action=get_page&langue=$1&params=page-$2 [NC,L,QSA]
RewriteRule ^([a-zA-Z_-]+)/([a-zA-Z_-]+)$ index.php?controler=$1&action=$2 [NC,L,QSA]
RewriteRule ^([a-zA-Z_-]+)/([a-zA-Z_-]+)/([a-zA-Z0-9_-]+)$ index.php?controler=$1&action=$2&params=$3 [NC,L,QSA]
nienfba commented 9 years ago

Attention l'application nécessite de la ressource en base lorsque l'on veut récupérer de nombreuses données. Il y aura certainement une optimisation des requêtes et de la base de données (index... je ne sais plus ce qui est fait là dessus) à faire pour un fonctionnement optimal sur ce type d'hébergement. Mais oui l'appli devrait y être fonctionnelle sans problème, pas de code ou autre élément non compatible.

romthi38 commented 9 years ago

J'ai modifié le .htaccess et ça ne marche toujours pas.

camillemonchicourt commented 9 years ago

Merci pour les astuces. Donc c'était bien le chemin vers l'appli $config['rep_appli'] = '....' qu'on avait mal renseigné.

nienfba commented 9 years ago

La correction dans le .htaccess est bien nécessaire pour les hébergement OVH. Il faudra gérer un rewritebase. Sinon le problème d'erreur 500 vient d'OVH qui n'affiche pas les erreurs PHP. Il faut activer ces erreurs :

     ini_set('display_errors',1);

Et enfin l'erreur venait de la définition du répertoire de base de l'application. Dans le fichier config.inc.php ligne 114. Il faut renseigner le répertoire complet du serveur (depuis la racine jusqu'à l'application) et non le répertoire www/ seulement :

/**
*   Répertoire où se trouve l'application sur le serveur
*
*   @var    string
*/
$config['rep_appli'] = '';
camillemonchicourt commented 9 years ago

Sinon on enlève le / pour tout le monde et ça devrait fonctionner sur OVH et ailleurs ainsi, non ?

nienfba commented 9 years ago

malheureusement ce n'est pas si évident que ça. Il vaut mieux le laisser et écrire un rewritebase :

 <IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
     #ou (devrait marcher aussi avec le RewriteBase)
   RewriteRule . index.php [L]
 </IfModule>

ou alors définir des variables et s'en servir. Permert ici de gérer 2 Bases de réécriture selon le site en production et le site en

   # Activation of the URL Rewriting
   Options +FollowSymlinks
   RewriteEngine On

   # RewriteBase equivalent - Production
   RewriteCond %{HTTP_HOST} !^localhost$
   RewriteRule . - [E=REWRITEBASE:/production/path/]

   # RewriteBase equivalent - Development
   RewriteCond %{HTTP_HOST} ^localhost$
   RewriteRule . - [E=REWRITEBASE:/development/path/]

   # Rewriting
   RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]