Konfigurasi Lokasi Nginx untuk Subfolder
Dalam artikel ini, kami akan meneroka cara mengkonfigurasi Nginx untuk menyampaikan kandungan daripada dua subfolder, satu di laluan akar dan satu lagi pada URL tertentu.
Pertimbangkan direktori berikut struktur:
/var/www/myside/ ├── static ├── manage
Matlamat kami adalah untuk menjadikan folder /statik boleh diakses pada URL akar (cth., http://example.org/) dan folder /manage boleh diakses di /manage (cth., http ://example.org/manage). Dalam kes ini, folder /manage mengandungi kod rangka kerja PHP Slim, dengan fail PHP sebenar terletak dalam /var/www/mysite/manage/public/index.php.
Konfigurasi Nginx
Untuk mencapai matlamat ini, kami boleh menggunakan arahan lokasi Nginx. Berikut ialah konfigurasi yang mungkin:
server { listen 80; server_name example.org; error_log /usr/local/etc/nginx/logs/mysite/error.log; access_log /usr/local/etc/nginx/logs/mysite/access.log; root /var/www/mysite; location / { root /var/www/mysite/static; index index.html; } location /manage { alias /var/www/mysite/manage/public; index index.php; if (!-e $request_filename) { rewrite ^ /manage/index.php last; } location ~ \.php$ { if (!-f $request_filename) { return 404; } fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_index index.php; } }
Penjelasan
Mari kita pecahkan konfigurasi:
Penggunaan alias lwn root
Apabila menggunakan alias, Nginx menyediakan fail daripada direktori yang ditentukan sambil mengekalkan URI asal. Ini berguna untuk tujuan kami, kerana kami mahu URI /manage menghala ke direktori /var/www/mysite/manage/public.
Sebaliknya, root menukar direktori root untuk blok lokasi, jadi ia tidak sesuai untuk senario kami di mana kami ingin menyampaikan subfolder berbeza dari lokasi berbeza.
Tulis Semula Peraturan untuk index.php
Peraturan tulis semula memastikan permintaan untuk fail yang tidak wujud dalam folder /manage dialihkan ke index.php. Ini membolehkan aplikasi PHP Slim mengendalikan permintaan.
Pengendalian Fail PHP
Kedua-dua blok lokasi untuk pengendalian fail PHP termasuk konfigurasi yang diperlukan untuk menjalankan skrip PHP, seperti FastCGI tetapan dan pembolehubah. Arahan fastcgi_pass menghalakan permintaan PHP ke pelayan PHP FastCGI.
Nota Akhir
Pastikan anda memastikan pelayan PHP FastCGI anda berjalan dan dikonfigurasikan dengan betul. Persediaan ini sepatutnya membolehkan anda menyediakan kandungan daripada kedua-dua subfolder /statik dan /urus dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi Nginx untuk Menyajikan Kandungan daripada Dua Subfolder dengan Laluan Root Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!