F.A.Q. PHP
- 1. Extension Curl - Erreur "Le module spécifié est introuvable"
- 2. Erreur "La session PHP a été vidée"
- 3. Connaître les valeurs de différentes variables PHP
- 4. Connaître la version de PHP installée
- 5. Connaître la localisation du fichier PHP.INI
- 6. Modification de la taille d'upload autorisé
- 7. Modification du temps d'exécution des scripts (max_execution_time)
- 8. Problème de chargement des extensions (Windows)
- 9. Erreur de chargement Libmcrypt.dll et Ssleay32.dll (Windows)
- 10. Fichier d'erreur PHP.LOG non généré
- 11. Où se trouve le répertoire des extensions de PHP
- 12. Erreur : Fatal error: Call to undefined function ImageCreateFromPng()
- 13. Erreur : Unable to fork...
- 14. Erreur : Warning: mktime(): It is not safe to rely on the system's timezone settings
- 15. Les extensions LDAP et/ou OPENSSL ne se chargent pas
1. Extension Curl - Erreur "Le module spécifié est introuvable"
L'extension Curl est utilisée par les applications QALITEL dans différents contextes. Si au démarrage de votre serveur Web vous constatez dans le fichier d'erreur de PHP (PHP.LOG) l'erreur "PHP Startup: Unable to load dynamic library 'curl' (tried: C:\php-7.3.13-VC15-x64\ext\curl (Le module spécifié est introuvable.)" assurez vous dans un premier temps que l'extension Curl est bien activée dans le fichier PHP.INI :
extension=curl
(Si en début de ligne vous avez un ; supprimez le, enregistrez votre fichier PHP.INI puis redémarrez votre serveur Web Apache ou IIS)
Si vous rencontrez toujours l'erreur, sopiez les fichiers suivants dans le répertoire BIN d'Apache.
(Ces fichiers sont présents dans le répertoire de PHP)
- libcrypto-1_1-x64.dll
- libssh2.dll
- libssl-1_1-x64.dll
(la fin des noms des DLL peuvent légèrement variés selon les versions de PHP)
Une fois les fichiers copiés, redémarrez votre serveur Web Apache ou IIS.
2. Erreur "La session PHP a été vidée"
Cette erreur est tracée dans le fichier d'erreur de PHP et visible via les applications QALITEL par le menu "QALITEL - Informations d'installation" (100 dernières lignes du PHP.LOG sont affichées).
Si l'erreur fait référence à la variable max_input_vars, c'est que sa valeur est trop faible.
Pour modifier cette variable, suivez les étapes suivantes :
- Accédez au fichier PHP.INI
- Recherchez la variable : max_input_vars
- Fixez sa valeur à 4000 (Par défaut cette variable est fixée à 1000)
- Si la ligne est précédée d'un ; supprimez le
max_input_vars = 4000
- Rédemarrez ensuite le serveur Web (Apache - IIS)
3. Connaître les valeurs de différentes variables PHP
Dans les différentes applications QALITEL, vous disposez d'un menu "? - Informations logiciel". La page qui vous est proposée vous propose 3 grandes catégories d'informations :
- Données d'installation et de mise à jour des applications QALITEL / Epistolaire.
- Fichier d'erreur de PHP
- Paramètres de votre version de PHP - PHPINFO
4. Connaître la version de PHP installée
Pour connaître la version de PHP installée sous laquelle tournent vos applications QALITEL, vous pouvez soit vous rendre sur le serveur et regarder le paramétrage soit à partir des applications QALITEL par le menu "? - Informations logiciel".
Vous accédez alors à une page reprenant différentes caractéristiques techniques comme montré ci-dessous.
Entête de la page d'informations logiciel
Tableau spécifiant la version de PHP installée
Pour disposer de plus d'informations sur la configuration de PHP, vous pouvez cliquer sur le lien [+d'infos]
5. Connaître la localisation du fichier PHP.INI
Le fichier PHP.INI est le fichier de paramétrage du PHP et contient les différentes variables nécessaire à son focntinnement. Après modification de ce fichier, il est nécessaire de redémarrer votre serveur Web (Apache ou IIS) pour la prise en compte des nouveaux paramétrages. (Il n'est pas nécessaire de redémarrer le serveur physique mais uniquement le serveur Web).
Pour connaître la localisation du fichier PHP.INI, accédez à la page "? - Informations logiciel" de votre application QALITEL / Epistolaire puis rehcerchez le texte "PHP.INI" dans la page. Vous accéderez alors à la ligne "Loaded Configuraiton File" vous indiquant le répertoire et le nom précis de votre fichier PHP.INI
6. Modification de la taille d'upload autorisé
La taille maximale des fichiers que le serveur Web autorisera à uploader (envoi des fichiers par les utilisateurs sur le serveur Web) est définie dans le fichier php.ini (voir ci-dessus pour connaître sa localisation).
Ouvrez le fichier PHP.INI avec un éditeur de texte. Les 2 lignes à modifier sont les suivantes :
upload_max_filesize = 50M post_max_size = 50M
Fixez en Mo la taille souhaitée. Enregistrez le fichier puis redémarrez votre serveur Web (Apache ou IIS).
Vous pouvez vérifier la bonne prise en compte de vos modifications en regardant dans la page "? - Informations logiciel" de votre application QALITEL / Epistolaire la valeur spécifiée sur la ligne "Taille Max des fichiers uploadés".
7. Modification du temps d'exécution des scripts (max_execution_time)
Le temps d'exécution des scripts est généralement défini par défaut à 30s ou 60s dans le PHP.INI. La variable correspondante à ce paramètre est max_execution_time. Au delà de ce délai, si le script n'aboutit pas cela génère une erreur de time out, pas toujours visible à l'écran mais visualisable dans le PHP.LOG.
Aussi, sur certaines machines ou réseaux un peu lents, il peut être nécessaire d'allonger ce temps d'exécution.
Pour cela, ouvrez le fichier PHP.INI puis recherchez la variable max_execution_time et modifiez la valeur pour la positionner par exemple à 300s comme montré sur la copie d'écran ci-dessous :
Dans certains cas il est également nécessaire de modifier la variable max_input_time et la positionner également à 300s.
Une fois les modifications faites, enregistrez votre PHP.INI puis redémarrez vous serveur Web IIS ou Apache pour leur prise en compte.
8. Problème de chargement des extensions (Windows)
Bien que les extensions sont correctement décommentées dans le PHP.IN, vous pouvez être amenés à constater que certaines extensions ne sont pas montées malgré le redémarrage du serveur Web. Une solution à ce problème peut être de placer dans le PATH de Windows le répertoire des extensions de PHP (Il est également nécessaire de placer le répertoire de PHP dans le PATH de Windows en plus du répertoire des extensions) .
La modification du PATH se fait dans les variables d'environnement (sous Windows XP - Windows 2003 : Bouton Démarrer puis Panneau de configuration - Système- Onglet Avancé et bouton Variables d'environnement). Sélectionnez la ligne PATH puis cliquez sur le bouton Modifier. Placez vous en bout de ligne puis entrez le répertoire des extensions de PHP précédé d'un ;. Validez les différentes fenêtres pour la prise en compte de la modification.
Il peut parfois s'avérer nécessaire de redémarrer la machine pour la bonne prise en compte de la modification du PATH. Pour vérifier le PATH de windows, lancez une invite de commande et entrez la commande PATH.
9. Erreur de chargement Libmcrypt.dll et Ssleay32.dll (Windows)
Ces 2 DLL sont présentes dans le répertoire de PHP. Cette erreur est générée au démarrage du serveur Web bien que les DLL soient présentes dans le répertoire de PHP. Il est alors nécessaire de mettre le répertoire de PHP dans le PATH de Windows. Le fait de placer seulement le répertoire des extensions de PHP n'est pas suffisant.
10. Fichier d'erreur PHP.LOG non généré
Pour connaître l'emplacement où le fichier PHP.LOG est généré, vous pouvez via les applications QALITEL / Epistolaire, accéder au menu ? - Informations logiciel. Sur la page qui vous est alors proposée, dans le tableau Infos et variables PHP, vous trouverez la ligne Chemin du fichier d'erreur vous indiquant le répertoire et le nom du fichier d'erreur de PHP. Si la ligne est vide, vous devez alors réaliser les modifications décrites ci-dessous.
L'activation du fichier recensant les erreurs PHP est à spécifier dans le fichier de configuration de PHP, à savoir le PHP.INI. Pour activer le PHP.LOG, suivez les étapes suivantes :
- Ouvrez le fichier PHP.INI
- Retrouvez dans le fichier PHP.INI les lignes suivantes :
; log errors to specified file ; error_log = c:/temp/php.log
- Supprimez le ; devant la ligne error_log et indiquez un répertoire (existant car PHP ne crera pas le répertoire) et un nom de fichier
- Enregistrez le fichier PHP.INI
- Redémarrez le serveur Web IIS ou Apache
11. Où se trouve le répertoire des extensions de PHP
Ce répertoire sert à stocker des extensions (bibliothèques) complémentaires à PHP pour des fonctionnalités spécifiques. Les applications QALITEL /Epistolaire, utilisent 2 extensions spécifiques :
* ChartDirector : Pour la création des graphiques * Ioncube Loader : Pour le décryptage des pages PHP
Si les applications QALITEL / Epistolaire sont déjà installées, vous pouvez retrouver le répertoire des extensions PHP en lançant la page phpinfo.php par le lien suivant :
http://srv-scoqi/qdoc/app/installation/phpinfo.php
(Vous devez bien entendu adapter le lien proposé ci-dessus à votre paramétrage)
Sur la page qui vous est alors proposée, recherchez la ligne extension_dir. Vous y trouverez alors le répertoire des extensions de PHP.
Si les applications ne sont pas installées alors vous trouverez ce répertoire de la manière suivante :
Serveur Windows - WAMP
Cliquez sur l'icone de Wamp Server (présente à côté de l'horloge en bas à droite de votre écran). Dans le menu déroulant qui vous est proposé, sélectionnez le menu PHP - PHP.INI. Cherchez la ligne extension_dir = :
extension_dir = "c:/wamp/bin/php/php5.3.0/ext/"
Serveur Windows
Ouvrez le fichier PHP.INI présent dans le répertoire C:\WINDOWS de votre serveur. Cherchez la ligne extension_dir = :
; Directory in which the loadable extensions (modules) reside. extension_dir = "C:\php5212\ext"
Serveur linux
Sous Linux Debian, le répertoire des extensions de PHP est généralement du type :
/usr/lib/php5/20060613
12. Erreur : Fatal error: Call to undefined function ImageCreateFromPng()
Cette erreur peut apparaître lors de l'envoi de photos dans les logiciels disposant de cette fonctionnalité via une galerie photos. Il est nécessaire d'activer l'extension GD au niveau du PHP.INI. Pour cela, accédez au fichier PHP.INI et supprimez le caractère ; présent devant la ligne
extension=php_gd2.dll
Enregistrez le fichier PHP.INI puis redémarrez le serveur Web (IIS ou Apache) pour la prise en compte de la modification.
13. Erreur : Unable to fork...
L'erreur se produit au lancement d'un programme externe tel que le DUMP de la base de données et le libellé complet est généralement :
PHP Warning: exec() [<a href='function.exec'>function.exec</a>]: Unable to fork
Cela vient d'un problème de droits sur le programme CMD.EXE (C:\windows\system32\) qui exécute l'exécutable lancé par l'application. Il est alors nécessaire de lui mettre l'utilisateur sous lequel tourne le serveur Web.
14. Erreur : Warning: mktime(): It is not safe to rely on the system's timezone settings
Si vous constatez cette erreur dans votre PHP.LOG, fixez le paramètre ci-dessuos dans le PHP.INI
date.timezone = "Europe/Paris"
15. Les extensions LDAP et/ou OPENSSL ne se chargent pas
La résolution de ce problème est spécifié à ce niveau de la F.A.Q. (F.A.Q. - Serveurs Web)