Changes

Jump to navigation Jump to search
1,738 bytes added ,  15:42, 15 November 2023
m
Line 11: Line 11:  
|image={{#var:contribname}}.jpg
 
|image={{#var:contribname}}.jpg
 
|description_image= {{#var:contribname}} logo
 
|description_image= {{#var:contribname}} logo
|maintainer= John Crisp
+
|maintainer= Unilenium, ReetP
|licence= MIT license
+
|licence=
 
|url= https://www.php.net/
 
|url= https://www.php.net/
 
|category= web
 
|category= web
 
|tags=www,http,ssl
 
|tags=www,http,ssl
 
}}
 
}}
==Mainteneur==
+
==Mainteneurs==
John Crisp
+
Unnilennium, ReetP
    
==Description==
 
==Description==
Line 46: Line 46:  
|php55
 
|php55
 
|personnalisation de /opt/remi/php55/root/etc/php.ini
 
|personnalisation de /opt/remi/php55/root/etc/php.ini
| rowspan="8" |si aucune propriété n'est définie, les propriétés des clés php seront utilisées
+
| rowspan=11" |si aucune propriété n'est définie, les propriétés des clés php seront utilisées
 
|-
 
|-
 
|php56
 
|php56
Line 68: Line 68:  
|php80
 
|php80
 
|personnalisation de /etc/opt/remi/php80/php.ini
 
|personnalisation de /etc/opt/remi/php80/php.ini
 +
|-
 +
|php81
 +
|personnalisation de /etc/opt/remi/php81/php.ini
 +
|-
 +
|php82
 +
|personnalisation de /etc/opt/remi/php82/php.ini
 +
|-
 +
|php83
 +
|personnalisation de /etc/opt/remi/php83/php.ini
 
|}
 
|}
 
Chaque version de php a son propre service php-fpm en cours d'exécution, l'entrée de la base de données de configuration associée est (comme indiqué dans le tableau ci-dessus) php-fpm pour php (c'est-à-dire php54), php55-php-fpm pour php55 et ainsi de suite.
 
Chaque version de php a son propre service php-fpm en cours d'exécution, l'entrée de la base de données de configuration associée est (comme indiqué dans le tableau ci-dessus) php-fpm pour php (c'est-à-dire php54), php55-php-fpm pour php55 et ainsi de suite.
   −
Si vous souhaitez vraiment désactiver une version de php, voici ce que vous devez faire pour php55, par d'exemple :
+
Si vous souhaitez vraiment désactiver une version de php, voici ce que vous devez faire pour php55, par exemple :
    
  config setprop php55-php-fpm status disabled
 
  config setprop php55-php-fpm status disabled
Line 236: Line 245:  
|
 
|
 
|}
 
|}
Si vous souhaitez définir une valeur spécifique pour une baie, nous montrons ici comment utiliser php80 pour la baie MYIBAY et éviter d'avoir une fonction désactivée :
+
Si vous souhaitez définir une valeur spécifique pour une baie, nous montrons ici comment utiliser php80 pour la baie MABAIE et éviter d'avoir une fonction désactivée :
  db accounts setprop MYIBAY disable_functions none PHPVersion 80
+
  db accounts setprop MABAIE disable_functions none PHPVersion 80
 
  signal-event webapps-update
 
  signal-event webapps-update
 
{{Note box|type=Note :| il est fortement suggéré d'installer la contribution smeserver-webhosting vous permettant de définir vos valeurs php de la baie depuis le gestionnaire de serveur. Tout est disponible et cela vous évite de vous tromper dans les paramètres.}}
 
{{Note box|type=Note :| il est fortement suggéré d'installer la contribution smeserver-webhosting vous permettant de définir vos valeurs php de la baie depuis le gestionnaire de serveur. Tout est disponible et cela vous évite de vous tromper dans les paramètres.}}
   −
===Display Error Messages===
+
===Affichage des messages d'erreur===
 
+
Par défaut, PHP n'affiche pas de messages d'erreur à l'écran. Parfois, vous obtenez une page blanche lors de l'exécution de scripts PHP. Habituellement, une sorte d'erreur s'est produite, mais ce texte d'erreur ne sera '''pas''' affiché car SME Server est configuré pour ne pas les afficher. Au lieu de cela, les messages d'erreur figurent dans les fichiers journaux du serveur Web et dans le fichier journal général du serveur.
By default PHP does not display error messages on screen. Sometimes you get a blank page when executing PHP scripts. Usually some sort of error has occurred, but this error text will '''not''' be displayed as SME Server is configured to not display them. Instead the error messages are reported to the log files of the webserver and the general logfile of the server.
  −
 
  −
Try to analyze your logfiles:
  −
/var/log/httpd/error_log and /var/log/httpd/access_log and perhaps also /var/log/messages.
     −
{{Warning box|It is strongly advised that you disable "display errors" after you have tracked and solved the problem, as the displayed error message might provide information (like filesystem layout) that only should be known to the system administrators and not to users, let alone people with bad intentions. Thus it is a potential SECURITY RISK. After debugging, disable it again.}}
+
Essayez d'analyser vos fichiers journaux : /var/log/httpd/error_log et /var/log/httpd/access_log et peut-être aussi /var/log/messages.
   −
====Enable changes for all php versions====
+
{{Warning box|type=Attention : |il est fortement conseillé de désactiver "l'affichage des erreurs" après avoir repéré et résolu le problème, car le message d'erreur affiché peut fournir des informations (telles que la disposition du système de fichiers) qui ne doivent être connues que des administrateurs système et non des utilisateurs, sans parler des personnes mal intentionnées. Il s'agit donc d'un RISQUE DE SÉCURITÉ potentiel. Après le débogage, désactivez-le à nouveau.}}
If you (for debugging purposes for instance) would like to enable it you can do it with the instructions found below:
      +
====Activer les modifications pour toutes les versions de php====
 +
Si vous souhaitez l'activer (à des fins de débogage par exemple), vous pouvez le faire avec les instructions ci-dessous :
 
  mkdir -p /etc/e-smith/templates-custom/etc/php.ini
 
  mkdir -p /etc/e-smith/templates-custom/etc/php.ini
 
  cp /etc/e-smith/templates/etc/php.ini/30ErrorHandling /etc/e-smith/templates-custom/etc/php.ini
 
  cp /etc/e-smith/templates/etc/php.ini/30ErrorHandling /etc/e-smith/templates-custom/etc/php.ini
   −
After that:
+
Puis après :
    
  sed -i /etc/e-smith/templates-custom/etc/php.ini/30ErrorHandling -e 's/display_errors.*/display_errors          = On/g'  
 
  sed -i /etc/e-smith/templates-custom/etc/php.ini/30ErrorHandling -e 's/display_errors.*/display_errors          = On/g'  
   −
After that issue the following commands:
+
Après cela, lancez les commandes suivantes :
 
  −
signal-event webapps-updates
      +
signal-event webapps-update
   −
Now access your page again and see what the error is.  
+
Accédez maintenant à nouveau à votre page et voyez quelle est l’erreur.
 
  −
====Undo Changes====
  −
If everything works you remove the 30ErrorHandling file from the /etc/e-smith/templates-custom/etc/php.ini folder and issue the last two lines again:
      +
====Annuler les modifications====
 +
Si tout fonctionne, supprimez le fichier 30ErrorHandling du dossier /etc/e-smith/templates-custom/etc/php.ini et réexécutez les deux dernières lignes :
 
  signal-event webapps-update  
 
  signal-event webapps-update  
   −
====Enable changes for a specific ibay====
+
====Activer les modifications pour une baie spécifique====
Starting SME10 and smeserver-php-3.0.0-39
+
Démarre SME10 et smeserver-php-3.0.0-39
  db accounts setprop MYIBAY DisplayErrors enabled  
+
  db accounts setprop MABAIE DisplayErrors enabled  
 
  signal-event webapps-update
 
  signal-event webapps-update
===Open basedir restriction===
  −
SME Server has a security measure in place which is called 'open basedir restriction'. This measure prevents PHP from executing or invoking other PHP scripts outside the scope of its own tree; in other words it creates a 'sandbox' or 'jail'.
     −
Overall configuration is defined in the php.ini file but you can add an override on a per ibay basis.
+
===Restriction d'ouverture de base ===
 +
SME Server a mis en place une mesure de sécurité appelée « open basedir restriction ». Cette mesure empêche PHP d'exécuter ou d'invoquer d'autres scripts PHP en dehors de la portée de sa propre arborescence ; en d'autres termes, cela crée un « bac à sable » ou une « prison ».
   −
====Error message====
+
La configuration globale est définie dans le fichier php.ini mais vous pouvez ajouter un modification prioritaire sur chaque baie.
The PHP open basedir restriction is usually presented to the user like this in the /var/log/messages file:
+
 
 +
====Message d'erreur====
 +
La restriction d'ouverture de base PHP est habituellement indiquée à l'utilisateur dans le fichier journal /var/log/messages comme ceci :
    
  Aug 12 17:27:42 homer httpd: PHP Warning:  main(): open_basedir restriction in effect. File(/tmp/test.php) is not within the allowed path(s): (/home/e-smith/files/ibays/Primary/html/) in /home/e-smith/files/ibays/Primary/html/test.php on line 2
 
  Aug 12 17:27:42 homer httpd: PHP Warning:  main(): open_basedir restriction in effect. File(/tmp/test.php) is not within the allowed path(s): (/home/e-smith/files/ibays/Primary/html/) in /home/e-smith/files/ibays/Primary/html/test.php on line 2
   −
In general you will find this message in the log files only as by default PHP is configured to prevent the display of error messages to the end users. This can be changed as per [[PHP#Display_Error_Messages|this HowTo]].
+
En général vous ne trouverez ce message que dans les fichiers journaux car, par défaut (cf. supra), PHP est configuré pour empêcher l'affichage de messages d'erreur aux utilisateurs finaux. Cela peut être modifié selon [[PHP#Display_Error_Messages|ce tutoriel en anglais]].
   −
====Modifying the PHPBaseDir setting for an ibay====
+
====Modification du paramètre PHPBaseDir pour une baie d'information====
 
<ol>
 
<ol>
(Please also see: [http://wiki.contribs.org/Useful_Commands#PHP_Related_Commands these] instructions on the [http://wiki.contribs.org/Useful_Commands Useful_Commands] page.)
+
(Veuillez aussi prendre connaissance de [http://wiki.contribs.org/Useful_Commands#PHP_Related_Commands ces instructions] en anglais sur la page [http://wiki.contribs.org/Useful_Commands "commandes utiles".])
<!--Please do not remove the following closing tag as a fromatting/rendering bug will kick in, for more details see: http://bugzilla.wikimedia.org/show_bug.cgi?id=10893--><li>Open a SME Server shell as root user and document the current setting of the PHPBaseDir directive by writing down the output of the following command:
+
<li>Ouvrez un shell du serveur SME en tant qu'utilisateur root et documentez le paramètre actuel de la directive PHPBaseDir en notant le résultat de la commande suivante :
 +
 
 +
 
 
  db accounts getprop ibayname PHPBaseDir  
 
  db accounts getprop ibayname PHPBaseDir  
Be careful to write it down to the letter as we need it in the next step
+
Attention à l'écrire à la lettre car nous en aurons besoin à l'étape suivante.
For the Primary ibay the ouptut of above command would normally look like this:
+
Pour la baie d'information principale, le résultat de la commande ci-dessus ressemblerait normalement à ceci :
 
  /home/e-smith/files/ibays/Primary/html/
 
  /home/e-smith/files/ibays/Primary/html/
</li><li>Decide on what directory you would like to add and issue the following:
+
</li><li>Décidez du répertoire que vous souhaitez ajouter et lancez ce qui suit :
 
  db accounts setprop ibayname PHPBaseDir value
 
  db accounts setprop ibayname PHPBaseDir value
Replace ibayname with the name of the ibay and value with the old value for the PHPBaseDir directive you have written down and a colon (:) followed by the full path to the directory you would like to add with a tailing slash (/), e.g.
+
Remplacer "ibayname" par le nom de la baie et "value" par l'ancienne valeur de la directive PHPBaseDir que vous avez écrite et deux points (:) suivis du chemin complet vers le répertoire que vous souhaitez ajouter avec une barre oblique (/), par exemple :
 
  db accounts setprop Primary PHPBaseDir /home/e-smith/files/ibays/Primary/html/:/opt/gallery2/
 
  db accounts setprop Primary PHPBaseDir /home/e-smith/files/ibays/Primary/html/:/opt/gallery2/
Above command would allow for invocation of scripts in the /opt/gallery2 path from the Primary ibay html folder by PHP.
+
 
To allow uploading of files to via http to a ibay name wiki
+
La commande ci-dessus permettrait à PHP d'invoquer des scripts dans le chemin /opt/gallery2 à partir du dossier HTML de la baie principale.
 +
Pour permettre le téléchargement de fichiers via http vers un wiki dénommé "ibay" :
 
  db accounts setprop wiki PHPBaseDir /home/e-smith/files/ibays/wiki/:/tmp/
 
  db accounts setprop wiki PHPBaseDir /home/e-smith/files/ibays/wiki/:/tmp/
   −
</li><li>After defining the new setting we need to reflect the change in the configuration file of the web server and have the web server reload it's configuration file. This is done by issuing the following command:
+
</li><li>Après avoir défini le nouveau paramètre, nous devons refléter la modification dans le fichier de configuration du serveur Web et demander au serveur Web de recharger son fichier de configuration. Cela se fait en exécutant la commande suivante :
 
  signal-event ibay-modify ibayname
 
  signal-event ibay-modify ibayname
   −
Be sure to replace ibayname with the name of the ibay you have just modified.
+
Assurez-vous de remplacer "ibayname" par le nom de la baie que vous venez de modifier.
 
</li></ol>
 
</li></ol>
 
===Upload_tmp_dir===
 
===Upload_tmp_dir===
 
upload_tmp_dir
 
upload_tmp_dir
   −
From SME Server V8 up to and including SME Server V9, you could sometimes have an error thrown by PHP and would then need to specify a temporary directory (e.g. upload_tmp_dir) which is not set in php.ini. see [[bugzilla:6650]] and [[bugzilla:7652]]. Many php applications need this setting, the best-known culprits are Wordpress, Roundcube, eGroupWare, and there are others. ther symptoms observed are that you can't upload contents to the PHP application.
+
From SME Server V8 up to and including SME Server V9, you could sometimes have an error thrown by PHP and would then need to specify a temporary directory (e.g. upload_tmp_dir) which is not set in php.ini. see [[bugzilla:6650]] and [[bugzilla:7652]]. Many php applications need this setting, the best-known culprits are Wordpress, Roundcube, eGroupWare, and there are others. The symptoms observed are that you can't upload contents to the PHP application.
   −
An easy resolution is to make a Custom Template to resolve this issue. see [[Uploadtmpdir]]
+
An easy resolution is to make a Custom Template to resolve this issue. See [[Uploadtmpdir]].
 +
{{Warning box|type=Attention : |cette information est obsolète et incompatible avec SME10.}}
   −
=== Advanced use of the php-fpm pools ===
+
=== Utilisation avancée des ressources php-fpm ===
   −
==== For the ibays with with php-fpm.d/ibays.conf ====
+
==== Pour les baies avec php-fpm.d/ibays.conf ====
for the ibays better option is to simply use the contrib [[Webhosting]]
+
Pour les baies, la meilleure option est simplement d'utiliser la contribution [[Webhosting]].
   −
==== For the contrib sharefolders with php-fpm.d/shares.conf ====
+
==== Pour les dossiers partagés de contributioncomportant php-fpm.d/shares.conf ====
similar to ibays
+
Similaire aux baies.
   −
==== For the contribs with php-fpm.d/www.conf ====
+
==== Pour les contributions avec php-fpm.d/www.conf ====
please read [[Building Your Contrib]]
+
Veuillez lire [[Building Your Contrib cette page en anglais]].
   −
==== For your custom needs with php-fpm.d/custom.conf ====
+
==== Pour vos besoins personalisés avec php-fpm.d/custom.conf ====
you can build your own pool to use in any place on your server, even in a subfolder of an ibay or in place of the regular ibay php-pool (property PHPCustomPool)
+
Vous pouvez construire votre propre ressource pour l'utiliser où vous voulez sur le serveur, même dans un sous-répertoire d'une baie ou à la place du php-pool normal de la baie (propriété PHPCustomPool).
   −
There are two ways in doing that
+
Il y a deux manières de faire cela :
   −
===== using db php =====
+
===== en utilisant db php =====
using the default template : /etc/e-smith/templates/etc/php-fpm.d/custom.conf , you can set your own pool doing:
+
En utilisant le modèle par défaut : /etc/e-smith/templates/etc/php-fpm.d/custom.conf, vous pouvez configurer votre propre ressource en faisant :
 
  db php set MYPOOLNAME pool Version 81 status enabled
 
  db php set MYPOOLNAME pool Version 81 status enabled
here are the accepted supplementary properties, as always missing or empty means using default.
+
Voici les propriétés supplémentaires acceptables, car si elles sont manquantes ou vides signifiera que la valeur par défaut sera utilisée.
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
!property
+
!propriété
!default
+
!valeur par défaut
!values
+
!valeurs
 
!information
 
!information
 
|-
 
|-
 
|status
 
|status
 
|enabled
 
|enabled
|enabled,disabled
+
|enabled, disabled
 
|-
 
|-
 
|Version
 
|Version
 
|
 
|
 
|
 
|
|php version to use eg 80 for php 8.0
+
|version php à utiliser, par ex. 80 pour php 8.0
 
|-
 
|-
 
|MemoryLimit
 
|MemoryLimit
Line 414: Line 424:  
|enabled
 
|enabled
 
|
 
|
|will use the autoprepend file
+
|utilisera le fichier autoprepend
 
|-
 
|-
 
|MailForceSender
 
|MailForceSender
Line 421: Line 431:  
|
 
|
 
|}
 
|}
you will then need two httpd.conf custom template fragment to use your pool. You will need to change  '''MYPOOL''' to what you want
+
Vous aurez alors besoin de deux fragments de modèle personnalisé httpd.conf pour utiliser votre ressource. Vous devrez changer '''MYPOOL''' en ce que vous voudrez :
 
  mkdir -p  /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/
 
  mkdir -p  /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/
 
  vim /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/98mypoolusage
 
  vim /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/98mypoolusage
Line 439: Line 449:  
     allow from all
 
     allow from all
 
  </Directory>
 
  </Directory>
then just do signal-event webapps-update
+
Puis exécutez :
 +
signal-event webapps-update
   −
===== using a templates-custom =====
+
===== en utilisant un modèle personnalisé =====
You can write your own fragment in /etc/e-smith/templates-custom/etc/php-fpm.d/custom.conf/ e.g. /etc/e-smith/templates-custom/etc/php-fpm.d/custom.conf/15mypool
+
Vous pouvez écire votre propre fragment dans /etc/e-smith/templates-custom/etc/php-fpm.d/custom.conf/, par exemple : /etc/e-smith/templates-custom/etc/php-fpm.d/custom.conf/15mypool
   −
You will also need to write a httpd fragment similarly to what shown just above.
+
Vous pouvez aussi avoir besoin d'écrire un fragment httpd de façon similaire à ce qui a été montré au paragraphe précédant.
   −
Here is an example if you want a custom pool for your ibay, in /etc/e-smith/templates-custom/etc/php-fpm.d/ibays.conf/15MYIBAY<syntaxhighlight lang="perl">
+
Voici un exemple si vous voulez une ressource personnalisée pour votre baie, dans /etc/e-smith/templates-custom/etc/php-fpm.d/ibays.conf/15MYIBAY<syntaxhighlight lang="perl">
 
{
 
{
   Line 479: Line 490:  
</syntaxhighlight>
 
</syntaxhighlight>
   −
You have then to force the ibay to use it by doing :<syntaxhighlight lang="bash">
+
Vous devez ensuite forcer la baie à l'utiliser en faisant :
db accounts MYIBAY setprop CustomPool enabled
+
db accounts MYIBAY setprop CustomPool enabled
</syntaxhighlight>This will prevent the generation of the default ibay pool in  ibays.conf , and let you use /var/run/php-fpm/php$version-$name.sock socket from your template-custom... or from the db php using the same key as the name of the ibay.
+
Cela empêchera la génération de la ressource par défaut de la baie dans ibays.conf et vous permettra d'utiliser le socket /var/run/php-fpm/php$version-$name.sock depuis votre modèle personnalisé... ou depuis la base de données php en utilisant la même clé que le nom de la baie.
   −
===Installation of composer===
+
===Installation de Composer===
 +
https://fr.wikipedia.org/wiki/Composer_(logiciel).
   −
This is made tricky as we do not have the PHP CLI configured.
+
Ceci est rendu délicat car nous n’avons pas configuré l'interface en lignes de commande PHP.
   −
But we can install it as follows with command line arguments. This is using php74
+
Mais nous pouvons l'installer comme suit avec des arguments de ligne de commande. L'exemple suivant vaut pour php74.
   −
Download:
+
Téléchargement :
 
  php74 -d allow_url_fopen=on -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
 
  php74 -d allow_url_fopen=on -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
   −
Install:
+
Vérification du hachage :
  php74 -d allow_url_fopen=on  ./composer-setup.php  
+
php74 -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
 +
 
 +
Installation :
 +
  php74 -d allow_url_fopen=on  ./composer-setup.php
   −
=== Bugs ===
+
=== Bogues ===
Please raise bugs under the SME-Server 10.X section in [http://bugs.contribs.org/enter_bug.cgi Bugzilla] and select the smeserver-php component or use {{BugzillaFileBug|product=SME%20Server%2010.X|component=e-smith-*%20and%20smeserver-*&20packages|title=this link}}.
+
Veuillez ouvrir les bogues dans la section SME-Server 10.X de [http://bugs.contribs.org/enter_bug.cgi Bugzilla] et sélectionner le composant smeserver-php ou utiliser {{BugzillaFileBug|product=SME%20Server%2010.X|component=e-smith-*%20and%20smeserver-*&20packages|title=ce lien}}.
   −
Below is an overview of the current issues for this package:
+
Aperçu ci-dessous des problèmes en cours pour ce paquet :
{{#bugzilla:columns=id,product,version,status,summary |sort=id|order=desc |component=smeserver-php|noresultsmessage="No open bugs found."}}
+
{{#bugzilla:columns=id,product,version,status,summary |sort=id|order=desc |component=smeserver-php|noresultsmessage="Pas trouvé de bogues ouverts."}}
 
----
 
----
    
[[Category: Howto/fr]]
 
[[Category: Howto/fr]]
 +
[[Category: Webapps/fr]]
3,054

edits

Navigation menu