Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menyelesaikan ralat apabila nginx memanggil php-fpm

Bagaimana untuk menyelesaikan ralat apabila nginx memanggil php-fpm

WBOY
WBOYke hadapan
2023-05-14 10:25:05984semak imbas

Selepas memasang nginx dan php-5.5, dan mengkonfigurasi nginx untuk memanggil php, mulakan php-fpm.

Gunakan arahan berikut

Salin kod Kod adalah seperti berikut:

/usr/local/php/sbin/php-fpm

bermula.

Buat skrip pengesanan php index.php dalam direktori nginx

Hasilnya ialah apabila membuka http://localhost/index.php

Tragedinya ialah ia tidak boleh dibuka. Semak fail log dan semak sebab ralat

Salin kod Kod adalah seperti berikut:

2013/07/01 22:34:26 [ralat] 3214# 0: *64 fastcgi dihantar dalam stderr: "skrip utama tidak diketahui" semasa membaca pengepala respons dari huluan, klien: 192.168.168.19, pelayan: localhost, permintaan: "dapatkan /index.php http/1.1", huluan: "fastcgi:/ /127.0.0.1:9000 ", hos: "192.168.168.140"

Semak port. Melihat bahawa 9000 port php-fpm telah dibuka, ini bermakna tiada masalah dengan php-fpm Masalahnya terletak pada nginx. Mungkin ada yang salah dengan fail konfigurasi saya.

Cari bahagian di mana nginx memuatkan konfigurasi php. Rujuk juga fail konfigurasi nginx dalam talian.

Terdapat laluan skrip panggilan pada baris 69

Salin kod Kod adalah seperti berikut:

fastcgi_param script_filename /scripts$fastcgi_script_name;

Saya meletakkan Just change the path to the following.

Salin kod Kod ini adalah seperti berikut:

nama fail_skrip_fastcgi_param $document_root$fastcgi_script_name;

http://localhost/index.php

Maklumat versi php boleh muncul.
Anda juga boleh merujuk kepada kaedah konfigurasi di bawah

php-fpm tidak perlu lagi bergantung pada pelancar fastcgi lain, seperti spawn-fcgi lighttpd.
php-fpm adalah sangat mudah untuk digunakan php.ini, anda boleh terus menggunakan php-fpm reload untuk memuatkannya Anda boleh melengkapkan pengubahsuaian dan pemuatan php.ini tanpa mematikan proses
Keputusan menunjukkan bahawa menggunakan php-fpm boleh meningkatkan prestasi php php-fpm Kelajuan kitar semula CPU bagi proses terkawal adalah agak perlahan Peruntukan memori adalah sangat sekata
, manakala CPU proses yang dikawal oleh spawn-cgi berkurangan dengan sangat cepat Peruntukan memori agak tidak sekata.
Terdapat banyak proses yang nampaknya tidak diperuntukkan , manakala yang lain sangat sibuk
Ia mungkin disebabkan oleh pengagihan tugas proses yang tidak sekata Ini juga membawa kepada penurunan kelajuan tindak balas keseluruhan
Walau bagaimanapun, php Peruntukan munasabah -fpm membawa kepada peningkatan dalam respons keseluruhan dan tugasan purata
Menggunakan php-fpm memerlukan menampal kod sumber php, dan kemudian menyusun semula php

1 wget 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

berada dalam direktori yang sama seperti php-5.2.9

gzip -cd php-5.2.8-fpm-0.5.10.diff .gz |. patch -d php-5.2.9 - Selepas tampung p1
digunakan, parameter berikut ditambah semasa menyusun php:
–enable-fpm mengaktifkan sokongan fpm mod fastcgi
–dengan-fpm -conf fail konfigurasi php-fpm (lalai Adalah awalan/etc/php-fpm.conf)
–dengan fail log php-fpm-fpm-log (lalai ialah awalan/logs/php-fpm.log)
–dengan-fpm-pid php- fail pid fpm (lalai ialah prefix/logs/php-fpm.pid)
./configure --prefix=/ebs/php
--with-config-file- path=/ebs/php/etc
--enable-fastcgi
--enable-fpm
--others
Nota: --enable-fastcgi perlu berada di hadapan --enable- fpm, jika tidak, fpm tidak boleh disusun.

2. Selepas menyusun php, ubah suai fail konfigurasi
vi /ebs/php/etc/php-fpm.conf
Anda perlu memberi perhatian kepada konfigurasi berikut

127.0.0.1:9000

Ini mewakili alamat IP dan port yang didengari oleh proses fastcgi PHP
nobody
< ;value name="group">nobody
menunjukkan kumpulan pengguna dan pengguna yang mana proses fastcgi php dijalankan secara lalai, baris ini diulas dan anda perlu membukanya
0
Sama ada hendak memaparkan mesej ralat php
5
Nombor maksimum proses anak
Jalankan php-fpm :
php-fpm menggunakan atur cara untuk mengawal proses fastcgi Fail ini berada dalam $prefix/sbin/php-fpm
/usr/local/php/sbin/. php-fpm
Atur cara mempunyai parameter berikut:
mulakan proses fastcgi php
berhenti secara paksa menamatkan proses fastcgi php
berhenti dengan lancar menamatkan proses fastcgi php
mulakan semula proses phplogrotate mendayakan semula fail log
Dengan kata lain, selepas mengubah suai php.ini, kita boleh menggunakan
/usr/local/php/sbin/php-fpm muat semula
Dengan cara ini, ia kekal dalam Semasa proses fastcgi php terus berjalan, php.ini dimuat semula.

Salin kod Kod adalah seperti berikut:

pengguna www;
worker_processes 10;
error_log logs/error.log notice;
pid logs/nginx.pid;
#menentukan nilai untuk deskriptor fail maksimum yang boleh dibuka oleh proses ini.
worker_rlimit_nofile 51200;
peristiwa
{
   gunakan epoll;
   worker_connections 51200;
}
http
http
{  ; mi. 🎜>   default_type application/octet-strim;
   charset gb2312;
   server_names_hash_bucket_size 128;
   #sendfile on;
   #tcp_nopush on;  gzip on;
   gzip_min_length 1k;
   gzip_buffers 4 8k;
   gzip_http_version 1.1;
   gzip_types text/plain application/x-javascript text/cssml; text application/cssml; >   dengar 80;
   server_name 192.168.1.2;
   index index.html index.htm index.php;
   root /ebs/www;
   jika (-d $request_filename)  🎜>   tulis semula ^/(.*)([^/])$ http://$host/$1$2/ kekal;
   }
   lokasi ~ .*.php?$
   {
sertakan fcgi.conf

   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index index.php;
   }
   akses format_log '$remote_addr - $remote_user] [$time_remote'cal] . .了一个配置文件,/usr/local/nginx/conf/fastcgi_params,该配置文件缺少粗体字体的部分,会造成访问配置文件缺少粗体字体的部分,会造成访问php文。 4php文。 🎜>复制代码 代码如下:

fastcgi_param gateway_interface cgi/1.1;

fastcgi_param server_software nginx;
fastcgi_param query_string $query_string;
fastcgi_param request_method $request_method_content_;
fastcgi_param_content_content panjang $content_length;
nama fail_skrip_fastcgi_param $document_root$fastcgi_script_name;
fastcgi_param script_name $fastcgi_script_name;
fastcgi_param request_uri $request_uri;
fastcgi_param document_uri $document_uri;
mdocument_uri;
mdocument_rostcgi _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_addr> #server_name $🎜 enable-force-cgi-redirect

#fastcgi_param redirect_status 200;

四 配置xcache

1、安装xcache模块

四 配置xcache
1、安装xcache模块


四 配置xcache
1、安装xcache模块
wget/lighttp: //d. 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如果你更改路径以后,一去后,一厚見要家定見要家定見后路径以后,一厚見要家家后,一厚見后,一厚見要家定見一定見。
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]
; tukar xcache.admin.user kepada nama log masuk pilihan anda
xcache.admin.user = "admin"
; tukar xcache.admin.pass kepada cap jari md5 kata laluan anda
; gunakan md5 -s "your_secret_password" untuk mencari cap jari
xcache.admin.pass = "5f4dcc3b5aa765d61d8327deb882cf99"
[xcache]
; tukar xcache.size untuk menala saiz cache opcode
xcache.size = 24m
xcache.shm_scheme = "mmap"
xcache.count = 2
xcache.slots = 8k
xcache .ttl = 0
xcache.gc_interval = 0
; tukar xcache.var_size untuk melaraskan saiz cache berubah
xcache.var_size = 8m
xcache.var_count = 1
xcache.var_slots = 8k
xcache.var_ttl = 0
maxxcache =var. 0
xcache.var_gc_interval = 300
xcache.test = off
xcache.readonly_protection = on
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ">"xcache.stat = on
xcache.optimizer = off
[xcache.coverager]
xcache.coverager = on
xcache.coveragedump_directory = ""

5、重启php模块

正常load之后,
在phpinfo显出的信息内
zend这快应家的之后🎜>

6、另外两种加速模块:Bagaimana untuk menyelesaikan ralat apabila nginx memanggil php-fpm在我们的测试中,效果都要好于xcache,这3中加这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-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
buat
buat pemasangan
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"
eccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"


五、使用nginx对应多台务机>思路:前端一台nginx,用于做为负载均衡和处理静态页面。利用nginx的upstream模块来専専小块来専専台服务器上。
后端多台php-fpm的服务器,只起php-fpm服务来处理php。

这样做减少了php-fpm上的nginx服务,相当于少庆。

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat apabila nginx memanggil php-fpm. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam