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:41] – [Création VHost] jcheronweb:vm-install [2023/12/24 15:33] (Version actuelle) – [Bonnes pratiques] jcheron
Ligne 119: Ligne 119:
  
 ===== Résolution des erreurs ===== ===== Résolution des erreurs =====
 +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?400}}<html></div></html>
 +
 +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.1703425312.txt.gz
  • Dernière modification : il y a 16 mois
  • de jcheron