Konfigurasikan tapak web subdomain nginx.conf untuk laravel dan halakan direktori root ke public
server {
listen 80;
server_name local.com ;
root /home/wwwroot/default/laravel/public/;
include enable-php.conf;
index index.php index.html index.htm;
location / {
#index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}
access_log /home/wwwlogs/access.log;
}
Indeks.php laravel public akan memerlukan beberapa fail
memerlukan __DIR__.'/../bootstrap/autoload.php';
merujuk fail di luar direktori subdomain
Ia akan muncul apabila anda melawat local.com
local.com pada masa ini tidak dapat mengendalikan permintaan ini.
Ralat HTTP 500
Tetapi apabila saya melawat http://127.0.0.1/laravel/public/, aksesnya adalah normal
keizinan fail laravel
drwxr-xr-x 6 www www 4096 11 Mei 20:42 app
-rwxr-xr-x 1 www 1646 11 Mei 20:42 artisan
drwxrwxrwx 9 6 Mei 1
-rw-r--r-- 1 www www 1300 11 Mei 20:42 composer.json
-rw-r--r-- 1 www www 122597 7 Jun 10:18 composer.lock
drwxr-xr-x 2 www www 4096 11 Mei 20:42 konfigurasi
drwxr-xr-x 5 www www 4096 11 Mei 20:42 pangkalan data
-rw-r--r-- 1 www 1062 11 Mei 20:42 package.json
-rw -r--r-- 1 www www 1055 May 11 20:42 phpunit.xml
drwxrwxrwx 4 www www 4096 Jun 7 10:49 public
-rw-r--r -- 1 www 3420 May 12 20:4 readme.md
drwxr-xr-x 5 www www 4096 Mei 11 20:42 sumber
drwxr-xr-x 2 www www 4096 Mei 11 20:42 laluan
-rw-r--r-- 1 www 563 Mei 11 20:42 Server.php
drwxrwxrwx 5 www www 4096 Mei 11 20:42 PenyimpananDDRWWXR-XR-X 4 www www 4096 Mei 11 20: 42 TESTSDDRWXRRWX 31 www www 4096 Jun -r--r-- 1 www www 555 11 Mei 20:42 webpack.mix.js
Saya rasa masalahnya ialah php melarang merujuk fail di luar direktori root
atau nginx melarang mengakses fail di luar direktori root
Sedang mencari penyelesaian?
Saya sendiri dah jumpa sebab tapi masih tiada penyelesaian
Tunjukkan hasilnya
Kod itu pastinya kod sumber rangka kerja laravel Sebab utama mungkin anda tidak boleh merujuk fail luaran
Perkenalkan fail ini ke dalam nginx.conf sertakan fastcgi.conf;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/:/home/wwwroot/default/laravel/";
Tambahkan direktori folder luar yang ingin anda rujuk, dan masalah ini akan diselesaikan, ibu The laravel framework tidak mengambil berat tentang perkara ini, yang menyebabkan masalah seperti ini, saya menghadapi masalah ini dan tidak ada tempat untuk mencarinya
Lihat log ralat nginx, sebarang ralat 500 adalah mungkin
Ini bukan masalah dengan nginx, dan bukan juga masalah dengan kebenaran Fail di luar direktori seperti milik anda tidak boleh diperolehi.