Błąd wewnętrzny serwera Magento 2: 500

10

Postępowałem zgodnie z poniższymi dokumentami programistycznymi Magento:

Jeśli dodasz nowy szablon .html, a następnie go edytujesz, zmiany nie zostaną zastosowane, dopóki nie wykonasz następujących czynności: usuń wszystkie pliki z katalogów pub / static / frontend i var / view_preprocessing, a następnie załaduj ponownie strony. Możesz usunąć pliki ręcznie lub uruchomić polecenie grunt clean: w CLI. Aby uzyskać szczegółowe informacje na temat korzystania z Grunt w Magento, zobacz Instalowanie i konfigurowanie Grunt.

Jednak teraz w trybie programisty ustawionym za pomocą htaccess dostaję wewnętrzny błąd serwera 500 między adresami URL witryny i administratora. Czy to problem z buforowaniem, jeśli szuka wyczyszczonych plików do renderowania?

Matthew McLennan
źródło
2
sprawdź swój dziennik błędów.
MagenX
wewnętrzny serwer 500 pochodzi z pozwolenia na plik, po prostu podaj 755 do folderu i 644 do pliku
Alam Zaib

Odpowiedzi:

12

w trybie programisty pliki są generowane automatycznie na żądanie i nie można ich znaleźć. To nie powinno być problemem.

W obliczu błędu 500 pierwszą rzeczą, którą powinieneś zrobić, to poszukać dziennika błędów serwera WWW.

Podczas pracy na Apache najczęściej można go znaleźć w jednej z tych 2 lokalizacji:

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

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

David Verholen
źródło
5

Spróbuj uruchomić następującą komendę w katalogu głównym Magento, a przed uruchomieniem tej komendy udziel pełne uprawnienia do katalogu instalacyjnego

php bin/magento setup:static-content:deploy -f
Gaurav Patel
źródło
3

Rozwiązanie: wewnętrzny błąd serwera !! Magento 2.2.2 Bardzo ważne !! specjalnie dla WAMPserver w Windows10

  1. Upewnij się, że moduł LoadModule wersja_module moduły / mod_version.so jest załadowany z httpd.conf. Ten błąd powoduje wewnętrzny błąd serwera Magento 2.2.2 i jeśli następujące ustawienie ma wartość „#”, prosimy o usunięcie „#”

LoadModule moduły_wersji_wersji / mod_version.so

  1. utwórz nowy folder i nadaj mu nazwę „statyczny” po / pub / wygląda następująco: http: // localhost / magento222 / pub / static / kliknij prawym przyciskiem myszy folder „statyczny” i kliknij właściwość, aby upewnić się, że można go zapisać.

  2. usuń starą bazę danych mysql dla magento222 i utwórz nową, aby dokonać czystej i bezpiecznej instalacji.

PS: Ver. 2.2.2 nie jest stabilną wersją.

Simon Chang
źródło
2

W CentOS 7 wyłączyłem ustawienia zapory za pomocą następującego polecenia:

$ setenforce 0

i to wszystko. Problem został rozwiązany. z RHEL 7 and CentOS 7SELinux sprawia, że ​​system jest bardziej zabezpieczony, ale stwarza wiele wyzwań dla osób spoza Linuksa.

Rajveer
źródło
2

Najpierw sprawdź .htaccess. Możliwość włączenia modułu nie jest włączona. Ponieważ napotkałem ten problem z powodu modułu mod_version, więc włączyłem go z apache i teraz działa.

Możesz to również sprawdzić, zastępując plik .htaccess lub zmienić jego nazwę, aby potwierdzić problem z plikiem .htaccess.

Dziękuję Ci

Savoo
źródło
2
zastąpiłem plik .htaccess i rozwiązałem problem dzięki
Sagar Dobariya
1
  1. Może to być również spowodowane niewłaściwymi uprawnieniami do plików.
  2. Upewnij się, że CHMOD "user":"group" "magento install DIR"
Runehm
źródło
1

Tę samą sytuację spotkałem również rano, ale dzięki odpowiedzi @david.

Po krótkich badaniach katalogu dziennika Apache, dowiedziałem się, że apache nie ma uprawnień do odczytu folderu app / etc / .

Po udzieleniu zgody wszystko działa dobrze.

Deepanshu Jain
źródło
1
Proszę, powiedz mi ścieżkę.
jafar pinjar
Jeśli pracujesz w środowisku Linux, zwykle będzie to / var / log / apache2 lub / var / log / httpd /
Deepanshu Jain
1

W moim przypadku wynika to z problemów własnościowych. Korzystałem z systemu Ubuntu, więc użyłem następującego polecenia, aby poprawić własność.

sudo useradd magento

Teraz powiąż tego użytkownika magento z grupą użytkowników serwera WWW. W Ubuntu jest to domyślnie www-data

sudo usermod -g www-data magento

Teraz przejdź do katalogu projektu Magento w terminalu i uruchom następujące polecenia.

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

Po pomyślnym uruchomieniu tych poleceń użytkownik magento ma wszystkie wymagane uprawnienia bez względu na konfigurację Magento.

Uruchom ponownie serwer Apache, wykonując następujące polecenie

sudo systemctl restart apache2

Mukesh Ojha
źródło
twój kod kosztował mnie utratę własności mojego folderu publiv_html i wszystkiego w środku, każdy, kto ma problem, powinien uruchomić to polecenie, aby przywrócić chanes: for i in cat /etc/trueuserdomains | awk '{print $2}' > do> 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; > gotowe;
The Dead Guy
@TheDeadGuy, to był zbyt stary komentarz. Przeprosiłem za to. Teraz zredagowałem swoją odpowiedź, proszę spróbować z tym.
Mukesh Ojha
wybaczono ci;)
The Dead Guy
0

wydaje się potrzebować tylko do index.php

pokaż błędy php Pokaż błędy PHP

i po można naprawić

w moim przypadku - było pozwolenie na reż

Alex
źródło
0

Jeśli korzystasz z Magento 2.2.4. Następnie najpierw przejdź do katalogu dziennika Apache i

[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

Według dziennika głównym problemem jest plik .htaccess. Nie znam dokładnego powodu, ale działa następujący kod usuwający z pliku .htaccess.

Usuń kod znacznika pliku.

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

Uwaga: nie wiem, czy w przyszłości może wystąpić problem. Ale to mi pomaga.

Shuvankar Paul
źródło
0

Walczyłem przez godzinę i ostatecznie problem został rozwiązany po usunięciu ustawień proxy. Ktokolwiek ma do czynienia z tym problemem, sprawdź ustawienia proxy.

Tablica L.
źródło
0

Rozwiązane przez nadanie odpowiednich uprawnień do pliku do folderu głównego magento

Neethu Mohandas
źródło
0

To bardzo wyrafinowany problem.

Może się zdarzyć wiele możliwych przyczyn. Lepiej niż losowo, debuguj problem.

jeśli używasz apache2, aby przejść do / var / log / apache2 i znajdziesz error.log, tam znajdziesz konkretny powód, dla którego tak się dzieje. I rozwiązany przez wyszukiwanie w Internecie.

Możliwy problem:

  • Jeśli skopiujesz pliki i bazę danych z istniejącej witryny i umieścisz directoly na nowym serwerze, może wystąpić problem z kopiowaniem, w przypadku tego przesłania kopii freash i próby jej zainstalowania, znajdziesz to, czego brakuje
  • W nowej wersji Magento istnieje specjalny folder o nazwie wygenerowany . To musi być pozwolenie na zapis.
  • Innym głównym powodem jest ogólne pozwolenie na plik. Upewnij się, że var, wygenerowane, sprzedawca, aplikacja / etc, pub / media & pub / static mają odpowiedni dostęp do zapisu.
Shuvankar Paul
źródło