


Artikel ini bertujuan untuk membimbing pemaju bagaimana untuk mengkonfigurasi aplikasi Laravel dengan betul melalui PHP-FPM dalam persekitaran Nginx supaya mereka dapat menghuraikan fail PHP. Artikel ini akan memperincikan langkah -langkah utama untuk mengkonfigurasi Nginx dan menyediakan kod sampel untuk membantu pemaju menyelesaikan masalah parsing fail PHP yang dihadapi ketika menggunakan aplikasi Laravel di Nginx dan memastikan aplikasi itu dapat dijalankan secara normal.
Apabila menggunakan aplikasi Laravel menggunakan NGINX, keperluan yang sama adalah untuk menunjuk laluan tertentu (seperti /API) ke aplikasi Laravel, sambil mengekalkan laluan lain yang menunjuk kepada perkhidmatan lain (seperti aplikasi React). Apabila konfigurasi tidak betul, NGINX mungkin tidak dapat menghuraikan fail PHP dengan betul, menyebabkan kod PHP dipaparkan secara langsung dalam penyemak imbas dan bukannya hasil pelaksanaan. Berikut adalah langkah terperinci tentang cara menyelesaikan masalah ini.
Pastikan php-fpm dipasang
PHP-FPM (Pengurus Proses FastCGI) adalah pengurus proses yang digunakan untuk mengendalikan permintaan PHP. Pastikan anda memasang PHP-FPM pada pelayan anda dan versi itu serasi dengan aplikasi Laravel anda. Anda boleh menggunakan arahan berikut untuk memasang PHP-FPM. Nombor versi tertentu akan diselaraskan mengikut versi PHP anda:
Sudo Apt-Get Update SUDO APT-GET Pasang Php8.1-FPM # Contoh: Pasang PHP-FPM untuk PHP 8.1
Selepas pemasangan selesai, mulakan perkhidmatan PHP-FPM:
SUDO Systemctl Mula Php8.1-FPM # Contoh: Mula PHP-FPM untuk PHP 8.1 SUDO Systemctl Dayakan Php8.1-Fpm # Sediakan Auto-Start di Boot
Konfigurasikan nginx
Seterusnya, NGINX perlu dikonfigurasikan untuk memajukan permintaan untuk laluan tertentu ke PHP-FPM. Edit fail konfigurasi nginx (biasanya terletak di direktori/etc/nginx/sites-tersedia/direktori) dan cari blok pelayan yang berkaitan dengan aplikasi Laravel anda.
Dengan mengandaikan anda ingin menunjuk jalan /API ke aplikasi Laravel anda, berikut adalah contoh konfigurasi:
pelayan { Dengar 80; server_name domain.com; root/var/www/app; # Direktori root indeks indeks aplikasi reaksi.html; Lokasi /API { alias/var/www/api/awam/; # Direktori awam aplikasi Laravel try_files $ uri $ uri//api/index.php?$Query_string; Lokasi ~ \ .php $ { #root/var/www/api/awam; # Komen kerana alias telah ditakrifkan di lokasi /API termasuk coretan/fastcgi-php.conf; # Mengandungi konfigurasi umum php-fpm fastcgi_pass unix: /run/php/php8.1-fpm.sock; # Menentukan laluan fail soket php-fpm fastcgi_param script_filename $ document_root $ fastcgi_script_name; termasuk fastcgi_params; } } lokasi/{ # React Configuration Application try_files $ uri $ uri/ = 404; } }
Butiran Konfigurasi:
- Lokasi /API : Menentukan peraturan untuk pengendalian /laluan API.
- alias/var/www/api/awam/: Menentukan direktori awam aplikasi Laravel sebagai direktori akar/API.
- try_files $ uri $ uri//api/index.php?$Query_string;: Cuba cari URI yang diminta sebagai fail atau direktori. Sekiranya tidak dijumpai, permintaan itu diarahkan ke indeks fail entri Laravel dan rentetan pertanyaan diluluskan.
- Lokasi ~ \ .php $ : Menentukan peraturan untuk memproses fail PHP.
- Termasuk coretan/fastcgi-php.conf;: mengandungi konfigurasi umum php-fpm yang disediakan oleh nginx, yang termasuk beberapa tetapan fastcgi_param yang biasa digunakan.
- fastcgi_pass unix: /run/php/php8.1-fpm.sock;: Tentukan laluan fail soket php-fpm. Sila sesuaikan mengikut versi dan konfigurasi PHP-FPM anda. Anda boleh menggunakan PS AUX | GREP PHP-FPM Untuk mencari laluan fail soket.
- fastcgi_param script_filename $ document_root $ fastcgi_script_name;: Tetapkan parameter script_filename untuk memberitahu php-fpm jalan ke fail php untuk dilaksanakan. $ document_root adalah direktori root nginx, dan $ fastcgi_script_name adalah nama fail php yang diminta.
- Lokasi / : Menentukan peraturan untuk memproses direktori root, dikonfigurasi di sini sebagai aplikasi React.
Perkara yang perlu diperhatikan:
- Pastikan fastcgi_pass menunjuk ke laluan fail soket PHP-FPM yang betul.
- Laraskan laluan konfigurasi dan soket PHP-FPM mengikut versi PHP anda.
- Semak keizinan fail dan direktori untuk memastikan bahawa proses NGINX dan PHP-FPM mempunyai akses kepada fail aplikasi Laravel.
Mulakan semula nginx dan php-fpm
Setelah melengkapkan konfigurasi, simpan fail dan mulakan semula perkhidmatan NGINX dan PHP-FPM:
sudo nginx -t # menguji sama ada konfigurasi adalah betul sudo systemctl mulakan semula nginx SUDO SystemCTL Mulakan semula Php8.1-FPM # Contoh: Mulakan semula PHP-FPM untuk PHP 8.1
Konfigurasi ujian
Sekarang, anda boleh menguji sama ada aplikasi Laravel anda boleh menghuraikan fail PHP dengan betul dengan melawat domain.com/api. Jika semuanya dikonfigurasikan dengan betul, anda harus dapat melihat halaman aplikasi Laravel.
Meringkaskan
Melalui langkah-langkah di atas, anda harus berjaya mengkonfigurasi NGINX dan PHP-FPM supaya aplikasi Laravel dapat menghuraikan fail PHP dengan betul dan wujud bersama dengan perkhidmatan lain (seperti aplikasi React). Pastikan anda menyesuaikan konfigurasi mengikut persekitaran sebenar dan versi PHP anda, dan pastikan keizinan fail dan direktori adalah betul.
Atas ialah kandungan terperinci Konfigurasikan aplikasi Laravel menggunakan Nginx dan PHP-FPM. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

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)

UseFilter_var () TOVALIDATEMailSyntaxandCheckDnsrr () TOVERIFYDOnMAINMXRECORDS.example: $ e -mel = "user@example.com"; if (filter_var ($ e -mel, filter_email) && checkDnsrr (expode '

Artikel ini membincangkan secara mendalam bagaimana menggunakan pernyataan kes untuk melakukan pengagregatan bersyarat di MySQL untuk mencapai penjumlahan bersyarat dan mengira bidang tertentu. Melalui kes sistem langganan praktikal, ia menunjukkan bagaimana secara dinamik mengira jumlah tempoh dan bilangan peristiwa berdasarkan status rekod (seperti "akhir" dan "membatalkan"), dengan itu mengatasi batasan fungsi jumlah tradisional yang tidak dapat memenuhi keperluan pengagregatan bersyarat kompleks. Tutorial menganalisis penerapan pernyataan kes dalam jumlah fungsi secara terperinci dan menekankan pentingnya bersatu ketika berurusan dengan nilai nol yang mungkin dari gabungan kiri.

UseUnserialize (Serialize ($ obj)) fordeepcopyingWhenallDataisserizable; jika tidak, pelaksanaan__clone () tomanuallyduplicatenestedObjectsandavoidsharedReferences.

UseArray_Merge () toCombineArrays, OverwritingDuplicateStringKeySandreIndexingNumericKeys; forsimplerconcatenation, terutamaInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

Namespacesinphporganizecodeandpreventnamingnamingconflictsbygroupinglasses, antara muka, fungsi, dan constantsunderaspecificname.2.defineAnamespaceusingthenamespaceywordetopofafile, diikuti olehbythenamespaceakenam

Toupdateadatabaserecordinphp, firstConnectusingPdoormySqli, thenusePePreparedStatementStoExecuteAseCureSqlupDateQuery.example: $ pdo = newpdo ("mysql: host = localhost; dbName = your_database: $ userbase: $ userbase"

The__call () methodistriggeredWhenaninaccessibleorundefinedmethodiscalledonanObject, membolehkanCustomHandlylyAccepteThemeThodnamnamnamnents, asshownwhencallingundefinedmethodslikesayhello ()

UsePathinfo ($ FileName, pathinfo_extension) togetthefileextension; itreliLyHandlesmultipledotsandgecases, returnTheExtension (mis., "Pdf") Oranemptystringifnoneexists.
