web:vm-install

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
web:vm-install [2023/12/24 14:43] – [Résolution des erreurs] jcheronweb:vm-install [2023/12/24 15:33] (Version actuelle) – [Bonnes pratiques] jcheron
Ligne 120: Ligne 120:
 ===== Résolution des erreurs ===== ===== Résolution des erreurs =====
 Il est probable que votre site vous délivre dans un premier temps une ''erreur 500'' Il est probable que votre site vous délivre dans un premier temps une ''erreur 500''
-<html><div class="imageB"></html>{{:web:pasted:20231224-144326.png}}<html></div></html>+<html><div class="imageB"></html>{{:web:pasted:20231224-144326.png?400}}<html></div></html>
  
-c'est votre code source qui en est à l'origine.+c'est votre code source qui en est à l'origine, il vous faut trouver la ou les erreurs, en examinant les logs apache relatifs à votre site : 
 + 
 +Ils sont situés dans le fichier que vous avez spécifié dans la configuration du vhost : 
 +<sxh bash;gutter:false> 
 +/var/log/apache2/mysite_error.log 
 +</sxh> 
 + 
 +==== Erreur courantes ==== 
 +=== Redéclaration === 
 + 
 +<sxh bash;gutter:false> 
 +PHP Fatal error:  Cannot redeclare yaml_parse_file() 
 +</sxh> 
 + 
 +<WRAP info> 
 +== Diagnostic : == 
 +L'extension **yaml** est installée avec le php de la VM. La fonction déclarée dans le fichier **yaml** ne doit donc plus l'être (ou de manière conditionnelle). 
 +</WRAP> 
 + 
 +<WRAP todo> 
 +== Résolution : == 
 + 
 +<sxh php;title:yaml.php;highlight:4> 
 +use Symfony\Component\Yaml\Yaml; 
 +use Symfony\Component\Yaml\Exception\ParseException; 
 + 
 +if (!function_exists('yaml_parse_file')) { 
 +    function yaml_parse_file($file){ 
 +     try { 
 +     return Yaml::parseFile($file); 
 +     } catch (ParseException $exception) { 
 +     printf('Unable to parse the YAML string: <b>%s</b>', $exception->getMessage()); 
 +     } 
 +    } 
 +
 +</sxh> 
 +</WRAP> 
 +=== Chemins === 
 +<sxh bash;gutter:false> 
 +Warning: include(/test/assets/header.php) [function.include]: failed to open stream: No such file or directory 
 +</sxh> 
 +<WRAP info> 
 +== Diagnostic : == 
 +Le chemin n'a pas été trouvé pour le fichier à inclure dans le script php... 
 +</WRAP> 
 +<WRAP todo> 
 +== Résolution : == 
 +Vérifier le chemin et l'exprimer relativement au fichier php actuellement exécuté, en faisant attention à la **casse** (Linux contrairement à Windows fait la différence entre majuscules et minuscules). 
 +</WRAP> 
 + 
 +=== Images/CSS === 
 +<WRAP info> 
 +== Diagnostic : == 
 + 
 +Pas d'erreur côté serveur en php dans les logs, mais les images ou feuilles de style css ne sont pas prises en compte. 
 + 
 +La raison est vérifiable en regardant la partie **network/Réseau** de la console du navigateur : 
 + 
 +<html><div class="imageB"></html> 
 +{{:web:pasted:20231224-151440.png?500}} 
 +<html></div></html> 
 +</WRAP> 
 +<WRAP todo> 
 +== Résolution : == 
 +Vérifier les chemins et les exprimer en absolu par rapport à la racine du vhost (**DocumentRoot** déclaré), en faisant attention à la **casse** (Linux contrairement à Windows fait la différence entre majuscules et minuscules). 
 +</WRAP> 
 + 
 +==== Bonnes pratiques ==== 
 +<WRAP todo> 
 +  * **index.php** doit se trouver à la racine du projet 
 +  * Le fichier **composer.json** permettant d'inclure les librairies doit être en un seul exemplaire à la racine du projet, et il faut installer ces librairies sur la VM : 
 + 
 +<sxh bash;gutter:false;title: A exécuter depuis le root du projet> 
 +composer update 
 +</sxh> 
 +  * Le dossier **vendor** de composer ne doit pas être publié sur le repository et être ajouté dans le **.gitignore** 
 +  * Eviter les chemins à rallonge totalement inutiles (ie. ''/portfolio/docs/php/site/...''
 +</WRAP>
  
 ===== MariaDb ===== ===== MariaDb =====
  • web/vm-install.1703425417.txt.gz
  • Dernière modification : il y a 16 mois
  • de jcheron