รับข้อผิดพลาด 500 เซิร์ฟเวอร์ภายในบน Laravel 5+ Ubuntu 14.04


88

ฉันติดตั้ง Laravel หลายครั้งบน Windows OS แต่ไม่เคยเกิดปัญหาประเภทนี้ เซิร์ฟเวอร์ภายใน 500 นี้มักเกิดขึ้นเมื่อโมดูล "mod_rewrite" ของคุณไม่ได้เปิดอยู่

อย่างไรก็ตามใน Ubuntu 14.04 ปัญหานี้ทำให้ฉันปวดหัว ฉันได้ติดตั้ง rewrite_mod แล้ว แต่ยังใช้งานไม่ได้ ฉันได้ให้สิทธิ์เข้าถึงโฟลเดอร์และไฟล์ทั้งหมดภายใน ie

/ var / www / html / laravel_project

ยังคงไม่ได้ผล เปลี่ยน. htaccess เช่นกันจากเดิมเป็นสิ่งนี้

    +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

ฉันมีส่วนขยายที่จำเป็นทั้งหมดที่จำเป็นสำหรับ Laravel 5+ เช่นกัน มีอะไรเหลือที่ฉันไม่ได้ทำ?


5
ดังนั้นตรวจสอบบันทึกข้อผิดพลาดของคุณเพื่อดูรายละเอียดเกี่ยวกับ 500 จนกว่าคุณจะรู้ว่ามีสิ่งใดที่จะล้มเหลวไปทั่วทุกแห่ง
Marc B

2
ทำไมถึงมีแค่+FollowSymLinksด้านบน? Options +FollowSymLinksควรจะเป็น
Mike Rockétt

1
"ฉันได้ติดตั้ง rewrite_mod แล้ว แต่ ... " - และอนุญาตการเข้าถึงที่เหมาะสมสำหรับ. htaccess ด้วยAllowOverrideในการกำหนดค่าเซิร์ฟเวอร์ของคุณหรือไม่
MrWhite

@MikeRockett ฉันเพิ่งลบ "ตัวเลือก" ออกเมื่อทำให้เบราว์เซอร์ว่างเปล่าและเมื่อไม่รักษาเบราว์เซอร์จะส่งคืนข้อผิดพลาด 500 คำขอ แต่ในทั้งสองกรณีเบราว์เซอร์จะส่งคืนข้อผิดพลาด 500 !
DpEN

1
@MikeRockett .. ฉันได้ลบ "/../" ออกจากไฟล์ index.php แล้วและลองและแสดงข้อผิดพลาดที่แตกต่างกันของการอนุญาตไฟล์จากนั้น chmod และตั้งค่าสิทธิ์ในการอ่าน / เขียนและใช้งานได้ !!! ขอบคุณสำหรับความช่วยเหลือครับ !!
DpEN

คำตอบ:


215

เอาชนะปัญหาได้ในที่สุด

  • ไม่ใช่ไฟล์. htaccess ที่เป็นปัญหาหรือ index.php ปัญหาอยู่ที่การเข้าถึงไฟล์และต้องการสิทธิ์

สำหรับการแก้ปัญหาฉันรันคำสั่งต่อไปนี้ผ่านเทอร์มินัล

sudo chmod -R 755 laravel_blog

จากนั้นพิมพ์ด้านล่างเพื่ออนุญาตให้ laravel เขียนไฟล์ไปยังโฟลเดอร์ที่เก็บข้อมูล

chmod -R o+w laravel_blog/storage

สองคำสั่งนี้ช่วยแก้ปัญหาได้


1
ขอบคุณฉันมีปัญหานี้เมื่อติดตั้ง laravel ลงในการแจกจ่าย ubuntu 14.04 ใหม่บนเครื่องมือคำนวณของ Google สิ่งนี้แก้ไขได้
Alex

1
ขอบคุณสำหรับสิ่งนี้. สิ่งนี้แก้ไขปัญหาทั้งบน Ubuntu และ Mac
Arunabh Das

2
นี่เป็นคำแนะนำที่แย่มาก chmod ตั้งค่าไฟล์ทั้งหมดเป็น + x ฉันคิดว่าคุณต้องการทำเพื่อไดเรกทอรีซึ่งในกรณีนี้คุณจะใช้ find
MightyPork

ฉันควร cd (เปลี่ยนไดเร็กทอรี) ที่ใดเพื่อดำเนินการคำสั่งนั้น
Anastasie Laurent

1
คุณต้องการคุกกี้จำนวนมาก ทำงานได้ดีกับ LAMP Ubuntu 16.04 การติดตั้ง Digital Ocean
Abhishek Saini

75

สร้างไฟล์. env และเรียกใช้:

php artisan key:generate

สิ่งนี้ใช้ได้ผลสำหรับฉันหลังจากดึงโครงการคอมไพล์

หลังจากสร้างไฟล์. env และสร้างคีย์แล้วให้รันโค้ดด้านล่าง:

php artisan cache:clear 
php artisan config:clear

3
สิ่งนี้ได้ผลสำหรับฉัน อย่าทำผิดพลาด noob หลังจากติดตั้งโปรเจ็กต์ laravel อย่าลืมเปลี่ยนชื่อ. env.example เป็น. env หรือ php artisan key: การสร้างจะผิดพลาด
Armin

ตกลงนี่เป็นของใหม่หรือเปล่า? พบปัญหานี้เป็นครั้งแรก
Robert Rocha

1
php artisan cache:clear php artisan config:clearกำลังทำงานให้กับกรณีของฉัน
Nurkartiko

27

หลังจากติดตั้งคำสั่ง run below

sudo chmod 755 -R laravel
chmod -R o+w laravel/storage

ที่นี่ "laravel" คือชื่อของไดเร็กทอรีที่ติดตั้ง laravel


ด้วยคำสั่งนี้อย่าลืมรันคำสั่งcomposer install
Iftikhar Ali Ansari

sudo chmod -R 755 laravelตำแหน่งของ -R ไม่ถูกต้อง
Hïkmãt Iskandar

22

ลองตรวจสอบว่าคุณมี.envไฟล์หรือไม่

ส่วนใหญ่สิ่งนี้อาจทำให้เกิดอะไรแบบนั้น พยายามที่จะสร้างไฟล์แล้วคัดลอกทุกอย่างจากการวางไว้เป็นไฟล์ของคุณและสร้างชื่อมัน.env.example .envหรือ jsut เพียงแค่เปลี่ยนชื่อ.env.exampleไฟล์.envและเรียกใช้php artisan key:generate


ความช่วยเหลือในครั้งแรก +
AZinkey

15

ตรวจสอบว่ามีไฟล์. env ที่มี APP_KEYอยู่ในรูท

สิ่งที่ควรอยู่ใน. env ไม่ได้ระบุไว้อย่างชัดเจนในวิธีแก้ปัญหาอื่น ๆ และคิดว่าฉันจะต้มมันลงไปที่ประโยคด้านบน

สิ่งนี้แก้ไขข้อผิดพลาด 500 ของฉันในการติดตั้ง Laravel ใหม่

ขั้นตอน:

  1. สร้างไฟล์. env ในรูท (เช่นtouch .env)
  2. ตรวจสอบให้แน่ใจว่ามีอย่างน้อยหนึ่งบรรทัด: APP_KEY=
  3. สร้างรหัสแอปในเทอร์มินัล: php artisan key:generate

หมายเหตุ:

  • การติดตั้งเฉพาะของฉันไม่มี. env ใด ๆ เลย (เช่นหรืออย่างอื่น)

  • เพียงแค่มี. env ว่างเปล่าไม่ทำงาน

  • . env ที่มีพารามิเตอร์ แต่ไม่มีAPP_KEYพารามิเตอร์ไม่ทำงาน

จุดบกพร่อง: เมื่อสร้างรหัสแอปในเทอร์มินัลอาจรายงานว่าสำเร็จ แต่จะไม่มีการวางคีย์ใน. envหากไฟล์ไม่มีAPP_KEY=บรรทัดที่มีอยู่แล้ว

เพื่อเป็นข้อมูลอ้างอิงนี่คือ. env อย่างเป็นทางการพร้อมพารามิเตอร์พื้นฐานที่มีประโยชน์ คัดลอกวางสิ่งที่คุณต้องการ:

https://github.com/laravel/laravel/blob/master/.env.example


12

ฉันพบข้อผิดพลาดที่คล้ายกัน ฉันตรวจสอบการเข้าสู่ระบบ/var/log/apache2/error.logและพบว่าUn ไม่คาดคิดValueException

ฉันเปลี่ยนเจ้าของเป็นผู้ใช้ apache ของโฟลเดอร์ที่เก็บข้อมูลภายใต้โครงการ dir

sudo chown -R www-data:www-data ./storage

ในกรณีของฉันเจ้าของกระบวนการ apache2 คือwww-dataดังนั้นให้เปลี่ยนเป็นของคุณซึ่งสามารถพบได้ในไฟล์ config apache2 หวังว่านี่จะเป็นประโยชน์กับคุณ


12

ฉันแก้ไขด้วยคำสั่งนี้:

   rm -rf app/storage/logs/laravel.logs
   chmod -R 777 app/storage,
   php artisan cache:clear,
   php artisan dump-autoload OR composer dump-autoload

กว่ารีสตาร์ทเซิร์ฟเวอร์จะต้องใช้ XAMPP อีกเครื่องหนึ่งและควรใช้งานได้


3
777 เป็นคำสั่งที่แย่มากและจะให้สิทธิ์ WRITE แก่ทุกคนบนอินเทอร์เน็ต 644 แนะนำให้ใช้มากกว่า
Zac Grierson

9

ขอวิธีแก้ปัญหานี้ด้วยวิธีอื่น:

ติดตั้งแพ็กเกจที่ต้องการโดยรันคำสั่ง composer จากรูทของโปรเจ็กต์:

sudo composer install

อัพเดท:

  • คุณไม่ควรรันคำสั่งนี้บนเซิร์ฟเวอร์ที่ใช้งานจริง แต่ปัญหาบางอย่างเกี่ยวกับผู้แต่งสามารถแก้ไขได้ด้วยสิ่งนี้ใน envs ภายใน

แก้ไข:

  • ดูที่https://getcomposer.org/doc/faqs/how-to-install-untrusted-packages-safely.mdเพื่อดูว่าเหตุใดจึงเรียกใช้การติดตั้งผู้แต่งในฐานะรูทจึงไม่ใช่ความคิดที่ดี
  • หากคุณต้องการเรียกใช้ในฐานะรูทให้ระบุแฟล็กต่อไปนี้เพื่อบล็อกโค้ดของบุคคลที่สามไม่ให้รันการติดตั้ง--no-plugins --no-scripts

1
นี่มันอะไรกันรู้ไหมว่ากำลังตอบอะไรอยู่!
Jimmy Obonyo Abor

3
@JimmyObonyoAbor อันนี้ใช้งานได้จริง จากบันทึกระบุว่า 500 เป็นเพราะไฟล์บางไฟล์ใน / ผู้ขายหายไป คุณจะแก้ไขได้อย่างไร? โดยเรียกใช้การติดตั้ง / อัปเดตของนักแต่งเพลง ขอขอบคุณและโหวตเพิ่ม Christos Papoulas
tomsihap

5
ฉันเชื่อว่าการรันคำสั่งนั้นด้วย sudo เป็นช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้น
Shay

5

ฉันติดตั้ง PHP 7.0 และ PHP 7.1 แล้วและฉันใช้ PHP 7.1 บนบรรทัดคำสั่งและเปิดใช้งาน PHP 7.0 บน Apache ซึ่งความยุ่งเหยิงอาจทำให้เกิดปัญหาเมื่อคุณใช้ Laravel Framework และ localhost Apache2 พร้อม laravel

ตรวจสอบไฟล์นักแต่งเพลงของคุณก่อนเพื่อดูเวอร์ชัน PHP ของคุณ

"php": "^7.1.3",
"laravel/framework": "5.6.*",

ตรวจสอบเวอร์ชัน php ปัจจุบันของคุณในบรรทัดคำสั่ง

php -v

ตรวจสอบเวอร์ชัน php ปัจจุบันของคุณที่เปิดใช้งานบน Apache ฉันใช้เบราว์เซอร์

http://localhost

หากไม่เหมือนกันให้ปิดใช้งานเวอร์ชันปัจจุบันและเปิดใช้งานเวอร์ชันใหม่ล่าสุด

sudo a2dismod php7.2

sudo a2enmod php7.1

sudo service apache2 restart

หลังจากนั้นเปลี่ยนการอนุญาตโฟลเดอร์

sudo chmod 755 -R blog

สำหรับโฟลเดอร์จัดเก็บ

chmod -R o+w blog/storage

5

ปัญหาที่พบบ่อยเมื่อใช้คอมไพล์:

Laravel's .gitignore ignores the .env file which when missing generates this error

แก้ไขปัญหานี้ด้วยการเพิ่มไฟล์. env บนเซิร์ฟเวอร์ด้วยตนเองหรืออัปโหลดผ่าน FTP


4

บางครั้งมีปัญหากับเวอร์ชัน php เราจำเป็นต้องเปลี่ยนเวอร์ชัน php จากเซิร์ฟเวอร์ เพียงเขียนสตริงด้านล่างในไฟล์. htaccess :

AddHandler application/x-httpd-php5 .php

4

ฉันอ่านความคิดเห็นและข้อเสนอแนะทั้งหมด 500 - HTTP ERROR CODE แสดงถึงข้อผิดพลาดภายในเซิร์ฟเวอร์

สาเหตุของข้อผิดพลาดนี้:

  • สาเหตุหลักมาจากปัญหาการอนุญาต
  • ไม่พบตัวแปรสภาพแวดล้อมหรือ.envไม่พบไฟล์บนไดเร็กทอรีรากของคุณ
  • ปัญหาส่วนขยาย PHP
  • ปัญหาฐานข้อมูล

แก้ไข:

  • ตั้งค่าการอนุญาตที่ถูกต้อง:
    • เรียกใช้คำสั่งเหล่านี้ (Ubuntu / Debian)
find /path/to/your/root/dir/ -type f -exec chmod 644 {} \;
find /path/to/your/root/dir/ -type d -exec chmod 755 {} \;

chown -R www-data:www-data /path/to/your/root/dir/

chgrp -R www-data storage bootstrap/cache
chmod -R ug+rwx storage bootstrap/cache
  • ถ้าไม่มีไฟล์. envให้สร้างทีละไฟล์touch .envและวางตัวแปรสภาพแวดล้อมของคุณแล้วเรียกใช้
   php artisan key:generate
   php artisan cache:clear
   php artisan config:clear
   composer dump-autoload
  • ตรวจสอบไฟล์ php.ini ของคุณและยกเลิกการใส่เครื่องหมายส่วนขยายที่คุณต้องการ (ในบางกรณีคุณต้องติดตั้งส่วนขยายโดยเรียกใช้คำสั่งนี้ apt-get install php7.2-[extension-name]
  • ตรวจสอบข้อมูลรับรองฐานข้อมูลและค่าใน.envไฟล์ และให้สิทธิ์แก่ผู้ใช้ฐานข้อมูลสำหรับฐานข้อมูลนั้น

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


3

ขั้นแรกให้อนุญาตสิทธิ์ทั้งหมดสำหรับโฟลเดอร์โครงการของคุณ (สมมติว่าเรียกว่า laravel) สำหรับโฟลเดอร์ย่อยที่เก็บข้อมูลและโฟลเดอร์ย่อยของบันทึกและสำหรับโฟลเดอร์ย่อยของผู้ขาย (laravel / storage, laravel / storage / logs และ laravel / vendor)

จากนั้นตรวจสอบว่าไฟล์. env ของคุณมีหรือไม่หากไม่มีคุณสามารถเรียกใช้:

$ mv .env.example .env

เพื่อเปลี่ยนชื่อ build-in .env.example ของคุณเป็น. env ที่จำเป็น

มิฉะนั้นให้เปิดโหมดดีบัก - เปิด. env และตั้งค่า

APP_DEBUG=true

และเปิด laravel / config / app.php และเปลี่ยน

'debug' => env('APP_DEBUG', false), 

ถึง

'debug' => env('APP_DEBUG', true),

เพื่อให้คุณสามารถค้นหาสาเหตุของข้อผิดพลาดของคุณได้


4
ไม่มีเหตุผลที่คุณควรแก้ไข config / app.php แบบนั้น จะลบล้างวัตถุประสงค์ทั้งหมดของไฟล์. env
นาธา

ฉันได้รับข้อผิดพลาด Internal Service เมื่อฉันรันแอป laravel บนเซิร์ฟเวอร์ทดสอบของฉัน (ในโหมดการผลิต) การตั้งค่า APP_DEBUG = true ทำให้ฉันเห็นรายละเอียดของข้อผิดพลาดดังนั้นฉันจึงสามารถค้นหาและแก้ไขปัญหาได้
Debbie V

3

รันคำสั่งทั้งสองนี้ในไดเร็กทอรีที่ติดตั้ง Laravel:

sudo chmod 755 -R DIRECTORY_NAME
chmod -R o+w DIRECTORY_NAME/storage

จากนั้นล้างแคชและถ่ายโอนการโหลดอัตโนมัติ:

php artisan cache:clear
composer dump-autoload

3

ฉันต้องเผชิญกับปัญหานี้หลายครั้ง ลองทำตามขั้นตอนเหล่านี้ซึ่งช่วยฉันได้มาก บางทีมันอาจจะช่วยคุณได้

  1. ก่อนอื่นตรวจสอบสิทธิ์ไฟล์ของคุณ
  2. ในการแก้ไขสิทธิ์ของไฟล์sudo chmod 755 -R your_project
  3. จากนั้นchmod -R o + w your_project / storageเพื่อเขียนไฟล์ไปยังโฟลเดอร์ที่เก็บข้อมูล
  4. php artisan cache: ล้าง
    ผู้แต่งการถ่ายโอนข้อมูลอัตโนมัติ
  5. php artisan key: สร้าง
  6. จากนั้นตรวจสอบข้อกำหนดของเซิร์ฟเวอร์ตามข้อกำหนด laravel
  7. หลายครั้งที่คุณได้รับนี้ ผิดพลาดเพราะรุ่นของ PHP ลองเปลี่ยนเวอร์ชัน php ของคุณใน cpanel
  8. จากนั้นกำหนดค่า ไฟล์. htaccess ให้ถูกต้อง

2

หากคุณใช้คนเร่ร่อนลองสิ่งนี้:

ก่อนอื่นให้ลบ config.php ใน current / vendor

เรียกใช้คำสั่งเหล่านี้:

php artisan config:clear
php artisan clear-compiled
php artisan optimize

ไม่เรียกใช้ php artisan config: cache

หวังว่าจะช่วยได้


1

รันคำสั่งสองคำสั่งนี้บน root ของ laravel

ค้นหา * -type d -print0 | xargs -0 chmod 0755 # สำหรับไดเร็กทอรี

หา. - พิมพ์ f -print0 | xargs -0 chmod 0644 # สำหรับไฟล์


1

ฉันมีปัญหาคล้ายกันกับโฮสต์การแชร์ ฉันมีข้อผิดพลาด 500 ฉันเพิ่งแก้ไขโดยตรวจสอบเวอร์ชัน Laravel และเวอร์ชัน PHP ข้อผิดพลาดเกิดจาก Laravel 5.6 ไม่ทำงานบน PHP 7.0.x เมื่อฉันรู้สิ่งนี้ฉันเพิ่งกำหนดค่าโครงการใหม่เป็น Laravel 5.5 ที่เข้ากันได้กับ PHP 7.0.x ตอนนี้ทุกอย่างถูกต้อง อีกเหตุผลหนึ่งที่ฉันมีปัญหาในบางครั้งคือ FTP ฉันได้รับไฟล์ที่เสียหายและต้องอัปโหลดโครงการมากกว่าหนึ่งครั้ง หวังว่าจะช่วยได้ในอนาคตฉันไม่พบข้อมูลมากมายในหัวข้อนี้


1

สำหรับพวกคุณที่ชอบฉันยังคงมีข้อผิดพลาดหลังจากลองคำตอบอื่น ๆ ทั้งหมด:

ตรวจสอบเวอร์ชันของ php apache ที่ใช้ laravel ล่าสุดใช้ได้กับ php7.1 เท่านั้น ดังนั้นคุณต้อง:

sudo a2dismod php[yourversion]
sudo a2enmod php7.1
sudo systemctl restart apache2

หวังว่านี่จะช่วยได้


1

หากอยู่บนเซิร์ฟเวอร์จริงให้ลองทำเช่นนี้

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
</IfModule>
Options +FollowSymLinks
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]

จากนั้นตรวจสอบให้แน่ใจว่าเวอร์ชัน php ใน composer.json ของคุณเหมือนกับของเซิร์ฟเวอร์ของคุณ

ตรวจสอบเวอร์ชัน php ของคุณในเทอร์มินัลของคุณโดยใช้ php -v



1

ขั้นแรกหากไม่มีไฟล์. env ในที่เก็บ laravel ของคุณ คัดลอกและวางไฟล์. env.example และเปลี่ยนชื่อเป็น. env จากนั้นเปิดไฟล์. env และในส่วนฐานข้อมูลให้คำอธิบายฐานข้อมูลของคุณ Run: php artisan key: สร้าง php artisan cache: clear php artisan config: cache php artisan config: clear composer dump-autoload php artisan serve


0

ตามบันทึก:

[06-Feb-2016 22:38:48 Europe/Berlin] PHP Warning:  require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
[06-Feb-2016 22:38:48 Europe/Berlin] PHP Fatal error:  require(): Failed opening required '/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
[06-Feb-2016 22:43:37 Europe/Berlin] PHP Warning:  require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
[06-Feb-2016 22:43:37 Europe/Berlin] PHP Fatal error:  require(): Failed opening required '/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17

มีความล้มเหลวบางอย่างในการเปิดไฟล์ในโฟลเดอร์ / vendor

ด้วยการติดตั้งและอัปเดตผ่านนักแต่งเพลงในที่สุดฉันก็สามารถแก้ปัญหาได้

sudo composer install
sudo composer update

0

ตรวจสอบให้แน่ใจว่าโฟลเดอร์จัดเก็บข้อมูลที่มีค่าการเขียน (chmod o + w) ทำงานให้ฉันเหมือนมีเสน่ห์



0

ฉันประสบปัญหานี้และแก้ไขโดยอัปเกรดเวอร์ชัน php ใน apache ได้สูงสุด 5.6.x



0

ฉันเพิ่งรันคำสั่งต่อไปนี้:

php artisan passport:install

ฉันใช้หนังสือเดินทางเพื่อเรียกใช้แอปพลิเคชันของฉันอย่างสมบูรณ์ตาม API และ Vue.js Laravel ทำงานได้ดี แต่ทุกครั้งที่ฉันพยายามเข้าสู่ระบบผ่าน API ของฉันฉันจะได้รับข้อผิดพลาด หลังจากรันคำสั่งและอัปเดต client_id และ client_secret บนไฟล์ Laravel ของฉันจากนั้นจึงพุชการอัปเดตใหม่ไปยังเซิร์ฟเวอร์ที่ใช้งานจริงปัญหาได้รับการแก้ไข ในโมเดลผู้ใช้ของฉันฉันมีสคริปต์ดังนี้:

public function generateToken($request)
{
    $http = new \GuzzleHttp\Client();
    $response = $http->post(URL::to('/').'/oauth/token', [
        'form_params' => [
            'grant_type' => 'password',
            'client_id' => '6',
            'client_secret' => 'x3yhgWVqF8sSaMev4JI3yvsVxfbgkfRJmqzlpiMQ',
            'username' => $this->email,
            'password' => $request->input('password'),
            'scope' => '',
        ],
    ]);
    //  Lets get an array instead of a stdObject so that we can return without errors
    $response = json_decode($response->getBody(), true);

    return oq_api_notify([
                'auth' => $response,                                        //  API ACCESS TOKEN
                'user' => $this->load(['settings'])->toArray(),
            ], 201);
}

ฉันเพิ่งอัปเดต client_id และ client_secret จากนั้นจึงบันทึก เนื่องจากคำสั่งหนังสือเดินทางให้คีย์ไคลเอ็นต์สองคีย์แก่คุณ:

1) ไคลเอนต์การเข้าถึงส่วนบุคคล (client_id & client_secret)

2) ไคลเอนต์การให้รหัสผ่าน (client_id & client_secret)

ฉันใช้ไคลเอนต์การให้รหัสผ่าน หวังว่านี่จะช่วยใครสักคน :)

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