So beheben Sie den Fehler, wenn Nginx PHP-FPM aufruft
Nach der Installation von Nginx und PHP-5.5 und der Konfiguration von Nginx zum Aufrufen von PHP starten Sie PHP-FPM.
Verwenden Sie den folgenden Befehl
Kopieren Sie den Code. Der Code lautet wie folgt:
/usr/local/php/sbin/php-fpm
und Sie können ihn starten.
Erstellen Sie ein PHP-Erkennungsskript index.php im Nginx-Verzeichnis
Das Ergebnis ist, dass beim Öffnen von http://localhost/index.php
Die Tragödie ist, dass es nicht geöffnet werden kann. Überprüfen Sie die Protokolldatei und sehen Sie den Grund für den Fehler.
Kopieren Sie den Code. Der Code lautet wie folgt:
2013/07/01 22:34:26 [error] 3214#0: *64 fastcgi sent in stderr: „ Primäres Skript unbekannt“ beim Lesen des Antwortheaders vom Upstream, Client: 192.168.168.19, Server: localhost, Anfrage: „get /index.php http/1.1“, Upstream: „fastcgi://127.0.0.1:9000“, Host: „192.168.168.140“
Überprüfen Sie den Port. Da der 9000-Port von PHP-FPM geöffnet wurde, bedeutet dies, dass es kein Problem mit PHP-FPM gibt. Das Problem liegt bei Nginx. Möglicherweise stimmt etwas mit meiner Konfigurationsdatei nicht.
Suchen Sie den Teil, in dem Nginx die PHP-Konfiguration lädt. Sehen Sie sich auch online die Nginx-Konfigurationsdatei an.
In Zeile 69 befindet sich ein aufrufender Skriptpfad.
Kopieren Sie den Code. Der Code lautet wie folgt:
fastcgi_param script_filename /scripts$fastcgi_script_name;
Ich habe den Pfad wie folgt geändert.
Kopieren Sie den Code. Der Code lautet wie folgt:
fastcgi_param script_filename $document_root$fastcgi_script_name;
http://localhost/index.php
Die Versionsinformationen von PHP können angezeigt werden.
Sie können sich auch auf die Konfigurationsmethode unten beziehen
php-fpm muss nicht mehr auf andere Fastcgi-Launcher wie spawn-fcgi von lighttpd angewiesen sein.
php-fpm ist sehr bequem zu verwenden.
Der Start und Neustart kann über php/sbin/php-fpm erfolgen.
Bequemer ist, dass Sie PHP direkt ändern können. Die Verwendung von php-fpm zum Laden kann die Änderung und das Laden von php.ini abschließen, ohne den Prozess abzubrechen. Die Ergebnisse zeigen, dass die Verwendung von php-fpm die CPU-Recyclinggeschwindigkeit des von PHP gesteuerten Prozesses erheblich verbessern kann -fpm ist relativ langsam. Der Speicher wird sehr gleichmäßig zugewiesen. Die CPU des von spawn-cgi gesteuerten Prozesses sinkt sehr schnell. Und die Speicherzuweisung ist relativ ungleichmäßig. Es gibt viele Prozesse, die nicht zugewiesen zu sein scheinen, während dies bei anderen der Fall ist sehr beschäftigt.
Es kann an der ungleichmäßigen Verteilung der Aufgaben liegen. Dies führt auch zu einer Verringerung der Gesamtantwortgeschwindigkeit.
Und die angemessene Verteilung von PHP-FPM führt zur Erwähnung der Gesamtantwort und der durchschnittlichen Aufgaben.
Verwendung von PHP -fpm erfordert das Patchen des PHP-Quellcodes. Laden Sie dann php-fpm
wget herunter: http://cn.php.net/get/php-5.2.8.tar.gz/from/www.php. net/mirror
wget http://php-fpm.anight.org/downloads/head/php-5.2.8-fpm-0.5.10.diff.gz
Im selben Verzeichnis wie php-5.2.9
gzip - cd php-5.2.8-fpm -0.5.10.diff.gz |. patch -d php-5.2.9 -p1
–enable-fpm aktiviert fpm Unterstützung im Fastcgi-Modus
–mit -fpm-conf php-fpm-Konfigurationsdatei (Standard ist prefix/etc/php-fpm.conf)
–mit-fpm-log php-fpm-Protokolldatei (Standard ist prefix/logs/php- fpm.log)
–with-fpm-pid php-fpms PID-Datei (Standard ist prefix/logs/php-fpm.pid)
./configure --prefix=/ebs/php
--with-config-file- path=/ebs /php/etc
--enable-fastcgi
--enable-fpm
--others
Hinweis: --enable-fastcgi muss vor --enable-fpm stehen, sonst kann fpm nicht kompiliert werden .
2. Ändern Sie nach dem Kompilieren von PHP die Konfigurationsdatei
vi /ebs/php/etc/php-fpm.conf
Sie müssen auf die folgenden Konfigurationen achten
Dies stellt die IP-Adresse und den Port dar, die vom Fastcgi-Prozess von PHP überwacht werden
bedeutet: Unter welchem Benutzer und welcher Benutzergruppe wird der Fastcgi-Prozess von PHP ausgeführt? Diese Zeile ist standardmäßig auskommentiert und muss aktiviert werden
Ob PHP-Fehler angezeigt werden sollen Nachrichten
Maximale Anzahl untergeordneter Prozesse
Run php-fpm:
php-fpm verwendet ein Programm zur Steuerung des Fastcgi-Prozesses. Diese Datei befindet sich in $prefix/sbin /php-fpm
/usr/ local/php/sbin/php-fpm
Dieses Programm hat die folgenden Parameter:
start startet den Fastcgi-Prozess von PHP
Stop beendet zwangsweise den FastCGI-Prozess von PHP
Quit beendet den FastCGI-Prozess von reibungslos php
restart startet den Fastcgi-Prozess von PHP neu.
reload lädt PHPs php.ini neu. fpm reload
Auf diese Weise bleibt die Protokolldatei in PHP erhalten. Während der Fastcgi-Prozess weiter läuft, wird php.ini neu geladen.
Code kopieren Der Code lautet wie folgt:
user www www;
worker_processes 10;
error_log logs/error.log Notice;
pid logs/nginx.pid;
#gibt den Wert für die maximale Dateideskriptorzahl an, die von diesem Prozess geöffnet werden kann.
worker_rlimit_nofile 51200;
events
{
use 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 on;
keepalive_timeout 60 ;
tcp_nodelay on;
gzip on;
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;
{
listen 80;
server_name 192.168.1.2;
index index.html index.htm index.php;
root /ebs/www;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ 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;
}
}
新建配置文件
复制代码 代码如下:
/usr/local/nginx/conf/fcgi.conf
注:nginx自带了一个配置文Hier finden Sie /usr/local/nginx/conf/fastcgi_params文件缺少粗体字体的部分,会造成访问php文件时报404错误.
复制代码 代码如下:
fastcgi_param _interface cgi/1.1;
fastcgi_param server_software nginx;
fastcgi_param query_string $query_string;
fastcgi_param request_method $request_method;
fastcgi_param Content_Type $content_type;
fastcgi_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;
# Nur PHP, erforderlich, wenn PHP mit --enable-force-cgi-redirect erstellt wurde
#fastcgi_param weitergeleitet_status 200;
四-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 install
2、计算密码的md5值
echo -n. „password“|md5sum
5f4dcc3b5aa765d61d8327deb882cf99
3、配置xcache
;注:zend_extension, 用来加载zend的扩展,是绝对路径, extension是相对路径,相对于extension_dir的相对路径,非zend扩展
如果你更改路径以后,一Geben Sie „Apachectl Stop“ und „Start“ ein /etc/php.ini
添加:
复制代码 代码如下:
[xcache-common]
zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xcache.so
[xcache.admin]
; Ändern Sie xcache.admin.user in Ihren bevorzugten Anmeldenamen
xcache.admin.user = "admin"
; Ändern Sie xcache.admin.pass in den MD5-Fingerabdruck Ihres Passworts
; Verwenden Sie md5 -s "your_secret_password", um den Fingerabdruck zu finden
xcache.admin.pass = "5f4dcc3b5aa765d61d8327deb882cf99"
[xcache]
; Ändern Sie xcache.size, um die Größe des Opcode-Cache zu optimieren. xcache.size = 24 m. xcache.shm_scheme = "mmap"
; Ändern Sie xcache.var_size, um die Größe des variablen Caches anzupassen. 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模块
正常load之后,
在phpinfo显出的信息内
zend这快应该会加上xcache的内容
6、另外两种加速模块:
在我们的测试中,效果都要好于xcache,这3中加速不能同时存在两种,有冲突。
6.1 apc
wget http: //pecl.php.net/get/apc-3.0.19.tgz
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-configmake
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
make
make installvi 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,用于做为负载均衡和处理静态页面.利用nginx的upstream模块来将php请求分发到后段的php-fpm服务器上.
后端多台php-fpm的服务器, 只起php-fpm服务来处理php。
这样做减少了php-fpm上的nginx服务, 相当于少了一层。
Das obige ist der detaillierte Inhalt vonSo beheben Sie den Fehler, wenn Nginx PHP-FPM aufruft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So konfigurieren Sie einen Nginx -Domänennamen auf einem Cloud -Server: Erstellen Sie einen Datensatz, der auf die öffentliche IP -Adresse des Cloud -Servers zeigt. Fügen Sie virtuelle Hostblöcke in die NGINX -Konfigurationsdatei hinzu, wobei der Hörport, Domänenname und das Root -Verzeichnis der Website angegeben werden. Starten Sie Nginx neu, um die Änderungen anzuwenden. Greifen Sie auf die Konfiguration des Domänennamens zu. Weitere Hinweise: Installieren Sie das SSL -Zertifikat, um HTTPS zu aktivieren, sicherzustellen, dass die Firewall den Verkehr von Port 80 ermöglicht, und warten Sie, bis die DNS -Auflösung wirksam wird.

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

Die Methoden, die die Nginx -Version abfragen können, sind: Verwenden Sie den Befehl nginx -v; Zeigen Sie die Versionsrichtlinie in der Datei nginx.conf an. Öffnen Sie die Nginx -Fehlerseite und sehen Sie sich den Seitentitel an.

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]
