Situs laravel saya berfungsi sebelumnya, saya baru saja meningkatkan ke Apache 2.4 dan PHP 5.5.7.
Sekarang saya mendapatkan layar kosong putih ketika saya pergi ke laravel.mydomain.com, tidak ada apa pun di log kesalahan apache, rute, dan lain-lain yang seharusnya baik-baik saja seperti sebelumnya.
.htaccess sedang dimuat karena saya mendapatkan 500 ketika saya memasukkan baris yang tidak valid ke /var/sites/laravel/public/.htaccess.
Berikut ini .htaccess saya:
$ cat /var/sites/laravel/public/.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Inilah arahan host virtual saya:
DocumentRoot "/var/sites/laravel/public"
ServerName laravel.mydomain.com
<Directory "/var/sites/laravel/public">
AllowOverride All
allow from all
Options +Indexes
Require all granted
</Directory>
Dan apachectl -S
$ /usr/local/apache2/bin/apachectl -S
VirtualHost configuration:
*:* is a NameVirtualHost
default server mydomain.com (/usr/local/apache2/conf/extra/httpd-vhosts.conf:25)
port * namevhost mydomain.com (/usr/local/apache2/conf/extra/httpd-vhosts.conf:25)
port * namevhost laravel.mydomain.com (/usr/local/apache2/conf/extra/httpd- vhosts.conf:34)
ServerRoot: "/usr/local/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/usr/local/apache2/logs/error_log"
Mutex rewrite-map: using_defaults
Mutex default: dir="/usr/local/apache2/logs/" mechanism=default
PidFile: "/usr/local/apache2/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="daemon" id=1 not_used
Group: name="daemon" id=1 not_used
Jawaban:
Apache
Apakah jawaban ini menjelaskan atau membantu situasi Anda? Mengupgrade ke Apache 2.4 disertai dengan beberapa perubahan dalam konfigurasi Apache.
Laravel
Apakah Anda memeriksa log Laravel atau log Apache?
Sejak memutakhirkan ke Laravel 4.1, saya mengalami "kesalahan" layar putih (WSOD) ketika aplikasi tidak dapat menulis ke lokasi log. Saya selalu menyelesaikan ini dengan membuat direktori app / storage dapat ditulis oleh Apache (baik grup dapat ditulis ke "www-data", "apache" atau world-writable - itu tergantung pada penyiapan server Anda.
Pengguna Server Web
Di server Ubuntu / Debian, PHP Anda mungkin dijalankan sebagai pengguna "www-data". Pada server CentOS / RedHat / Fedora, PHP Anda mungkin dijalankan sebagai pengguna "apache".
Pastikan file Anda dimiliki oleh pengguna yang menjalankan PHP:
Laravel 4
Laravel 5+ (termasuk 6)
sumber
Pembaruan untuk jawaban fideloper untuk Laravel 5 dan struktur file barunya adalah:
sumber
Coba ini, di halaman public / index.php
sumber
Langkah-langkah berikut memecahkan masalah layar putih kosong di Laravel 5 saya.
bootstrap/cache
danstorage
.env.example
menjadi.env
Ini akan menghasilkan kunci enkripsi dan memperbarui nilai file
APP_KEY
dalam.env
Ini seharusnya menyelesaikan masalah.
Jika masalah masih ada, perbarui
config/app.php
dengan kunci baru yang dihasilkan dari perintah menghasilkan kunci artisan di atas:sumber
bagi siapa saja yang mendapatkan halaman kosong bahkan setelah membuat penyimpanan dapat diakses untuk menampilkan kesalahan, letakkan dua baris ini di baris pertama public / index.php untuk melihat apa yang terjadi setidaknya. bagi saya kesalahan ini ada di sana: Kelas 'PDO' tidak ditemukan di /var/www/***/config/database.php di baris 16
sumber
Ketika saya baru mengenal Linux, saya biasanya menemukan kesalahan ini dengan Proyek Laravel saya. Kesalahan putih berarti kesalahan, Mungkin ada beberapa masalah izin atau kesalahan.
Anda hanya perlu mengikuti dua langkah, dan akan bekerja seperti juara :)
(1) Beri izin. Jalankan perintah ini dari direktori root proyek Anda
(2) Jika Anda mengkloning proyek atau menarik dari github lalu jalankan
(3) Konfigurasikan file .env Anda dengan benar, dan proyek Anda akan berfungsi.
sumber
Saya berjuang dengan masalah serupa di server CentOS. Menggunakan php artisan serv dan mengaksesnya melalui port 8000 pada mesin lokal bekerja dengan baik tetapi tidak dapat membuat mesin remote saya memuat tampilan tertentu. Saya bisa mengembalikan string dengan baik, dan beberapa tampilan sedang dimuat. Mengejar izin saya untuk beberapa saat sebelum akhirnya saya menyadari bahwa itu adalah masalah SELinux. Saya hanya mengaturnya dari menegakkan menjadi permisif dan berhasil. Harapan yang membantu orang lain di luar sana yang mungkin mengalami masalah yang sama.
sumber
Saya juga memiliki satu opsi lagi mengapa masalah halaman kosong dapat terjadi. Jika Anda dalam mode produksi dan jika Anda menyimpan file konfigurasi Anda dengan php artisan (config: cache), coba hapus file cache yang menjalankan:
atau hapus secara manual (bootstrap / cache / config.php)
sumber
Menjalankan perintah ini menyelesaikannya untuk saya:
Saya kira halaman kesalahan kosong adalah beberapa cara cache. Harus menghapus cache.
sumber
Dalam kasus saya, saya telah menginstal
laravel
berkali-kali, dan saya yakin bahwa izin menulis folder telah diberikan dengan benar.Seperti kebanyakan jawaban di atas:
Kesalahannya adalah konfigurasi nginx saya berasal dari dokumentasi resmi .
Saya hanya mengubah nama domain setelah menyalin, lalu saya mendapat halaman kosong. Saya mencoba memulai ulang
nginx
danphp-fpm
, tetapi tidak berhasil untuk saya.Akhirnya, saya menambahkan konfigurasi baris ini untuk menyelesaikan masalah.
Saya harap saya bisa membantu orang lain.
sumber
Menghadapi layar kosong di Laravel 5.8. Semuanya tampak baik-baik saja dengan penyimpanan dan folder bootstrap yang diberi 777 hak. Di
Ini menunjukkan masalah itu adalah Ruang Putih di Nama Aplikasi dari file .env
sumber
Saya memiliki beberapa masalah untuk memasangnya di mesin Vagrant. Yang benar-benar berhasil bagi saya adalah mengeksekusi:
chmod -R o+w app/storage/
dari dalam mesin gelandangan.
Referensi: https://laracasts.com/lessons/vagrant-and-laravel
sumber
Hal lain yang dapat menyebabkan WSOD kehilangan kata kunci 'kembali', seperti:
return View::make('yourview');
sebagai lawan
View::make('yourview');
sumber
Terkadang karena laravel 5.1 membutuhkan PHP> = 5.5.9. Perbarui php akan menyelesaikan masalah.
sumber
Aneh bagi saya, tetapi dalam kasus saya, saya harus menghapus cache laravel untuk menyelesaikan masalah.
sumber
Saya juga menghadapi masalah yang sama setelah melakukannya
composer update
Saya mencoba menginstal
composer required monolog/monolog
juga tetapi tidak berhasil.Kemudian saya menghapus direktori / vendor dan menjalankan
composer install
dan bekerja seperti biasa.pada dasarnya itu pasti telah mengembalikan monolog saya dan versi paket stabil lainnya kembali ke sebelumnya. jadi lebih baik tidak
composer update
apa yang saya perhatikan membandingkan kedua folder / vendor dan menemukan
classes
file - file di bawah/vendor/monolog/monolog/src/Handler
hilang setelah komposer diperbarui.sumber
Mungkin ada banyak alasan di balik layar kosong tanpa kesalahan. Saya telah menghadapi masalah ini berkali-kali setiap kali saya ingin mengunggah proyek laravel di shared hosting.
Alasan: Versi PHP Salah
Dalam kasus saya, masalahnya adalah karena versi php yang salah. Saya punya versi php 7.1 di komputer lokal sedangkan di shared hosting cpanel ada versi php 5.6. Mengganti versi dari 5.6 ke 7.1 berhasil untuk saya.
Anda dapat mengubah versi php di cpanel dari multiphp manager yang tersedia di halaman muka cpanel.
sumber
Terkadang di route.php yang mungkin Anda miliki
ditulis sebelumnya
Ini bisa menjadi metode kosong
Controller::show()
ketika Anda mulai mengembangkan pengontrol Anda dari awal. Dalam hal ini Anda akan mendapatkan halaman kosong kosong saat meminta/add
url. Itu terjadi karena permintaan ditangani oleh/{id}
rute, dan metodenya tidak mengembalikan apa-apa.Coba saja tempatkan
/add
rute sebelumnya/{id}
sumber
Masalah lain dengan perilaku yang sama adalah menggunakan Laravel 3 dengan PHP 5.5.x. Anda harus mengubah beberapa nama fungsi laravel "yield () karena merupakan kata yang sudah dipesan di php 5.5
sumber
Alasannya bisa
Middleware
jika Anda lupa meletakkan kode berikut di akhirhandle
fungsisumber
Saya juga mendapatkan kesalahan yang sama ketika saya memulai pertama kali di laravel + Ubuntu 14.04 Saya cukup klik kanan pada bootstrap dan folder penyimpanan >>> properti >>> izin >> Akses Orang Lain >>> ubah ke "Buat dan hapus file" Ubah izin untuk file tertutup
Terima kasih
sumber
Dapatkan ini dari forum Laravel, tetapi jika Anda baru saja meningkatkan versi Laravel DAN versi PHP DAN menjalankan nginx, pastikan Anda telah mengubah file konfigurasi nginx Anda untuk mencerminkan versi PHP yang baru. Misalnya:
Di file konfigurasi situs nginx Anda (di sini: / etc / nginx / sites-available), ubah
fastcgi_pass unix:/var/run/php5-fpm.sock;
untuk
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
sumber
Saya memiliki masalah yang sama. Saya sudah mengubah folder chmod untuk folder Storage. mengisi pengaturan database di .env, tetapi tidak memperbaiki masalah. Saya menggunakan Laravel 5.5 dan saya menggunakan PHP 5.6, untuk memperbaikinya saya pergi ke (cpanel-> PHP Selector) dan saya mengubah ke PHP 7.1 Dan masalah selesai.
sumber
Pada kasus normal, kesalahan harus dicatat kecuali
Skrip tidak dapat menulis ke file log
Atau kesalahan terjadi pada log server aplikasi pemeriksaan tingkat yang lebih tinggi seperti Appache || Nginx
Atau itu batasan sumber daya Seperti pengaturan ini PHP
Atau batas OS dan sebagainya
sumber
Selain masalah Izin dalam penyimpanan dan folder cache dan masalah versi php, mungkin ada alasan lain untuk menampilkan halaman kosong tanpa pesan kesalahan.
Misalnya, saya mendapat pesan kesalahan deklarasikan ulang tanpa log apa pun dan dengan halaman putih kosong. Ada konflik antara fungsi pembantu saya sendiri dan fungsi vendor.
Saya sarankan sebagai titik awal , jalankan
artisan
perintah. sebagai contoh:Jika ada masalah, itu akan diminta di terminal dan Anda punya Petunjuk dan Anda dapat mencari solusinya di Google.
sumber
Layar kosong juga terjadi ketika aplikasi Laravel Anda mencoba menampilkan terlalu banyak informasi dan batasan PHP mulai berlaku (misalnya menampilkan puluhan ribu rekaman database pada satu halaman). Bagian terburuknya adalah, Anda tidak akan melihat kesalahan apa pun di log Laravel. Anda mungkin tidak akan melihat kesalahan apa pun di log PHP FPM juga. Anda mungkin menemukan kesalahan di log server http Anda, misalnya nginx melempar sesuatu seperti
FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of XXX bytes exhausted
.Tip singkat: tambahkan di
->limit(1000)
mana1000
batas Anda, pada objek kueri Anda.sumber
Saya mengalami masalah ini ketika saya mencoba menjalankan aplikasi Laravel 5.8 di server saya, mengunggah dari pengembangan lokal menggunakan Vagrant Homestead. Setelah beberapa saat saya menemukan bahwa subdomain dev di server langsung yang saya jalankan entah bagaimana diatur ke PHP 5.6.
cPanel> MultiPHP Manager> Setel ke PHP 7.2
perbaiki ini untukku. Semoga ini bisa membantu seseorang.
sumber
gunakan .htaccess ini untuk menyelesaikannya
sumber
dalam kasus saya, masalah LAYAR KOSONG PUTIH sesederhana kesalahan ketik atau karakter yang salah pada file env. Saya menerapkan sosialita, jadi ketika saya menyiapkan kredensial .env untuk Google+ seperti ini:
Namun, file .env tidak dapat menggunakan tanda '+', jadi saya harus melakukan koreksi ini:
Saya harap ini membantu Anda menemukan kesalahan bodoh ...
sumber
Dalam kasus saya, memulai ulang apache memperbaiki masalah. untuk Ubuntu / Debian:
sumber