Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menggunakan projek php di bawah nginx
Cara untuk menggunakan projek PHP di bawah nginx: 1. Pasang nginx dan php-fpm 2. Cari fail konfigurasi pelayan nginx 3. Tentukan lokasi penggunaan projek PHP; pelbagai Hanya letakkan conf pelayan dalam didayakan tapak.
Persekitaran pengendalian artikel ini: sistem linux5.9.8, nginx versi 1.9, komputer Dell G3.
Bagaimana untuk menggunakan projek php di bawah nginx?
Sebarkan projek php pada pelayan nginx
nginx sendiri tidak boleh memproses halaman PHP, ia hanyalah pelayan web apabila permintaan diterima, jika ia adalah permintaan PHP , dimajukan kepada penterjemah PHP untuk diproses melalui proksi terbalik, dan hasilnya dikembalikan kepada klien. Oleh itu nginx dan php-fpm atau penterjemah php lain perlu dipasang pada pelayan.
Selepas memasang nginx dan php-fpm, cari fail konfigurasi pelayan nginx
[root@test24266conf]# ps -ef | grep nginx.conf root 31441 1 0 2018 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c/usr/local/nginx/conf/nginx.conf
Dalam fail ini, nyatakan lokasi penempatan projek php, iaitu, ubah suai akar dinyatakan di bawah medan pelayan Direktori akar fail.
Dalam banyak versi, tiada medan pelayan dalam nginx.conf Ini adalah untuk kemudahan pengurusan Dalam versi yang telah dikompilasi beberapa pengedaran, terdapat dua ayat termasuk conf.d di hujung http bahagian dalam nginx.conf. /*.conf; sertakan yang didayakan tapak/*atau hanya satu sertakan
didayakan tapak/*.conf; seperti
[root@test24266conf]# ll sites-enabled/ -rw-r--r--1 root root 603 103 2017 captcha443.conf -rw-r--r--1 root root 287 9 1 2017 commrisk.conf -rw-r--r--1 root root 194 129 2016 imagerotate.conf -rw-r--r--1 root root 402 9 2 2016 msgqapi.conf -rw-r--r--1 root root 295 102 2017 pointriskapi.conf -rw-r--r--1 root root 290 6 2 2017 risktrade.conf -rw-r--r--1 root root 309 814 2017 rotateapi.conf -rw-r--r--1 root root 313 100 2016 watchdog.conf [root@test24266conf]# 这样每个.conf文件就可以对应一个虚拟主机,查看某个配置文件,如 [root@test24266conf]# cat sites-enabled/pointriskapi.conf server{ listen 8013; server_name point.risk.api; index index.php; #默认访问的文件 root /var/www/pointriskapi/hosts; access_log on;
#当请求网站下php文件的时候,反向代理到php-fpm location ~ .*\.php?$ { include fastcgi.conf; } location = /favicon.ico { log_not_found off; access_log off; } } [root@test24266conf]#
Kami meletakkan fail projek php dalam laluan /var/www/pointriskapi/hosts ini Sebagai contoh,
[root@test24266hosts]# ll -rw-r--r-- 1 apache apache 339 102 2017risk_point.php [root@test24266hosts]# pwd /var/www/pointriskapi/hosts
secara amnya tidak perlu dimulakan semula Nginx dan php-fpm . Kini anda boleh mengakses http://ip:8013/risk_point.php pada klien.
Jadi bagaimanakah nginx memajukan permintaan kepada penterjemah PHP melalui proksi terbalik? Kami mendapati terdapat perenggan
location ~ .*\.php?$ { include fastcgi.conf; #加载nginx的fastcgi模块 }
dalam medan pelayan Perenggan ini menentukan siapa yang memproses fail .php. Kami menyemak fail factcgi.conf dalam direktori yang sama seperti nginx.conf, seperti
[root@test24266 conf]# cat fastcgi.conf fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/tmp/phpcgi.socket; fastcgi_indexindex.php; access_log /var/log/httpd/access_log main; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 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_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 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; # PHPonly, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200; [root@test24266conf]#
Fastcgi_pass menentukan alamat IP dan port yang didengari oleh proses fastcgi, iaitu, nginx akan memajukan permintaan itu soket ini. Oleh itu, kita perlu menentukan soket yang sama dalam fail konfigurasi php-fpm. Mulakan pemantauan dan lihat Php-fpm
[root@test24266~]# netstat -anp | grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3719/php-fpm
Untuk meringkaskan, dalam mod nginx dan php-fpm, proses permintaan dan respons yang lengkap adalah seperti berikut:
1 Fail .php tertentu
2. Nginx mendapati bahawa sumber dinamik perlu dihalakan ke direktori akar yang ditentukan
3 Muatkan modul fast-cgi nginx
4. Fakta- cgi memantau 127.0.0.1:9000 (soket lalai)
5. php-fpm menerima permintaan dan membolehkan proses pekerja memproses permintaan
6 dan mengembalikannya kepada nginx
7 nginx mengembalikan hasil ke penyemak imbas melalui http
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk menggunakan projek php di bawah nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!