You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: nette/bg/troubleshooting.texy
+38-3Lines changed: 38 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,11 @@ Nette не работи, показва бяла страница .[#toc-nette-i
21
21
Една от най-честите причини е остарелият кеш. Докато Nette интелигентно актуализира кеша автоматично в режим на разработка, в производствен режим той се фокусира върху максимална производителност и изчистването на кеша след всяка модификация на кода зависи от вас. Опитайте да премахнете `temp/cache`.
22
22
23
23
24
+
Грешка 404, маршрутизирането не работи .[#toc-error-404-routing-not-working]
Когато всички страници (с изключение на началната страница) връщат грешка 404, това изглежда като проблем с конфигурацията на сървъра за [красиви URL адреси |#How to Configure a Server for Nice URLs?].
27
+
28
+
24
29
Грешка `#[\ReturnTypeWillChange] attribute should be used` .[#toc-error-returntypewillchange-attribute-should-be-used]
Тази грешка се появява, ако сте обновили PHP до версия 8.1, но използвате Nette, която не е съвместима с нея. Решението е да се обнови Nette до по-нова версия с помощта на `composer update`. Nette поддържа PHP 8.1 от версия 3.0. Ако използвате по-стара версия (можете да разберете това, като погледнете `composer.json`), [обновете Nette |migrations:en] или останете с PHP 8.0.
@@ -61,7 +66,7 @@ setsebool -P httpd_can_network_connect_db on
61
66
62
67
Как да настроя сървъра за красиви URL адреси? .[#toc-how-to-configure-a-server-for-nice-urls]
За да промените конфигурацията на Apache чрез файловете .htaccess, трябва да е разрешена директивата AllowOverride. Това е поведението по подразбиране за Apache.
78
+
Ако се сблъскате с проблеми, уверете се, че:
79
+
- файлът `.htaccess` се намира в директорията с корена на документа (т.е. до файла `index.php` )
80
+
- [Apache обработва файловете .htaccess |#Test if .htaccess is working]
81
+
- [mod_rewrite е активиран |#Test if mod_rewrite is enabled]
82
+
83
+
Ако настройвате приложението в подпапка, може да се наложи да разкоментирате реда за настройката `RewriteBase` и да го зададете към правилната папка.
74
84
75
85
**nginx**: В конфигурацията на сървъра трябва да се използва директивата `try_files`:
try_files $uri $uri/ /index.php$is_args$args; # $is_args$args Е ВАЖНО!
80
90
}
81
91
```
82
92
83
93
Блокът `location` трябва да бъде дефиниран точно веднъж за всеки път към файловата система в блока `server`. Ако в конфигурацията ви вече има блок `location /`, добавете директивата `try_files` към съществуващия блок.
84
94
85
95
96
+
Проверка дали `.htaccess` работи .[#toc-test-if-htaccess-is-working]
Най-простият начин да тествате дали Apache използва или игнорира вашия файл `.htaccess` е да го нарушите умишлено. Поставете реда `Test` в началото на файла и сега, ако опресните страницата в браузъра си, трябва да видите *Internal Server Error* (Вътрешна грешка на сървъра).
99
+
100
+
Ако видите тази грешка, това всъщност е добре! Това означава, че Apache анализира файла `.htaccess` и се сблъсква с грешката, която сме поставили там. Премахнете реда `Test`.
101
+
102
+
Ако не видите *вътрешна грешка на сървъра*, вашата настройка на Apache игнорира файла `.htaccess`. Обикновено Apache го игнорира заради липсващата конфигурационна директива `AllowOverride All`.
103
+
104
+
Ако хоствате сами, това е достатъчно лесно да се поправи. Отворете вашия `httpd.conf` или `apache.conf` в текстов редактор, намерете съответната `<Directory>` раздел и добавете/променете директивата:
105
+
106
+
```apacheconf
107
+
<Directory "/var/www/htdocs"> # path to your document root
108
+
AllowOverride All
109
+
...
110
+
```
111
+
112
+
Ако сайтът ви е хостван на друго място, проверете в контролния панел дали можете да активирате `.htaccess` там. Ако не, свържете се с доставчика на хостинг услуги, за да го направи вместо вас.
113
+
114
+
115
+
Проверка дали е активиран `mod_rewrite` .[#toc-test-if-mod-rewrite-is-enabled]
Ако сте проверили, че [`.htaccess` работи |#Test if .htaccess is working], можете да проверите дали разширението mod_rewrite е разрешено. Поставете реда `RewriteEngine On` в началото на файла `.htaccess` и опреснете страницата в браузъра си.
118
+
Ако видите *Internal Server Error* (Вътрешна грешка на сървъра), това означава, че разширението mod_rewrite не е разрешено. Има няколко начина да го активирате. Вижте Stack Overflow за различните начини, по които това може да се направи при различните настройки.
119
+
120
+
86
121
Връзките се генерират без `https:`. .[#toc-links-are-generated-without-https]
Copy file name to clipboardExpand all lines: nette/cs/troubleshooting.texy
+38-3Lines changed: 38 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,11 @@ Pokud věta `Tracy is unable to log error` v chybové hlášce (už) není, vyč
21
21
Jedním z nejčastějších důvodů je zastaralá cache. Zatímco Nette ve vývojářském režimu chytře automaticky aktualizuje cache, v produkčním režimu se zaměřuje na maximalizaci výkonu a mazání cache, po každé úpravě kódu, je na vás. Zkuste smazat `temp/cache`.
22
22
23
23
24
+
Chyba 404, nefunguje routování
25
+
------------------------------
26
+
Když všechny stránky (kromě homepage) vrací chybu 404, vypadá to na problém s konfigurací serveru pro [hezká URL |#Jak nastavit server pro hezká URL?].
27
+
28
+
24
29
Chyba `#[\ReturnTypeWillChange] attribute should be used`
Tato chyba se objeví, pokud jste aktualizovali PHP na verzi 8.1, ale používáte Nette, která s ní není kompatibilní. Řešením je tedy aktualizovat Nette na novější verzi pomocí `composer update`. Nette podporuje PHP 8.1 od verze 3.0. Pokud používáte verzi starší (zjistíte pohledem do `composer.json`), [upgradujte Nette |migrations:] nebo zůstaňte u PHP 8.0.
@@ -61,7 +66,7 @@ Pro zprovoznění aplikace na hostingu je potřeba, abyste v konfiguraci hosting
61
66
62
67
Jak nastavit server pro hezká URL?
63
68
----------------------------------
64
-
**Apache**: je potřeba povolit a nastavit rozšíření `mod_rewrite` v souboru `.htaccess`:
69
+
**Apache**: je potřeba povolit a nastavit pravidla mod_rewrite v souboru `.htaccess`:
Pro ovlivňování chování Apache soubory `.htaccess` je třeba mít povolenou direktivu `AllowOverride`. Toto je v Apache výchozí chování.
78
+
Pokud narazíte na problémy, ujistěte se, že:
79
+
- soubor `.htaccess` je nachází v adresáři document-root (tedy vedle souboru `index.php`)
80
+
- [Apache zpracovává soubory `.htaccess`|#Ověření, že funguje .htaccess]
81
+
- [je povolený mod_rewrite|#Ověření, že je povolený mod_rewrite]
82
+
83
+
Pokud nastavujete aplikaci v podsložce, možná budete muset odkomentovat řádek pro nastavení `RewriteBase` a nastavit jej na správnou složku.
74
84
75
85
**nginx**: je třeba nastavit přesměrování pomocí direktivy `try_files` uvnitř bloku `location /` v konfiguraci serveru.
76
86
77
87
```nginx
78
88
location / {
79
-
try_files $uri $uri/ /index.php$is_args$args; # $is_args$args je důležité
89
+
try_files $uri $uri/ /index.php$is_args$args; # $is_args$args JE DŮLEŽITÉ!
80
90
}
81
91
```
82
92
83
93
Block `location` se pro každou filesystémovou cestu smí v bloku `server` vyskytovat jen jednou. Pokud již v konfiguraci `location /` máte, přidejte direktivu `try_files` do něj.
84
94
85
95
96
+
Ověření, že funguje `.htaccess`
97
+
-------------------------------
98
+
Nejjednodušší způsob, jak otestovat, zda Apache používá nebo ignoruje váš soubor `.htaccess`, je záměrně jej poškodit. Vložte na začátek souboru řádek `Test` a nyní, pokud obnovíte stránku v prohlížeči, měli byste vidět *Internal Server Error*.
99
+
100
+
Pokud se vám tato chyba zobrazí, je to vlastně dobře! Znamená to, že Apache analyzuje soubor `.htaccess` a narazí na chybu, kterou jsme tam vložili. Odstraňte řádek `Test`.
101
+
102
+
Pokud se nezobrazí *Internal Server Error*, vaše nastavení Apache ignoruje soubor `.htaccess`. Obecně jej Apache ignoruje kvůli chybějící konfigurační direktivě `AllowOverride All`.
103
+
104
+
Pokud si jej hostujete sami, lze to snadno opravit. Otevřete soubor `httpd.conf` nebo `apache.conf` v textovém editoru, vyhledejte příslušnou část `<Directory>` a přidejte/změňte tuto direktivu:
105
+
106
+
```apacheconf
107
+
<Directory "/var/www/htdocs"> # cesta k vašemu document root
108
+
AllowOverride All
109
+
...
110
+
```
111
+
112
+
Pokud je váš web hostován jinde, podívejte se do ovládacího panelu, zda tam můžete povolit soubor `.htaccess`. Pokud ne, obraťte se na poskytovatele hostingu, aby to udělal za vás.
113
+
114
+
115
+
Ověření, že je povolený `mod_rewrite`
116
+
-------------------------------------
117
+
Pokud máte ověřeno, že [funguje `.htaccess`|#Ověření, že funguje .htaccess], můžete ověřit, zda je povolené rozšíření mod_rewrite. Vložte na začátek souboru `.htaccess` řádek `RewriteEngine On` a obnovte stránku v prohlížeči.
118
+
Pokud se zobrazí *Internal Server Error*, znamená to, že mod_rewrite povolený není. Existuje několik způsobů, jak jej povolit. Různé způsoby, jak to lze provést v různých nastaveních, najdete na Stack Overflow.
119
+
120
+
86
121
Odkazy se generují bez `https:`
87
122
-------------------------------
88
123
Nette generuje odkazy se stejným protokolem, jaký má samotná stránka. Tedy na stránce `https://foo` generuje odkazy začínající na `https:` a obráceně.
Copy file name to clipboardExpand all lines: nette/de/troubleshooting.texy
+38-3Lines changed: 38 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,11 @@ Wenn der Satz `Tracy is unable to log error` nicht (mehr) in der Fehlermeldung s
21
21
Einer der häufigsten Gründe ist ein veralteter Cache. Während Nette im Entwicklungsmodus den Cache automatisch aktualisiert, konzentriert es sich im Produktionsmodus auf die Maximierung der Leistung, und es liegt an Ihnen, den Cache nach jeder Codeänderung zu leeren. Versuchen Sie, `temp/cache` zu löschen.
22
22
23
23
24
+
Fehler 404, Routing funktioniert nicht .[#toc-error-404-routing-not-working]
Wenn alle Seiten (außer der Homepage) einen 404-Fehler zurückgeben, sieht es nach einem Serverkonfigurationsproblem für [hübsche URLs |#How to Configure a Server for Nice URLs?] aus.
27
+
28
+
24
29
Fehler `#[\ReturnTypeWillChange] attribute should be used` .[#toc-error-returntypewillchange-attribute-should-be-used]
Dieser Fehler tritt auf, wenn Sie PHP auf Version 8.1 aktualisiert haben, aber Nette verwenden, das damit nicht kompatibel ist. Die Lösung besteht also darin, Nette mit `composer update` auf eine neuere Version zu aktualisieren. Nette unterstützt PHP 8.1 seit Version 3.0. Wenn Sie eine ältere Version verwenden (Sie können dies unter `composer.json` herausfinden), [aktualisieren Sie Nette |migrations:en] oder bleiben Sie bei PHP 8.0.
@@ -61,7 +66,7 @@ Die Lösung **ist** nicht, den Ordner `www/` durch Regeln in der Datei `.htacces
61
66
62
67
Wie konfiguriert man einen Server für schöne URLs? .[#toc-how-to-configure-a-server-for-nice-urls]
Um die Apache-Konfiguration mit .htaccess-Dateien zu ändern, muss die AllowOverride-Direktive aktiviert werden. Dies ist das Standardverhalten von Apache.
78
+
Wenn Sie auf Probleme stoßen, stellen Sie sicher, dass:
79
+
- die Datei `.htaccess` sich im Document-Root-Verzeichnis befindet (d. h. neben der Datei `index.php` )
80
+
- [Apache verarbeitet die Dateien .htaccess |#Test if .htaccess is working]
81
+
- [mod_rewrite ist aktiviert |#Test if mod_rewrite is enabled]
82
+
83
+
Wenn Sie die Anwendung in einem Unterordner einrichten, müssen Sie möglicherweise die Zeile für die Einstellung `RewriteBase` auskommentieren und auf den richtigen Ordner setzen.
74
84
75
85
**nginx**: Die Richtlinie `try_files` sollte in der Serverkonfiguration verwendet werden:
76
86
77
87
```nginx
78
88
location / {
79
-
try_files $uri $uri/ /index.php$is_args$args; # $is_args$args is important
89
+
try_files $uri $uri/ /index.php$is_args$args; # $is_args$args IST WICHTIG!
80
90
}
81
91
```
82
92
83
93
Der Block `location` muss genau einmal für jeden Dateisystempfad im Block `server` definiert werden. Wenn Sie bereits einen `location /` -Block in Ihrer Konfiguration haben, fügen Sie die Direktive `try_files` in den bestehenden Block ein.
84
94
85
95
96
+
Testen, ob `.htaccess` funktioniert .[#toc-test-if-htaccess-is-working]
Der einfachste Weg, um zu testen, ob der Apache Ihre `.htaccess` Datei verwendet oder ignoriert, ist, sie absichtlich zu unterbrechen. Setzen Sie die Zeile `Test` an den Anfang der Datei. Wenn Sie nun die Seite in Ihrem Browser aktualisieren, sollten Sie einen *Internal Server Error* sehen.
99
+
100
+
Wenn Sie diesen Fehler sehen, ist das sogar gut! Das bedeutet, dass der Apache die Datei `.htaccess` analysiert und dabei auf den Fehler stößt, den wir dort eingefügt haben. Entfernen Sie die Zeile `Test`.
101
+
102
+
Wenn Sie keinen *Internal Server Error* sehen, ignoriert Ihre Apache-Einrichtung die Datei `.htaccess`. Im Allgemeinen ignoriert der Apache die Datei aufgrund der fehlenden Konfigurationsanweisung `AllowOverride All`.
103
+
104
+
Wenn Sie die Datei selbst hosten, ist das Problem leicht zu beheben. Öffnen Sie Ihre `httpd.conf` oder `apache.conf` in einem Texteditor, suchen Sie den entsprechenden `<Directory>` Abschnitt und fügen Sie die Direktive hinzu oder ändern Sie sie:
105
+
106
+
```apacheconf
107
+
<Directory "/var/www/htdocs"> # path to your document root
108
+
AllowOverride All
109
+
...
110
+
```
111
+
112
+
Wenn Ihre Website woanders gehostet wird, sehen Sie in Ihrem Kontrollpanel nach, ob Sie `.htaccess` dort aktivieren können. Wenn nicht, wenden Sie sich an Ihren Hosting-Anbieter, damit er dies für Sie erledigt.
113
+
114
+
115
+
Testen Sie, ob `mod_rewrite` aktiviert ist .[#toc-test-if-mod-rewrite-is-enabled]
Wenn Sie sich vergewissert haben, dass [`.htaccess` funktioniert |#Test if .htaccess is working], können Sie überprüfen, ob die mod_rewrite-Erweiterung aktiviert ist. Setzen Sie die Zeile `RewriteEngine On` an den Anfang der Datei `.htaccess` und aktualisieren Sie die Seite in Ihrem Browser.
118
+
Wenn Sie einen *Internal Server Error* sehen, bedeutet dies, dass mod_rewrite nicht aktiviert ist. Es gibt eine Reihe von Möglichkeiten, es zu aktivieren. Auf Stack Overflow finden Sie verschiedene Möglichkeiten, wie dies bei unterschiedlichen Konfigurationen geschehen kann.
119
+
120
+
86
121
Links werden ohne `https:` erzeugt. .[#toc-links-are-generated-without-https]
0 commit comments