Magento 2: 500 Internal Server Error


10

ฉันติดตาม Magento dev docs ต่อไปนี้:

หากคุณเพิ่มเทมเพลต. html ใหม่แล้วแก้ไขการเปลี่ยนแปลงจะไม่นำไปใช้จนกว่าคุณจะทำสิ่งต่อไปนี้: ลบไฟล์ทั้งหมดในไดเร็กทอรี pub / static / frontend และ var / view_preprocessing จากนั้นรีโหลดหน้า คุณสามารถลบไฟล์ด้วยตนเองหรือรันคำสั่ง grunt clean: ใน CLI สำหรับรายละเอียดเกี่ยวกับการใช้ Grunt ใน Magento ดูการติดตั้งและกำหนดค่า Grunt

อย่างไรก็ตามในโหมดนักพัฒนาซอฟต์แวร์ตั้งค่าผ่าน htaccess ฉันได้รับ Internal Server Error 500 ทั่วทั้งไซต์และ URL ของผู้ดูแลระบบ นั่นเป็นปัญหาการแคชหรือไม่หากกำลังมองหาไฟล์ที่เคลียร์เพื่อเรนเดอร์?


2
ตรวจสอบบันทึกข้อผิดพลาดของคุณ
MagenX

เซิร์ฟเวอร์ภายใน 500 มาเนื่องจากการอนุญาตไฟล์เพียงให้ 755 ไปยังโฟลเดอร์และ 644 ไปยังไฟล์
Alam Zaib

คำตอบ:


12

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

เมื่อพบข้อผิดพลาด 500 สิ่งแรกที่คุณควรทำคือค้นหาบันทึกข้อผิดพลาดของเว็บเซิร์ฟเวอร์

เมื่อทำงานกับ apache ส่วนใหญ่สามารถพบได้ในหนึ่งใน 2 ตำแหน่งเหล่านี้:

/ var / log / httpd / -> centos, archlinux ...

/ var / log / apache2 / -> debian, Ubuntu ...


5

ลองเรียกใช้คำสั่งต่อไปนี้ในรูตวีโอไอพีและก่อนที่จะรันคำสั่งนี้จะให้สิทธิ์อย่างเต็มที่กับไดเร็กทอรีการติดตั้ง

php bin/magento setup:static-content:deploy -f

2

บน CentOS 7 ฉันปิดใช้งานการตั้งค่าไฟร์วอลล์ด้วยคำสั่งต่อไปนี้:

$ setenforce 0

และนั่นมัน ปัญหาได้รับการแก้ไข ด้วยRHEL 7 and CentOS 7, SELinux ทำให้ระบบมีความปลอดภัยมากขึ้น, แต่มันทำให้เกิดความท้าทายมากมายสำหรับผู้ที่ไม่ได้ใช้ Linux.


2

การแก้ไข: ข้อผิดพลาดเซิร์ฟเวอร์ภายใน !! Magento 2.2.2 สำคัญมาก !! โดยเฉพาะอย่างยิ่งสำหรับ WAMPserver ใน windows10

  1. โปรดตรวจสอบให้แน่ใจว่า LoadModule version_module modules / mod_version.so ถูกโหลดจาก httpd.conf ข้อผิดพลาดนี้ทำให้เกิดข้อผิดพลาดภายในเซิร์ฟเวอร์ของ Magento 2.2.2 และหากการตั้งค่าต่อไปนี้มี "#" กรุณาลบ "#"

LoadModule version_module modules / mod_version.so

  1. สร้างโฟลเดอร์ใหม่และตั้งชื่อเป็น "static" หลังจาก / pub / มีลักษณะเช่นนี้: http: // localhost / magento222 / pub / static / คลิกขวาที่โฟลเดอร์ "static" และคลิกคุณสมบัติเพื่อให้แน่ใจว่าสามารถเขียนได้

  2. ลบฐานข้อมูล mysql เก่าของคุณสำหรับ magento222 และสร้างฐานข้อมูลใหม่เพื่อทำการติดตั้งที่สะอาดและปลอดภัย

PS: Ver 2.2.2 ไม่ใช่รุ่นที่เสถียร


2

โปรดตรวจสอบ. htaccess ก่อนความเป็นไปได้ของโมดูลไม่ได้เปิดใช้งาน เพราะฉันประสบปัญหานี้เนื่องจากโมดูล mod_version ดังนั้นฉันจึงเปิดใช้งานได้จาก Apache และตอนนี้ก็ใช้งานได้

คุณสามารถตรวจสอบด้วยการแทนที่ไฟล์. htaccess ของคุณหรือเปลี่ยนชื่อเพื่อยืนยันปัญหาของไฟล์. htaccess

ขอบคุณ


2
ฉันได้แทนที่ไฟล์. htaccess และแก้ไขปัญหาแล้วขอบคุณ
Sagar Dobariya

1
  1. อาจเป็นเพราะไฟล์ผิดสิทธิ์
  2. ตรวจสอบให้แน่ใจว่าคุณ CHMOD "user":"group" "magento install DIR"

1

ฉันเจอสถานการณ์เดียวกันในตอนเช้า แต่ต้องขอบคุณ @david answer

หลังจากการค้นคว้าข้อมูลเล็กน้อยเกี่ยวกับไดเรกทอรีบันทึกของ Apache ฉันรู้ว่า Apache ไม่ได้รับอนุญาตให้อ่านapp / etc /โฟลเดอร์

ดังนั้นหลังจากได้รับอนุญาตทุกคนทำงานได้ดี


1
กรุณาบอกเส้นทาง
jafar pinjar

หากคุณอยู่ในสภาพแวดล้อม Linux โดยปกติจะเป็น / var / log / apache2 หรือ / var / log / httpd /
Deepanshu Jain

1

ในกรณีของฉันมันเป็นเพราะปัญหาความเป็นเจ้าของ ฉันใช้ ubuntu os ดังนั้นฉันจึงใช้คำสั่งต่อไปนี้เพื่อแก้ไขความเป็นเจ้าของ

sudo useradd magento

ตอนนี้เชื่อมโยงผู้ใช้วีโอไอพีนี้กับกลุ่มผู้ใช้ของเว็บเซิร์ฟเวอร์ ใน Ubuntu มันเป็นค่าเริ่มต้น www-data

sudo usermod -g www-data magento

ตอนนี้นำทางไดเรกทอรีโครงการ Magento ใน terminal และเรียกใช้คำสั่งต่อไป

sudo find var vendor pub/static pub/media app/etc -type f -exec chmod g+w {} \; sudo find var vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} \; sudo chown -R magento:www-data . sudo chmod u+x bin/magento

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

รีสตาร์ทเซิร์ฟเวอร์ apache โดยใช้คำสั่งต่อไปนี้

sudo systemctl restart apache2


รหัสของคุณทำให้ฉันเสียสิทธิ์ในการเป็นเจ้าของโฟลเดอร์ publiv_html ของฉันและทุกอย่างที่อยู่ภายในทุกคนที่มีปัญหาควรเรียกใช้คำสั่งนี้เพื่อเปลี่ยนช่องทาง: สำหรับฉันในcat /etc/trueuserdomains | awk '{print $2}' > ทำ> chown $ i. $ i / home / $ i -R; > chown $ i.mail / home / $ i / etc -R; > chown $ i.nobody / home / $ i / public_html; > chmod 750 / home / $ i / public_html; > เสร็จแล้ว;
The Dead Guy

@TheDeadGuy มันเป็นความคิดเห็นที่เก่าเกินไป ฉันขอโทษสำหรับมัน ตอนนี้ฉันได้แก้ไขคำตอบของฉันโปรดลองกับสิ่งนี้
Mukesh Ojha

คุณได้รับการอภัย;)
The Dead Guy


0

หากคุณใช้ Magento 2.2.4 จากนั้นไปที่ไดเรกทอรีล็อก Apache และก่อน

[Wed May 30 00:58:17.857269 2018] [core:alert] [pid 7184:tid 1244] [client 127.0.0.1:65528] C:/Creation/wamp64/www/m2version/ms-live-version/.htaccess: Invalid command '<IfVersion', perhaps misspelled or defined by a module not included in the server configuration
[Wed May 30 00:58:42.568180 2018] [core:alert] [pid 7184:tid 1248] [client 127.0.0.1:49165] C:/Creation/wamp64/www/m2version/ms-live-version/.htaccess: Invalid command '<IfVersion', perhaps misspelled or defined by a module not included in the server configuration
[Wed May 30 00:59:01.667499 2018] [core:alert] [pid 7184:tid 1252] [client 127.0.0.1:49169] C:/Creation/wamp64/www/m2version/ms-live-version/.htaccess: Invalid command '<IfVersion', perhaps misspelled or defined by a module not included in the server configuration
[Wed May 30 01:00:04.655715 2018] [core:alert] [pid 7184:tid 1272] [client 127.0.0.1:49174] C:/Creation/wamp64/www/m2version/ms-live-version/.htaccess: Invalid command '<IfVersion', perhaps misspelled or defined by a module not included in the server configuration
[Wed May 30 01:00:35.151803 2018] [core:alert] [pid 7184:tid 1272] [client 127.0.0.1:49201] C:/Creation/wamp64/www/m2version/ms-live-version/.htaccess: Invalid command '<IfVersion', perhaps misspelled or defined by a module not included in the server configuration

ตามบันทึกปัญหาหลักคือไฟล์. htaccess ฉันไม่ทราบสาเหตุที่แน่นอน แต่การลบรหัสต่อไปนี้จากไฟล์. htaccess นั้นใช้งานได้

ลบรหัสแท็กไฟล์

<Files composer.json>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files composer.lock>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files .gitignore>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files .htaccess>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files .htaccess.sample>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files .php_cs.dist>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files .travis.yml>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files CHANGELOG.md>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files COPYING.txt>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files Gruntfile.js>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files LICENSE.txt>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files LICENSE_AFL.txt>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files nginx.conf.sample>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files package.json>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files php.ini.sample>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files README.md>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files auth.json>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>
<Files magento_umask>
    <IfVersion < 2.4>
        order allow,deny
        deny from all
    </IfVersion>
    <IfVersion >= 2.4>
        Require all denied
    </IfVersion>
</Files>

หมายเหตุ: ฉันไม่รู้ว่าอาจมีปัญหาในอนาคตหรือไม่ แต่มันช่วยฉัน


0

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



0

มันเป็นปัญหาที่ซับซ้อนมาก

เหตุผลที่เป็นไปได้มากอาจเกิดขึ้นสำหรับเรื่องนี้ ดีกว่าไปสุ่มแก้ปัญหา

หากคุณใช้ apache2 เพื่อไปที่/ var / log / apache2และคุณจะพบ error.log อื่น ๆ ที่นั่นคุณจะพบเหตุผลเฉพาะว่าทำไมสิ่งนี้จึงเกิดขึ้น และแก้ไขได้โดยค้นหาผ่านอินเทอร์เน็ต

ปัญหาที่เป็นไปได้:

  • หากคุณคัดลอกไฟล์และฐานข้อมูลจากเว็บไซต์ที่มีอยู่และวาง directoly บนเซิร์ฟเวอร์ใหม่อาจมีปัญหา copatibilty บางอย่างสำหรับการอัปโหลดสำเนา freash และลองติดตั้งคุณจะพบสิ่งที่ขาดหายไป
  • ในรุ่นใหม่วีโอไอพีมีโฟลเดอร์พิเศษที่เรียกว่าสร้าง ต้องได้รับอนุญาตเป็นลายลักษณ์อักษร
  • อีกเหตุผลหลักคือการอนุญาตไฟล์โดยรวม ต้องแน่ใจว่าvar, สร้าง, ผู้ขาย, แอพ / etc, pub / media & pub / staticมีการเข้าถึงการเขียนที่เหมาะสม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.