Comment résoudre l'erreur lorsque nginx appelle php-fpm
Après avoir installé nginx et php-5.5 et configuré nginx pour appeler php, démarrez php-fpm.
Utilisez la commande suivante
Copiez le code Le code est le suivant :
/usr/local/php/sbin/php-fpm
et vous pouvez le démarrer.
Créez un script de détection PHP index.php dans le répertoire nginx
Le résultat est que lors de l'ouverture de http://localhost/index.php
la tragédie est qu'il ne peut pas être ouvert. Vérifiez le fichier journal et voyez la raison de l'erreur
Copiez le code Le code est le suivant :
01/07/2013 22:34:26 [erreur] 3214#0 : *64 fastcgi envoyé dans stderr : " script principal inconnu" lors de la lecture de l'en-tête de réponse depuis l'amont, client : 192.168.168.19, serveur : localhost, requête : "get /index.php http/1.1", en amont : "fastcgi://127.0.0.1:9000", hôte : "192.168.168.140"
Vérifiez le port. Voyant que le port 9000 de php-fpm a été ouvert, cela signifie qu'il n'y a aucun problème avec php-fpm. Le problème vient de nginx. Il y a peut-être un problème avec mon fichier de configuration.
Trouvez la partie où nginx charge la configuration php. Reportez-vous également au fichier de configuration nginx en ligne.
Il y a un chemin de script appelant à la ligne 69
Copiez le code Le code est le suivant :
fastcgi_param script_filename /scripts$fastcgi_script_name;
J'ai modifié le chemin comme suit.
Copiez le code Le code est le suivant :
fastcgi_param script_filename $document_root$fastcgi_script_name;
http://localhost/index.php
Les informations de version de php peuvent apparaître.
Vous pouvez également vous référer à la méthode de configuration ci-dessous
php-fpm n'a plus besoin de s'appuyer sur d'autres lanceurs fastcgi, tels que spawn-fcgi de lighttpd.
php-fpm est très pratique à utiliser. La configuration est dans le fichier php-fpm.ini
Le démarrage et le redémarrage peuvent être effectués depuis php/sbin/php-fpm.
Ce qui est plus pratique, c'est que vous pouvez modifier directement php. ini. L'utilisation de php-fpm reload pour charger peut terminer la modification et le chargement de php.ini sans tuer le processus. Les résultats montrent que l'utilisation de php-fpm peut améliorer considérablement les performances de PHP. La vitesse de recyclage du processeur contrôlée par php. -fpm est relativement lent. .La mémoire est allouée de manière très uniforme
Le processeur du processus contrôlé par spawn-cgi diminue très rapidement et l'allocation de mémoire est relativement inégale.
De nombreux processus semblent non alloués, tandis que d'autres le sont. très occupé.
Cela peut être dû au processus Causé par la répartition inégale des tâches. Cela entraîne également une diminution de la vitesse de réponse globale
Et la répartition raisonnable de php-fpm conduit à mentionner une réponse globale et des tâches moyennes
Utiliser php. -fpm nécessite de patcher le code source PHP. Ensuite, recompilez php
1 Téléchargez php-fpm
wget http:/ /php-fpm.anight.org/downloads/head/php-5.2.8-fpm-0.5.10.diff.gz
Dans le même répertoire que php-5.2.9
gzip - cd php-5.2.8-fpm -0.5.10.diff.gz | patch -d php-5.2.9 -p1
Une fois le patch appliqué, les paramètres suivants sont ajoutés lors de la compilation de php :
–enable-fpm active fpm prise en charge en mode fastcgi
–avec le fichier de configuration -fpm-conf php-fpm (la valeur par défaut est prefix/etc/php-fpm.conf)
–avec-fpm-log le fichier journal php-fpm (la valeur par défaut est prefix/logs/php- fpm.log)
–with-fpm-pid Le fichier pid de php-fpm (la valeur par défaut est prefix/logs/php-fpm.pid)
./configure --prefix=/ebs/php
--with-config-file- path=/ebs /php/etc
--enable-fastcgi
--enable-fpm
--others
Remarque : --enable-fastcgi doit être devant --enable-fpm, sinon fpm ne peut pas être compilé .
2. Après avoir compilé php, modifiez le fichier de configuration
Vous devez faire attention aux configurations suivantes
Cela représente l'adresse IP et le port surveillés par le processus fastcgi de PHP
signifie Sous quel utilisateur et groupe d'utilisateurs le processus fastcgi de PHP s'exécute-t-il ? Cette ligne est commentée par défaut et doit être activée
S'il faut afficher l'erreur PHP messages
Nombre maximum de processus enfants
Exécutez php-fpm :
php-fpm utilise un programme pour contrôler le processus fastcgi. Ce fichier se trouve dans $prefix/sbin. /php-fpm
/usr/ local/php/sbin/php-fpm
Ce programme a les paramètres suivants :
start démarre le processus fastcgi de php
stop termine de force le processus fastcgi de php
quit termine en douceur le processus fastcgi de php
restart redémarre le processus fastcgi de php
reload recharge le php.ini de php
logrotate réactive le fichier journal
En d'autres termes, après avoir modifié php.ini, nous pouvons utiliser
/usr/local/php/sbin/php- fpm reload
De cette façon, le fichier journal en php est conservé. Pendant que le processus fastcgi continue de s'exécuter, php.ini est rechargé.
Copier le code Le code est le suivant :
user www www;
worker_processes 10;
error_log logs/error.log notice;
pid logs/nginx.pid;
#spécifie la valeur du nombre maximal de descripteurs de fichiers pouvant être ouverts par ce processus.
worker_rlimit_nofile 51200;
events
{
utiliser epoll;
worker_connections 51200;
}
http
{
include mime.types;
default_type application/octet-stream;
charset gb2312;
server_names_hash_bucket_size 128;
#sendfile on ;
#tcp_nopush activé ;
keepalive_timeout 60 ;
tcp_nodelay activé;
gzip activé;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/html application/xml;
{
écoutez 80 ;
nom_serveur 192.168.1.2;
index index.html index.htm index.php;
root /ebs/www;
if (-d $request_filename)
{
réécrire ^/(.*)([^/])$ http : //$host/$1$2/ permanent;
}
location ~ .*.php?$
{
include fcgi.conf
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
log_format access '$ Remote_Addr - $ Remote_User [$ time_local] "$ request" '
' $ status $ body_bytes_sent "$ http_referer" '
' "$ http_user_agent" $ http_x_forwarded_for ';
Access_log Logs / Access.log Access;
}
}
Nom du produit:
/usr/local/nginx/conf/fcgi.conf
注:nginx自带了一个配置文Par exemple,/usr/local/nginx/conf/fastcgi_params,该配置La passerelle fastcgi_param_ interface cgi/1.1;
fastcgi_param query_string $query_string;
fastcgi_param request_method $request_method;fastcgi_param content_type $content_type;
fastcgi_param content_length $content_length;🎜fastcgi_param script_filename $document_root$fastcgi_script_name;🎜fastcgi_param script_name $fastcgi_script_name;🎜fastcgi_param request_uri $request_uri;🎜fastcgi_param document_uri $document_uri;🎜fast cgi_param document_root $document_root;🎜fastcgi_param server_protocol $server_protocol;🎜 fastcgi_param remote_addr $remote_addr;🎜fastcgi_param remote_port $remote_port;🎜fastcgi_param server_addr $server_addr;🎜fastcgi_param server_port $server_port;🎜fastcgi_param server_name $server_name;🎜# php uniquement, requis si php a été construit avec --enable-force-cgi-re direct🎜 #fastcgi_param redirect_status 200;🎜🎜🎜四 配置xcache🎜1、安装xcache模块🎜wgethttp://xcache.lighttpd.net/pub/releases/1.2.2/xcache-1.2.2.tar.gz🎜tar -xvzf xcache -1.2.2.tar.gz🎜cd xcache-1.2.2🎜/usr/local/php/bin/phpize🎜./configure --with-php-config=/usr/local/php/bin/php-config --enable-xcache --enable-xcache-optimizer🎜make🎜make install🎜2、计算密码的md5值🎜echo -n "password"|md5sum🎜5f4dcc3b5aa765d61d8327deb882cf99🎜3、配置xcache 🎜;注:zend_extension,用来加载zend的扩展,是绝对路径, extension是相对路径,相对于extension_dir的相对路径,非zend扩展🎜如果你更改路径以后,一Utilisez apachectl stop et start, puis redémarrez.🎜vi /usr/local/php /etc/php.ini🎜🎜添加:🎜🎜复制代码 代码如下:🎜[xcache-common]
zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xcache.so
[xcache.admin]
; remplacez xcache.admin.user par votre nom de connexion préféré
xcache.admin.user = "admin"
; remplacez xcache.admin.pass par l'empreinte md5 de votre mot de passe
; utilisez md5 -s "your_secret_password" pour trouver l'empreinte digitale
xcache.admin.pass = "5f4dcc3b5aa765d61d8327deb882cf99"
[xcache]
; changez xcache.size pour ajuster la taille du cache d'opcode
xcache.size = 24m
xcache.shm_scheme = "mmap"
xcache.count = 2
xcache.slots = 8k
xcache.ttl = 0
xcache.gc_interval = 0
; changez xcache.var_size pour ajuster la taille du cache variable
xcache.var_size = 8m
xcache.var_count = 1
xcache.var_slots = 8k
xcache.var_ttl = 0#🎜🎜 #xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = off
xcache.readonly_protection = on
xcache.mmap_path = "/tmp/xcache"#🎜🎜 #xcache.coredump_directory = ""
xcache.cacher = on
xcache.stat = on
xcache.optimizer = off
[xcache.coverager]
xcache.coverager = on
xcache.coveragedump_directory = ""
5、重启php模块
在phpinfo显出的信息内#🎜 🎜#zend这快应该会加上xcache的内容
6、另外两种加速模块:在我们的测试中,效果都要好于xcache,这3中加速不能同时存在两种,有冲突。
复制代码 代码如下 :
cd apc-3.0.19
/usr/local/php/bin/phpize./configure --enable -apc --enable-apc-mmap --with-apxs=/ebs/apache/bin/apxs --with-php-config=/ebs/php/bin/php-config
make
make install
6.2 eaccelerator
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.zip
cd eaccelerator-0.9.5.3
/usr/local/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/ebs/php/bin/php-config
make#🎜🎜 #make install
vi php.ini
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator .shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime= "1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
#🎜 🎜#五、使用nginx对应多台facgi服务器
思路:前端一台nginx,用于做为负载均衡和处理静态页面。 La version en amont de nginx utilise php请求分发到后段的php-fpm .服务,相当于少了一层。
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment configurer un nom de domaine NGINX sur un serveur cloud: Créez un enregistrement A pointant vers l'adresse IP publique du serveur cloud. Ajoutez des blocs d'hôtes virtuels dans le fichier de configuration Nginx, en spécifiant le port d'écoute, le nom de domaine et le répertoire racine du site Web. Redémarrez Nginx pour appliquer les modifications. Accéder à la configuration du test de nom de domaine. Autres notes: Installez le certificat SSL pour activer HTTPS, assurez-vous que le pare-feu autorise le trafic Port 80 et attendez que la résolution DNS prenne effet.

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Les méthodes qui peuvent interroger la version Nginx sont: utilisez la commande nginx -v; Afficher la directive de version dans le fichier nginx.conf; Ouvrez la page d'erreur Nginx et affichez le titre de la page.

Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

Étapes de démarrage du conteneur Docker: Tirez l'image du conteneur: Exécutez "Docker Pull [Mirror Name]". Créer un conteneur: utilisez "Docker Create [Options] [Mirror Name] [Commandes et paramètres]". Démarrez le conteneur: exécutez "docker start [nom de conteneur ou id]". Vérifiez l'état du conteneur: vérifiez que le conteneur s'exécute avec "Docker PS".

Le démarrage d'un serveur Nginx nécessite différentes étapes en fonction des différents systèmes d'exploitation: Système Linux / Unix: Installez le package NGINX (par exemple, en utilisant Apt-Get ou Yum). Utilisez SystemCTL pour démarrer un service NGINX (par exemple, sudo systemctl start nginx). Système Windows: téléchargez et installez les fichiers binaires Windows. Démarrer Nginx à l'aide de l'exécutable Nginx.exe (par exemple, nginx.exe -c conf \ nginx.conf). Peu importe le système d'exploitation que vous utilisez, vous pouvez accéder au serveur IP

Créer un conteneur dans Docker: 1. Tirez l'image: docker pull [Nom du miroir] 2. Créer un conteneur: docker run [Options] [Nom du miroir] [Commande] 3. Démarrez le conteneur: docker start [Nom du conteneur]
