Le contenu de cet article concerne le réglage de la configuration de php.ini, qui a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Le PHP installé par défaut est comme la moyenne. le costume que vous achetez dans un grand magasin peut vous aller bien, mais il n'est pas parfait. Tuned PHP est comme une combinaison sur mesure qui correspond à vos mesures exactes. Cependant, il convient de noter que le réglage de PHP n'est qu'une mesure visant à améliorer les performances et l'efficacité de PHP, et ne peut pas corriger un code médiocre et des appels d'API qui ne répondent pas.
L'interpréteur PHP est configuré et réglé dans le fichier php.ini
L'emplacement de ce fichier est différent selon les systèmes d'exploitation, et généralement la ligne de commande correspond à <.> et les fichiers php.ini
correspondants pour PHP-FPM sont distincts. Ici nous supposons que le php.ini correspondant à PHP-FPM est configuré, mais les mesures d'optimisation décrites ci-dessous s'appliquent à tous les php.ini
. php.ini
Remarque : nous devons d'abord utiliser l'outil PHP Iniscan pour analyser php.ini afin de vérifier que les meilleures pratiques de sécurité sont utilisées.MémoireLors de l'exécution de PHP, vous devez vous soucier de la quantité de mémoire utilisée par chaque processus PHP. Le paramètre
dans php.ini
est utilisé pour définir le système qu'un processus utilise. un seul processus PHP peut utiliser. memory_limit
, ce qui peut convenir à la plupart des applications PHP de petite et moyenne taille. Cependant, si vous exécutez une application micro-PHP, vous pouvez réduire cette valeur pour économiser. ressources système, et vice versa, vous pouvez augmenter cette valeur si vous exécutez une application PHP gourmande en mémoire. La taille de cette valeur est déterminée par la mémoire système disponible. Déterminer la quantité de valeur à allouer à PHP est un art. Lorsqu'il s'agit de décider de la quantité de mémoire à allouer à PHP et du nombre de processus PHP-FPM qu'il peut se permettre, cela peut être jugé en fonction. sur les informations dimensionnelles suivantes : 128M
dans un script PHP. Quelle que soit la méthode utilisée, vous devez exécuter le même script plusieurs fois, puis. Prenez la consommation moyenne de mémoire. memory_get_peak_usage()
Remarque : nous devons utiliser Apache Bench ou Siege pour tester l'application PHP dans des conditions similaires à celles de l'environnement de production afin de déterminer si l'environnement de production dispose de ressources suffisantes. Disponible.Zend OPcacheAprès avoir déterminé la quantité de mémoire à allouer, vous pouvez configurer l'extension Zend OPcache de PHP Pour des informations détaillées sur cette extension, veuillez vous référer à cet article : http://. laravelacademy .org/post/4396.html. PHP 5.5.0+ a cette extension intégrée. Voici les paramètres utilisés pour configurer et optimiser l'extension Zend OPcache dans le fichier php.ini :
opcache.revalidate_freq = 0 : Définissez la fréquence (en secondes) pour vérifier si le contenu du script PHP a changé. La signification de la valeur 0 seconde est que ce n'est que lorsque opcache.validate_timestamps est défini sur 1 que le fichier PHP sera revalidé à chaque requête. Par conséquent, dans l'environnement de développement, le fichier PHP sera revalidé à chaque fois, mais. pas dans l’environnement de production.
opcache.fast_shutdown = 1 : Ce paramètre permet à l'opcode d'utiliser une étape d'arrêt plus rapide, laissant la destruction des objets et la libération de mémoire au gestionnaire de mémoire de Zend Engine.
Si votre application autorise le téléchargement de fichiers, il est préférable de définir la taille maximale du fichier pouvant être téléchargé. De plus, il est préférable de définir le nombre maximum de fichiers pouvant être téléchargés en même temps :
file_uploads = 1upload_max_filesize = 10Mmax_file_uploads = 3
1
2
3
Par défaut, PHP permet de télécharger 20 fichiers en une seule requête. Le fichier maximum téléchargé est de 2 Mo. Ici, je. définissez-le sur unique. Seuls 3 fichiers peuvent être téléchargés par requête, et chaque fichier peut atteindre 10 Mo. Ne définissez pas cette valeur trop grande, sinon un délai d'attente se produira.
Remarque : Si vous devez télécharger des fichiers volumineux, la configuration du serveur Web doit être ajustée en conséquence. En plus de le définir dans php.ini, ajustez le paramètre client_max_body_size dans la configuration de l'hôte virtuel Nginx.
max_execution_time dans le fichier php.ini est utilisé pour définir la durée maximale qu'un seul processus PHP peut exécuter avant d'être terminé. Ce paramètre est par défaut de 30 secondes, et il est recommandé de le définir sur 5 secondes :
max_execution_time = 5
Remarque : vous pouvez appeler la fonction set_limit_time() dans un script PHP pour remplacer ce paramètre.
Supposons que nous souhaitions générer un rapport et transformer les résultats dans un fichier PDF. Cette tâche peut prendre 10 minutes, et nous ne voulons certainement pas que la requête PHP attende 10 minutes. . Nous devons écrire un fichier PHP séparé, le laisser s'exécuter dans un processus en arrière-plan distinct, l'application Web peut créer un processus en arrière-plan distinct en quelques millisecondes seulement, puis renvoyer la réponse HTTP :
<?phpexec('echo "create-report.php" | at now');echo 'report pending...';
1
2
3
create-report.php
Courir dans un processus d'arrière-plan séparé et terminé. Vous pouvez ensuite mettre à jour la base de données ou envoyer le rapport par courrier électronique au destinataire. Cependant, cette utilisation est rare.Le plus souvent, nous implémentons des fonctions similaires via des files d'attente de consommation asynchrones.En termes de sécurité, d'évolutivité et de maintenabilité, les composants associés incluent PHPResque et al.
Le gestionnaire de session par défaut de PHP peut ralentir les applications volumineuses car ce gestionnaire stocke les données de session sur le disque dur, créant des E/S disque inutiles, ce qui représente une perte de temps. Nous devons conserver les données de session en mémoire, par exemple en utilisant Memcached ou Redis. Cela présente l’avantage supplémentaire de faciliter la mise à l’échelle ultérieure. Si les données de session sont stockées sur le disque dur, il n'est pas pratique d'ajouter des serveurs supplémentaires. Si les données de session sont stockées dans Memcached ou Redis, n'importe quel serveur PHP-FPM distribué peut accéder aux données de session.
Si vous souhaitez enregistrer les données de session dans Memcached, vous devez configurer les éléments suivants :
session.save_handler = 'memcached'session.save_path = '127.0.0.1:11211'2
Si vous envoyez plus de données en moins de blocs, plutôt que d'envoyer moins de données en plusieurs morceaux, le réseau sera plus efficace, c'est-à-dire que fournir du contenu au navigateur du visiteur en moins de fragments peut réduire le nombre total de requêtes HTTP.
Par conséquent, nous devons laisser PHP tamponner la sortie. Par défaut, PHP a activé la fonction de mise en mémoire tampon de sortie. PHP met en mémoire tampon 4096 octets de sortie avant d'envoyer le contenu au serveur Web.
output_buffering = 4096implicit_flush = false2
Remarque : Si vous souhaitez modifier la taille du tampon de sortie, assurez-vous d'utiliser une valeur qui est un multiple de 4 (systèmes 32 bits) ou de 8 (systèmes 64 bits) .
PHP mettra en cache le chemin du fichier utilisé par l'application, de sorte que vous n'ayez pas besoin de rechercher constamment le chemin d'inclusion à chaque fois que vous incluez ou importez un Ce cache est appelé cache de chemin réel ( realpath cache), si vous exécutez des fichiers PHP volumineux (tels que des composants Composer) et utilisez un grand nombre de fichiers, augmenter la taille du cache de chemin réel PHP peut obtenir de meilleures performances.
La taille par défaut du cache de chemin réel est de 16 Ko. La taille exacte requise pour ce cache n'est pas facile à déterminer, mais vous pouvez utiliser une petite astuce : commencez par augmenter la taille du cache de chemin réel et définissez-la. à une valeur particulièrement grande. Par exemple, 256 Ko. Ensuite, ajoutez print_r(realpath_cache_size()); à la fin d'un script PHP pour afficher la taille réelle du cache de chemin réel. à cette valeur réelle. Nous pouvons définir la taille du cache de chemin réel dans le fichier php.ini :
realpath_cache_size = 64K
Recommandations associées :
Introduction approfondie à la configuration de session principale en PHP. ini
Explication détaillée des configurations courantes dans php.ini
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!