Bagaimana untuk menyelesaikan ralat nginx php403
Penyelesaian ralat Nginx php403: 1. Ubah suai kebenaran fail atau dayakan selinux 2. Ubah suai php-fpm.conf dan tambah sambungan fail yang diperlukan 3. Ubah suai kandungan php.ini kepada "cgi.fix_pathinfo = 0"; 4. Mulakan semula php-fpm.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, PHP versi 8.1, komputer Dell G3.
Bagaimana untuk menyelesaikan ralat nginx php403?
nginx php 403 Cause Analysis
Masalah: Apabila mengakses tapak web yang dikonfigurasikan dalam
, mesej ralat muncul: Akses Ditolak (403)
Penyelesaian biasa:
1. Masalah kebenaran fail
Ia mungkin fail masalah kebenaran, tiada kebenaran baca.
Atau selinux tidak ditutup.
2. security.limit_extensions
Semak ralat log ralat nginx dan cari ralat berikut:
2016/07/07 10:20:13 [error] 17710#0: *2145 FastCGI sent in stderr: "Access to the script '/home/www/game/10313156.html' has been denied (see security.limi t_extensions)" while reading response header from......
Dari 5.3.9 Pada pada permulaan, PHP secara rasmi menambah konfigurasi "security.limit_extensions", yang secara lalai hanya membenarkan pelaksanaan fail dengan sambungan ".php", menyebabkan masalah jenis fail lain tidak disokong.
Penerangan rasmi:
; Limits the extensions of the main script FPM will allow to parse. This can ; prevent configuration mistakes on the web server side. You should only limit ; FPM to .php extensions to prevent malicious users to use other extensions to ; exectute php code. ; Note: set an empty value to allow all extensions. ; Default Value: .php ;security.limit_extensions = .php .php3 .php4 .php5
Ubah suai php-fpm.conf: (tambah sambungan fail yang diperlukan)
security.limit_extensions = .php .html .js .css .jpg .jpeg .gif .png .htm
3 .fix_pathinfo
Diakses melalui URL ini, ralat Acess dinafikan dipaparkan.
log ralat nginx:
2016/07/08 09:47:12 [error] 24297#0: *3348 FastCGI sent in stderr: "Access to the script '/home/www/home.php/game/qr' has been denied (see security.limit_extensions)" while reading response header......
Ubah suai php.ini: (cgi.fix_pathinfo lalai kepada 1)
cgi.fix_pathinfo = 1
Penerangan rasmi:
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo
Malah, cgi.fix_pathinfo = 1 akan menyebabkan kerentanan penghuraian jenis fail adalah disyorkan untuk menetapkan cgi.fix_pathinfo = 0.
( Pemahaman tentang kelemahan:
Apabila cgi.fix_pathinfo=1, laluan akses: /foo.jpg/file.php, jika fail file.php tidak wujud, php parser Akan cuba meneka fail yang ingin anda laksanakan dan lihat kembali sepanjang laluan Jika foo.jpg wujud dan mengandungi kod php, php parser akan melaksanakan foo.jpg Apabila cgi.fix_pathinfo=0 laluan dan menghentikan pemprosesan jika fail tidak ditemui ) tidak dapat berfungsi dengan baik.
4.
Tetapkan pada php.ini: open_basedir=/home:/tmp/:/proc/
Mulakan semula php-fpm
Apabila mengakses halaman web dan menekan ctrl F5 untuk memuat semula dengan kerap, ralat Access Denied akan dilaporkan. Akses Dinafikan hanya muncul sekali-sekala, bukan 403 sepanjang masa.
pengelogan ralat nginx:
2016/07/09 08:32:40 [error] 26954#0: *2127721 FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(/home/www/touch/web/index.php) is not within the allowed path(s): (/home/wwwroot:/tmp/:/proc/) in Unknown on line 0 PHP message: PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0 Unable to open primary script: /home/www/touch/web/index.php (Permission denied)" while reading response header from upstream, client: 117.136.1.22, server: test.hjq.com, request: "GET /index.php?c=Zs&a=getcontent HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "test.hjq.com"
Tutorial Video PHP
"Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat nginx php403. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP menggunakan sambungan MySQLI dan PDO untuk berinteraksi dalam operasi pangkalan data dan pemprosesan logik sisi pelayan, dan memproses logik sisi pelayan melalui fungsi seperti pengurusan sesi. 1) Gunakan MySQLI atau PDO untuk menyambung ke pangkalan data dan laksanakan pertanyaan SQL. 2) Mengendalikan permintaan HTTP dan status pengguna melalui pengurusan sesi dan fungsi lain. 3) Gunakan urus niaga untuk memastikan atomik operasi pangkalan data. 4) Mencegah suntikan SQL, gunakan pengendalian pengecualian dan sambungan penutup untuk debugging. 5) Mengoptimumkan prestasi melalui pengindeksan dan cache, tulis kod yang sangat mudah dibaca dan lakukan pengendalian ralat.

PHP digunakan untuk membina laman web dinamik, dan fungsi terasnya termasuk: 1. Menjana kandungan dinamik dan menghasilkan laman web secara real time dengan menyambung dengan pangkalan data; 2. Proses Interaksi Pengguna dan Penyerahan Bentuk, Sahkan Input dan Menanggapi Operasi; 3. Menguruskan sesi dan pengesahan pengguna untuk memberikan pengalaman yang diperibadikan; 4. Mengoptimumkan prestasi dan ikuti amalan terbaik untuk meningkatkan kecekapan dan keselamatan laman web.

Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

Cara mengkonfigurasi nama domain Nginx pada pelayan awan: Buat rekod yang menunjuk ke alamat IP awam pelayan awan. Tambah blok hos maya dalam fail konfigurasi Nginx, menyatakan port pendengaran, nama domain, dan direktori akar laman web. Mulakan semula nginx untuk memohon perubahan. Akses konfigurasi ujian nama domain. Nota Lain: Pasang sijil SSL untuk membolehkan HTTPS, pastikan firewall membenarkan trafik port 80, dan tunggu resolusi DNS berkuatkuasa.

Kaedah yang boleh menanyakan versi nginx adalah: gunakan perintah nginx -v; Lihat arahan versi dalam fail nginx.conf; Buka halaman ralat Nginx dan lihat tajuk halaman.

Memulakan pelayan Nginx memerlukan langkah-langkah yang berbeza mengikut sistem operasi yang berbeza: Sistem Linux/Unix: Pasang pakej Nginx (contohnya, menggunakan apt-get atau yum). Gunakan SystemCTL untuk memulakan perkhidmatan Nginx (contohnya, SUDO SystemCTL Mula Nginx). Sistem Windows: Muat turun dan pasang fail binari Windows. Mula Nginx menggunakan nginx.exe executable (contohnya, nginx.exe -c conf \ nginx.conf). Tidak kira sistem operasi yang anda gunakan, anda boleh mengakses IP pelayan

Di Linux, gunakan arahan berikut untuk memeriksa sama ada nginx dimulakan: Hakim status SistemCTL Nginx berdasarkan output arahan: Jika "Aktif: Aktif (Running)" dipaparkan, Nginx dimulakan. Jika "aktif: tidak aktif (mati)" dipaparkan, nginx dihentikan.
