Laravel หน้าจอสีขาวว่างเปล่า


117

ไซต์ laravel ของฉันใช้งานได้ก่อนหน้านี้ฉันเพิ่งอัปเกรดเป็น Apache 2.4 และ PHP 5.5.7

ตอนนี้ฉันได้รับหน้าจอว่างเปล่าสีขาวเมื่อฉันไปที่ laravel.mydomain.com ไม่มีสิ่งใดในบันทึกข้อผิดพลาด apache เส้นทางและอื่น ๆ ควรจะใช้ได้เหมือนเดิม

.htaccess กำลังโหลดเมื่อฉันได้รับ 500 เมื่อฉันแทรกบรรทัดที่ไม่ถูกต้องไปที่ /var/sites/laravel/public/.htaccess

นี่คือ. htaccess ของฉัน:

$ 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]

นี่คือคำสั่งโฮสต์เสมือนของฉัน:

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>

และ 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

ลองติดตั้ง Laravel ใหม่ที่ว่างเปล่าใน laravel.mydomain.com - ใช้งานได้หรือไม่
Laurence

อืมฉันพยายามสร้างโปรเจ็กต์ด้วยผู้แต่งและดูเหมือนว่าฉันพลาด openssl มีวิธีง่ายๆในการเพิ่มในภายหลังหรือไม่หรือฉันต้องคอมไพล์ PHP ใหม่ด้วยตัวเลือกการกำหนดค่าปัจจุบัน + - ด้วย-openssl
Mico

1
ฉันมีปัญหาหน้าจอว่างเปล่านี้เมื่อย้ายโครงการที่ทำงานอยู่แล้วไปยังเซิร์ฟเวอร์การจัดเตรียม ฉันไปไม่ถึงไหนเลยตัดสินใจทำเช่นเดียวกับคำแนะนำของ @ the-shift-exchange และสร้างการติดตั้ง Laravel ใหม่จากนั้นฉันก็พบปัญหาอย่างรวดเร็ว เซิร์ฟเวอร์การจัดเตรียมกำลังใช้งาน PHP เวอร์ชันที่ล้าสมัย Laravel ต้องการ PHP v5.4.0 เป็นอย่างน้อย คิดว่าฉันจะพูดถึงมันในกรณีที่คนอื่นมีปัญหาเดียวกัน
igneosaur

ตรวจสอบขีด จำกัด หน่วยความจำไม่ได้รับผลกระทบ - สิ่งนี้ทำให้เกิด WSOD สำหรับฉันมาก่อนใน Laravel 4
Smith

จุดข้อมูลอื่น - ฉันกดสิ่งนี้ในแอปที่ปรับใช้กับ Kubernetes โดยใช้ NFS เพื่อเมานต์ไฟล์เว็บ เนื่องจากประสิทธิภาพของ NFS ที่ช้ามากดูเหมือนว่า Laravel จะล้มเหลวในการแคชมุมมองภายในระยะเวลาที่เหมาะสม PHP-FPM ส่งคืนการตอบสนองที่ว่างเปล่า แก้ไขโดยลบมุมมองทั้งหมดด้วยตนเองและแคชใหม่
Joe Niland

คำตอบ:


222

อาปาเช่

ไม่คำตอบนี้อธิบายหรือช่วยให้สถานการณ์ของคุณหรือไม่ การอัปเกรดเป็น Apache 2.4 มาพร้อมกับการเปลี่ยนแปลงบางอย่างในการกำหนดค่า Apache

Laravel

คุณกำลังตรวจสอบบันทึกของ Laravel หรือบันทึกของ Apache หรือไม่?

ตั้งแต่อัปเกรดเป็น Laravel 4.1 ฉันมี "ข้อผิดพลาด" หน้าจอสีขาว (WSOD) เมื่อแอปพลิเคชันไม่สามารถเขียนไปยังตำแหน่งบันทึกได้ ฉันแก้ไขปัญหานี้มาโดยตลอดโดยการทำให้แอป / ไดเร็กทอรีที่เก็บข้อมูลสามารถเขียนได้โดย Apache (ทั้งกลุ่มสามารถเขียนเป็น "www-data", "apache" หรือ world-writable ก็ได้ซึ่งขึ้นอยู่กับการตั้งค่าเซิร์ฟเวอร์ของคุณ

ผู้ใช้เว็บเซิร์ฟเวอร์

บนเซิร์ฟเวอร์ Ubuntu / Debian PHP ของคุณอาจทำงานในฐานะผู้ใช้ "www-data" บนเซิร์ฟเวอร์ CentOS / RedHat / Fedora PHP ของคุณอาจทำงานในฐานะผู้ใช้ "apache"

ตรวจสอบให้แน่ใจว่าไฟล์ของคุณเป็นของผู้ใช้ที่ใช้ PHP:

# Debian/Ubuntu
$ sudo chown -R www-data /path/to/laravel/files

# CentOS/RedHat/Fedora
$ sudo chown -R apache /path/to/laravel/files

โปรดทราบว่าคุณอาจไม่ได้เรียกใช้เป็น www-data ของผู้ใช้หรือ apache ขึ้นอยู่กับโฮสติ้งและการตั้งค่าของคุณ!

ลาราเวล 4

# Group Writable (Group, User Writable)
$ sudo chmod -R gu+w app/storage

# World-writable (Group, User, Other Writable)
$ sudo chmod -R guo+w app/storage

Laravel 5+ (รวม 6)

# Group Writable (Group, User Writable)
$ sudo chmod -R gu+w storage

# World-writable (Group, User, Other Writable)
$ sudo chmod -R guo+w storage

#####
# The bootstrap/cache directory may need writing to also
##

# Group Writable (Group, User Writable)
$ sudo chmod -R gu+w bootstrap/cache

# World-writable (Group, User, Other Writable)
$ sudo chmod -R guo+w bootstrap/cache

9
ดูเหมือนว่าจะเป็นปัญหาด้านการอนุญาต chmodding ไดเร็กทอรี laravel ทำให้มันใช้งานได้
Mico

3
@fideloper คำตอบนี้ช่วยชีวิตฉันได้จริงๆ ได้รับ WSOD และไม่มีอะไรปรากฏในบันทึกที่ใดก็ได้ chmodding แอพ / ที่เก็บข้อมูลดูแลมัน ฉันแนะนำหมวกเสมือนจริงให้คุณ!
Tim Habersack

ขอบคุณจริงๆที่ช่วยฉันไว้ที่นี่ ฉันได้รับ X-pad: หลีกเลี่ยงข้อผิดพลาดของเบราว์เซอร์ในการตอบสนอง http ของฉันและฉันคิดว่าเป็นอย่างนั้น
Simon Bennett

4
สิทธิ์ในโฟลเดอร์จัดเก็บช่วยแก้ปัญหาดังกล่าวของฉัน แต่ทำไม laravel ไม่แสดงปัญหาการอนุญาตบนเบราว์เซอร์?
Musa

4
สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้เช่นกัน .... จะไม่พบสิ่งนี้ด้วยตัวเอง ฉันยอมรับว่ามันจะดีที่สุดหากมีข้อความแสดงข้อผิดพลาดบางอย่างปรากฏขึ้นแทนที่จะเป็น "หน้าจอสีขาวแห่งความตาย"
dusty909

65

การอัปเดตคำตอบของ fideloper สำหรับ Laravel 5 และโครงสร้างไฟล์ใหม่คือ:

$ sudo chmod -R o+w storage/

รุ่งโรจน์! แก้ไขปัญหาของฉันสำหรับ L5 บนเซิร์ฟเวอร์ ubuntu 14.04
Dylan Pierce

ทำงานให้ฉันเช่นกันบน Mac OS X 10.10.3
dave

ทำงานให้ฉัน - CentOS 6.8 (รอบชิงชนะเลิศ)
ไมค์

26

ลองทำในหน้าสาธารณะ / index.php

error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set("display_errors", 1);

นี่เป็นสิ่งที่ฉันต้องการจริงๆเพราะด้วยเหตุผลบางประการในการทำงานของเซิร์ฟเวอร์ (Plesk) มันไม่ได้บันทึกอะไรลงในบันทึกข้อผิดพลาดและไม่มีอะไรลงในบันทึก laravel การเพิ่มสิ่งนี้แสดงให้ฉันเห็นว่ามันเป็นไฟล์ที่หายไปซึ่งทำให้ว่างเปล่า 500 หน้าจอขอบคุณมาก!
แซม

ฉันมีหน้าจอสีขาวและไม่มีข้อผิดพลาดเลย การอนุญาตทั้งหมดและทุกอย่างสมบูรณ์แบบ คำตอบนี้ช่วยให้ฉันเห็นสิ่งที่เกิดขึ้นจริง ขอบคุณ
SI

ยุ่งกับปัญหานี้ตั้งแต่เมื่อวานนี้ นอกเหนือจากสิทธิ์ของโฟลเดอร์ในกรณีของฉันการตรวจสอบนี้ได้รับรายงานว่าเซิร์ฟเวอร์ไม่ได้แยกโฟลเดอร์ทั้งหมดในโฟลเดอร์ผู้ขาย!? เป็นอะไรที่ลึกลับ .... เป็นแนวทางที่ดีจริงๆมีประโยชน์สำหรับเซิร์ฟเวอร์สาธารณะที่ไม่มีการเข้าถึงต่ำ
CodeToLife

26

ขั้นตอนต่อไปนี้แก้ไขปัญหาหน้าจอสีขาวว่างเปล่าบน Laravel 5 ของฉัน

  • ไปที่โฟลเดอร์รูท Laravel ของคุณ
  • ให้สิทธิ์ในการเขียนbootstrap/cacheและstorageไดเรกทอรี

sudo chmod -R 777 bootstrap / ที่เก็บแคช

  • เปลี่ยนชื่อ.env.exampleเป็น.env
  • สร้างรหัสแอปพลิเคชันด้วยคำสั่งต่อไปนี้ใน terminal / command-prompt จาก Laravel root:

php artisan key: สร้าง

สิ่งนี้จะสร้างคีย์การเข้ารหัสและอัปเดตค่าAPP_KEYใน.envไฟล์

สิ่งนี้ควรแก้ปัญหาได้

หากปัญหายังคงมีอยู่ให้อัปเดตconfig/app.phpด้วยคีย์ใหม่ที่สร้างจากคำสั่งสร้างคีย์ช่างฝีมือด้านบน:

'key' => env('APP_KEY', 'SomeRandomString'),

ถึง

'key' => env('APP_KEY', 'KEY_GENERATED_FROM_ABOVE_COMMAND'),


10

สำหรับใครก็ตามที่ได้รับหน้าว่างแม้ว่าจะทำให้พื้นที่เก็บข้อมูลสามารถเข้าถึงได้แล้วสำหรับการแสดงข้อผิดพลาดให้วางสองบรรทัดนี้ไว้ที่บรรทัดแรกของ public / index.php เพื่อดูว่าเกิดอะไรขึ้นอย่างน้อยที่สุด สำหรับฉันมีข้อผิดพลาดนี้: ไม่พบคลาส 'PDO' ใน /var/www/***/config/database.php ในบรรทัดที่ 16

error_reporting(E_ALL);
ini_set('display_errors', 1);

6

เมื่อฉันยังใหม่กับ Linux ฉันมักจะพบข้อผิดพลาดนี้ในโครงการ Laravel ของฉัน ข้อผิดพลาดสีขาวหมายถึงข้อผิดพลาดอาจมีปัญหาการอนุญาตหรือข้อผิดพลาด

คุณต้องทำตามสองขั้นตอนและจะทำงานเหมือนแชมป์ :)

(1) ให้สิทธิ์ รันคำสั่งเหล่านี้จากไดเร็กทอรีรูทของโปรเจ็กต์ของคุณ

(a) sudo chmod 777 -R storage
(b) sudo chmod bootstrap/cache

(2) หากคุณโคลนโครงการหรือดึงจาก github ให้เรียกใช้

composer install

(3) กำหนดค่าไฟล์. env ของคุณอย่างถูกต้องและโครงการของคุณจะทำงานได้


ขั้นตอนที่ (2) หายไปจากการติดตั้งของฉัน ฉันโคลนโครงการโดยคิดว่ามันมีไฟล์ที่จำเป็นทั้งหมดในไดเร็กทอรีเพื่อให้มันทำงานนอกกรอบ ฉันยังคงมีปัญหา แต่นี่เป็นขั้นตอนสำคัญ
Jonathan Hickman

5

ฉันกำลังดิ้นรนกับปัญหาที่คล้ายกันบนเซิร์ฟเวอร์ CentOS การใช้ php artisan serv และเข้าถึงผ่านพอร์ต 8000 บนเครื่องโลคัลทำงานได้ดี แต่ไม่สามารถทำให้เครื่องระยะไกลของฉันโหลดมุมมองเฉพาะได้ ฉันสามารถส่งคืนสตริงได้ดีและบางมุมมองกำลังโหลด ไล่ตามสิทธิ์ของฉันสักพักก่อนที่ฉันจะรู้ว่ามันเป็นปัญหาของ SELinux ในที่สุด ฉันเพิ่งตั้งค่าจากการบังคับใช้เป็นอนุญาตและใช้งานได้ หวังว่าจะช่วยให้คนอื่น ๆ ที่อาจประสบปัญหาเดียวกัน

setenforce permissive

สิ่งนี้ช่วยฉันได้ทุกครั้ง
Umair Hamid

5

ฉันยังมีอีกหนึ่งตัวเลือกที่อาจเกิดปัญหาหน้าว่างได้ หากคุณอยู่ในโหมดการใช้งานจริงและหากคุณแคชไฟล์ config โดย php artisan (config: cache) ให้ลองลบไฟล์แคชที่เรียกใช้งาน:

php artisan config:clear

หรือลบด้วยตนเอง (bootstrap / cache / config.php)


1
ฉันพยายามอย่างอื่นและนี่คือสิ่งสุดท้ายที่ได้ผลสำหรับฉัน
DavidHyogo

ปรากฎว่าไฟล์ env ของฉันไม่ถูกต้องเรียกใช้คำสั่งนี้แจ้งให้เราทราบ
SvEnjoyPro

4

การรันคำสั่งนี้แก้ไขให้ฉัน:

php artisan view:clear

ฉันเดาว่าหน้าข้อผิดพลาดว่างเปล่าเป็นวิธีที่แคชไว้ ต้องล้างแคช


4

ในกรณีของฉันฉันได้ติดตั้งlaravelหลายครั้งและฉันแน่ใจว่าได้รับสิทธิ์การเขียนโฟลเดอร์อย่างถูกต้อง

เช่นเดียวกับคำตอบส่วนใหญ่ข้างต้น:

sudo chmod 777 -R storage bootstrap

ความผิดพลาดเป็นว่าการกำหนดค่า Nginx ของฉันมาจากเอกสารที่เป็นทางการ

ฉันแก้ไขเฉพาะชื่อโดเมนหลังจากคัดลอก, แล้วฉันก็ได้หน้าว่าง ฉันพยายามเริ่มต้นใหม่nginxและphp-fpmแต่ไม่ทำงานสำหรับฉัน

ในที่สุดฉันก็เพิ่มการกำหนดค่าบรรทัดนี้เพื่อแก้ปัญหา

location ~ \.php$ {

    # same as documentation ...

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

ฉันหวังว่าฉันจะช่วยคนอื่นได้


1
ฉันหายไปทั้งวันกับปัญหานี้ นี่คือคำตอบที่ช่วยฉันได้ในที่สุด ฉันหวังว่าฉันจะให้คุณมากกว่าการโหวต ขอบคุณ!
ไมล์

3

หันหน้าจอว่างใน Laravel 5.8 ทุกอย่างดูดีด้วยทั้งที่เก็บข้อมูลและโฟลเดอร์ bootstrap ที่ได้รับสิทธิ์ 777 บน

php artisan cache:clear

มันแสดงให้เห็นปัญหาว่าเป็นช่องว่างสีขาวในชื่อแอปของไฟล์. env



1

อีกสิ่งหนึ่งที่อาจทำให้ WSOD ไม่มีคีย์เวิร์ด 'return' ดังใน:

return View::make('yourview');

ตรงข้ามกับ

View::make('yourview');


1

บางครั้งอาจเป็นเพราะ laravel 5.1 ต้องการ PHP> = 5.5.9 การอัพเดต php จะช่วยแก้ปัญหาได้


1

แปลกสำหรับฉัน แต่ในกรณีของฉันฉันต้องล้างแคชของ laravel เพื่อแก้ปัญหา


1

ฉันยังประสบปัญหาเดียวกันหลังจากทำ composer update

ฉันพยายามติดตั้งcomposer required monolog/monologด้วย แต่ไม่ได้ผล

จากนั้นฉันลบไดเร็กทอรี / vendor และรันcomposer installและทำงานตามปกติ

โดยพื้นฐานแล้วจะต้องเปลี่ยนการพูดคนเดียวและเวอร์ชันแพ็คเกจที่เสถียรอื่น ๆ ของฉันกลับไปก่อนหน้านี้ ดีกว่าที่จะไม่ทำcomposer update

สิ่งที่ฉันสังเกตเห็นเปรียบเทียบทั้งโฟลเดอร์ / vendor และพบว่าclassesไฟล์เหล่านั้น/vendor/monolog/monolog/src/Handlerหายไปหลังจากอัปเดตผู้เรียบเรียง


1

อาจมีสาเหตุหลายประการที่อยู่เบื้องหลังหน้าจอว่างเปล่าโดยไม่มีข้อผิดพลาด ฉันประสบปัญหานี้หลายครั้งเมื่อใดก็ตามที่ฉันต้องการอัปโหลดโปรเจ็กต์ laravel ในโฮสติ้งที่ใช้ร่วมกัน

เหตุผล: เวอร์ชัน PHP ไม่ถูกต้อง

ในกรณีของฉันปัญหาเกิดจากเวอร์ชัน php ไม่ถูกต้อง ฉันมีเวอร์ชัน php 7.1 ในคอมพิวเตอร์ท้องถิ่นซึ่งใน cpanel โฮสต์ที่ใช้ร่วมกันมีเวอร์ชัน php 5.6 การเปลี่ยนเวอร์ชันจาก 5.6 เป็น 7.1 ใช้ได้ผลสำหรับฉัน

คุณสามารถเปลี่ยนเวอร์ชัน php ใน cpanel ได้จากตัวจัดการหลาย HP ที่มีอยู่ในโฮมเพจ cpanel


1

บางครั้งใน route.php คุณอาจมี

Route::get('/{id}', 'Controller@show'..

เขียนมาก่อน

Route::get('/add', 'Controller@add'..

อาจเป็นวิธีที่ว่างเปล่าController::show()เมื่อคุณเริ่มพัฒนาคอนโทรลเลอร์ตั้งแต่เริ่มต้น ในกรณีนี้คุณจะได้รับหน้าว่างเปล่าเมื่อขอ/addurl เกิดขึ้นเนื่องจากการร้องขอได้รับการจัดการตาม/{id}เส้นทางและวิธีการส่งกลับไม่มีอะไรเลย

แค่ลองวาง/addเส้นทางดูก่อน/{id}


0

ปัญหาอื่น ๆ ที่มีพฤติกรรมเดียวกันคือใช้ Laravel 3 กับ PHP 5.5.x คุณต้องเปลี่ยนชื่อฟังก์ชัน laravel "yield () เนื่องจากเป็นคำสงวนใน php 5.5


0

เหตุผลอาจเป็นได้Middlewareหากคุณลืมใส่รหัสต่อไปนี้ต่อท้ายhandleฟังก์ชัน

return $next($request);

0

ฉันได้รับข้อผิดพลาดเดียวกันเมื่อฉันเริ่มครั้งแรกบน laravel + Ubuntu 14.04 ฉันเพียงคลิกขวาที่ bootstrap และโฟลเดอร์ที่เก็บข้อมูล >>> คุณสมบัติ >>> สิทธิ์ >> การเข้าถึงอื่น ๆ >>> เปลี่ยนเป็น "สร้างและลบไฟล์" เปลี่ยน สิทธิ์สำหรับไฟล์ที่แนบมา

ขอบคุณ


0

รับสิ่งนี้จากฟอรัม Laravel แต่ถ้าคุณเพิ่งอัปเกรดเวอร์ชัน Laravel และเวอร์ชัน PHP และใช้งาน nginx ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนไฟล์กำหนดค่า nginx เพื่อให้สอดคล้องกับเวอร์ชัน PHP ใหม่ ตัวอย่างเช่น:

ในไฟล์กำหนดค่าไซต์ nginx ของคุณ (ที่นี่: / etc / nginx / sites-available) ให้เปลี่ยน

fastcgi_pass unix:/var/run/php5-fpm.sock;

ถึง

fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;


0

ฉันมีปัญหาเดียวกัน ฉันเปลี่ยนโฟลเดอร์ chmod สำหรับโฟลเดอร์ Storage แล้ว กรอกการตั้งค่าฐานข้อมูลใน. env แต่ไม่สามารถแก้ไขปัญหาได้ ฉันใช้ Laravel 5.5 และฉันใช้ PHP 5.6 เพื่อแก้ไขฉันไปที่ (cpanel-> PHP Selector) และฉันเปลี่ยนเป็น PHP 7.1 และปัญหาก็เสร็จสิ้น


0

ในกรณีปกติข้อผิดพลาดควรบันทึกเว้นแต่

สคริปต์ไม่สามารถเขียนลงในล็อกไฟล์

  • ตรวจสอบเส้นทาง
  • สิทธิ์

หรือเกิดข้อผิดพลาดในการตรวจสอบบันทึกเซิร์ฟเวอร์แอประดับที่สูงขึ้นเช่น Appache || Nginx

หรือทรัพยากร จำกัด เช่นเดียวกับการตั้งค่า PHP ini

memory_limit
max_input_time
max_execution_time

หรือขีด จำกัด ของระบบปฏิบัติการและอื่น ๆ


0

นอกเหนือจากปัญหาการอนุญาตในพื้นที่จัดเก็บและโฟลเดอร์แคชและปัญหาเวอร์ชัน php แล้วยังมีอีกสาเหตุหนึ่งที่แสดงหน้าว่างโดยไม่มีข้อความแสดงข้อผิดพลาด

ตัวอย่างเช่นฉันได้รับข้อความแสดงข้อผิดพลาดซ้ำโดยไม่มีบันทึกใด ๆ และมีหน้าสีขาวว่างเปล่า เกิดข้อขัดแย้งระหว่างฟังก์ชันตัวช่วยของฉันเองและฟังก์ชันผู้ขาย

ฉันขอแนะนำให้เป็นจุดเริ่มต้นเรียกใช้artisanคำสั่ง ตัวอย่างเช่น:

php artisan cache:clear

หากมีปัญหามันจะแจ้งในเทอร์มินัลและคุณมีเบาะแสและคุณสามารถ google เพื่อหาวิธีแก้ปัญหา


0

หน้าจอว่างยังเกิดขึ้นเมื่อแอป Laravel ของคุณพยายามแสดงข้อมูลมากเกินไปและขีด จำกัด ของ PHP เริ่มเข้ามา (ตัวอย่างเช่นการแสดงบันทึกฐานข้อมูลหลายหมื่นรายการในหน้าเดียว) ส่วนที่แย่ที่สุดคือคุณจะไม่เห็นข้อผิดพลาดใด ๆ ในบันทึก Laravel คุณอาจไม่เห็นข้อผิดพลาดใด ๆ ในบันทึก PHP FPM เช่นกัน คุณอาจพบข้อผิดพลาดในการบันทึกเซิร์ฟเวอร์ http ของคุณตัวอย่างเช่น Nginx FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of XXX bytes exhaustedโยนสิ่งที่ต้องการ

เคล็ดลับสั้น: เพิ่ม->limit(1000)ที่1000เป็นขีด จำกัด ของคุณบนวัตถุแบบสอบถามของคุณ


0

ฉันพบปัญหานี้เมื่อพยายามเรียกใช้แอป Laravel 5.8 บนเซิร์ฟเวอร์ของฉันโดยอัปโหลดจากการพัฒนาในพื้นที่โดยใช้ Vagrant Homestead หลังจากนั้นไม่นานฉันก็พบว่าโดเมนย่อย dev บนเซิร์ฟเวอร์สดที่ฉันใช้งานอยู่นั้นถูกตั้งค่าเป็น PHP 5.6

cPanel> MultiPHP Manager> ตั้งค่าเป็น PHP 7.2

แก้ไขสิ่งนี้ให้ฉัน หวังว่านี่อาจช่วยใครบางคนได้


0

ใช้. htaccessนี้เพื่อแก้ปัญหา

Options +ExecCGI
addhandler x-httpd-php5-cgi .php
Options -MultiViews
DirectoryIndex index.php
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteBase /
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^ index.php [L]
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

0

ในกรณีของฉันปัญหา BLANK WHITE SCREEN นั้นง่ายพอ ๆ กับการพิมพ์ผิดหรืออักขระผิดในไฟล์ env ฉันกำลังใช้งานโซเชียลไซต์ดังนั้นเมื่อฉันตั้งค่าข้อมูลรับรอง. env สำหรับ Google+ ดังนี้:

G+_CLIENT_ID = Your G+ Client ID
G+_CLIENT_SECRET = Your G+ Client secret
G+_REDIRECT = 'http://localhost:8000/callback/google'

แต่ไฟล์. env ไม่สามารถใช้เครื่องหมาย '+' ได้ดังนั้นฉันจึงต้องทำการแก้ไข:

GOOGLE_CLIENT_ID = Your G+ Client ID
GOOGLE_CLIENT_SECRET = Your G+ Client secret
GOOGLE_REDIRECT = 'http://localhost:8000/callback/google'

ฉันหวังว่านี่จะช่วยให้คุณพบข้อผิดพลาดที่โง่เขลา ...


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.