NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 2 - Instalace Symfony a IDE

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Martin Kejzlar:2.8.2018 12:38

Taky nějak zápasím s tím htaccess. Pokužáívám server Laragon. Mám tam i Nette projekty a tam htaccess normálně funguje. U tohodle musím do projektu přímo do složky public. Když vlezu do rootu projektu, hodí mi to Symfony "laděnku" s chybou No route found for "GET /hello-world/"

 
Odpovědět
2.8.2018 12:38
Avatar
Pedro
Člen
Avatar
Pedro:2.12.2018 16:00

Už to zkouším potřetí a taky se mi nedaří. Problém je asi někde u příkazu

composer require symfony/apache-pack

který by měl vygenerovat druhý .htaccess soubor ve složce "\public", ale v mém případě se po zadání příkazu do příkazové řádky ve složce "xampp\htdocs\hello-world" žádný .htaccess nevygeneruje, takže to samozřejmě nenamíří na index.php a pak to hází "No route found for "GET /hello-world/".

Routování na index.php mi nefunguje ani když do složky "\public" vložim .htaccess ze zdrojáku ke stažení. :/

 
Odpovědět
2.12.2018 16:00
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Pedro
Jindřich Máca:2.12.2018 19:03

Neporadím asi jinak, než že odkážu na oficiální dokumentaci k tématu - https://symfony.com/…uration.html#…

O moc víc toho pravděpodobně stejně nevím. :-`

 
Odpovědět
2.12.2018 19:03
Avatar
Milan Novák
Člen
Avatar
Milan Novák:3.12.2018 23:42

Dobrý den,
mohl by my někdo poradit jak nastavit .htacces nebo něco jiného, pokud spouštím projekt z adresy localhpst/symfony kde symfony je vnořený adresář, ve kterém je nainstalován projekt. Prostě v localhostu používám různé projekty, které jsou ve složkách. Bohužel se neustále zobrazuje chyba:No route found for "GET /symfony/"

Pokud spustím projekt přímo ze složky public, tj z adresy localhost/sym­fony/public tak se úvodní (vámi uvedená) obrazovka po instalaci objevý.

 
Odpovědět
3.12.2018 23:42
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Milan Novák
Jindřich Máca:3.12.2018 23:57

Dobrý den,

správné nastavení pomocí souboru .htaccess v rámci Apache web-serveru, tak aby se automaticky směrovalo do složky public/, je popsáno přímo v seriálu. Pokud jste postupoval přesně podle něho a nefunguje to, tak je dost možné, že máte něco špatně nastaveno právě v rámci Apache. Např. nemáte nainstalovaný modul mod_rewrite nebo máte vypnuté používání souborů .htaccess. Je tedy potřeba si vše dobře zkontrolovat. :)

Případně o příspěvek výše už jsem posílal odkaz na oficiální dokumentaci Symfony, kde se také píše právě o nastavení .htaccess. ;)

 
Odpovědět
3.12.2018 23:57
Avatar
Milan Novák
Člen
Avatar
Odpovídá na Jindřich Máca
Milan Novák:4.12.2018 9:50

mod_rewirte je nainstalovaný a funguje. Pokud spustím server php bin/console server:run přímo z PHPstormu, tak to funguje. Pokud ovšem použiji svůj server APache, tak to vyhodí No route found for "GET /symfony/". Už jsem zkoušle v .htaccess psí kusy. Určitě to bude blbost. Kořen serveru je v adresáři localhost. Symfony aplikace je v adresáři symfony. Cesta k veřejné části je localhost/sym­fony/public. Nemáte nápad jak na to?
Děkuji

 
Odpovědět
4.12.2018 9:50
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Milan Novák
Jindřich Máca:4.12.2018 14:34

No, ještě jsem psal a bylo by dobré zkontrolovat, jestli máš v nastavení Apache povolené .htaccess vůbec používat. Ve výchozím nastavení to totiž většinou bývá vypnuté.

P.S.: Jak na to najdeš na Googlu. ;)

 
Odpovědět
4.12.2018 14:34
Avatar
Milan Novák
Člen
Avatar
Odpovídá na Jindřich Máca
Milan Novák:4.12.2018 14:37

htaccess je povolené a funguje. Když zadám celou adresu http://localhost/symfony/public, tak to jede v pořádku, ale nefunguje to podsunutí pouze přes http://localhost/symfony.

 
Odpovědět
4.12.2018 14:37
Avatar
Milan Novák
Člen
Avatar
Odpovídá na Milan Novák
Milan Novák:4.12.2018 14:43

Ještě, věřím, že kdybych to dal přímo do localhostu, tak zmíněná konstrukce htaccess by fungovala, ale jak je to v podsložce, tak na to zaboha nemohu přijít. KDyž se spustí interní server přímo z phpstorm, tak to běhá v pořádku.

 
Odpovědět
4.12.2018 14:43
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Milan Novák
Jindřich Máca:5.12.2018 22:39

Teď ti tedy vůbec nerozumím, protože si v jednom komentáři úplně protiřečíš.

htaccess je povolené a funguje. Když zadám celou adresu http://localhost/symfony/public, tak to jede v pořádku, ale nefunguje to podsunutí pouze přes http://localhost/symfony.

Ten .htaccess je právě k tomu, aby to fungovalo na adrese http://localhost/symfony. Když to tam nefunguje, tak ten .htaccess nefunguje nebo je nastaven špatně. Tak jak může fungovat a zároveň nefungovat?

Znovu připomínám, že je to popsané v tom článku, ale tedy ještě jednou polopaticky a po krocích:

1. Přijde uživatel na adresu http://localhost/symfony. Zde je potřeba, aby existoval .htaccess, který ho jednoznačně nasměruje do složky public/, kde se nachází vstupní bod do aplikace. Tudíž v té hlavní složce (symfony/) má být jeden .htaccess, který může vypadat třeba takto:

<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteRule ^$ public/ [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} !^public/
        RewriteRule ^(.*)$ public/$1
</IfModule>

2. Uživatel se dostane do složky public/. Je to stejné jako kdyby zadal přímo http://localhost/symfony/public, akorát to směrování je interní. Zde už se tedy nachází soubor index.php, který jako tradičně slouží pro nastartování dané PHP aplikace. Takže pokud je adresa pouze základní, vše funguje.

3. Problém nastává, když zadám například http://localhost/symfony/hello případně http://localhost/…public/hello (opět to samé v rámci interního směrování), protože nyní chceme požadavek na adresu hello/, která ale ve složce public/ není. Tady přichází do hry druhý .htaccess umístěný právě ve složce public/, jehož úkolem je nasměrovat všechno, co zde neexistuje na soubor index.php, tudíž aby zpracování takovéto adresy probíhalo již v rámci samotné aplikace. Tento .htaccess se pak právě instaluje pomocí příkazu:

composer require symfony/apache-pack

Nebo je uveden ve výše odkazované oficiální dokumentaci.

Závěr je tedy takový, že pokud to máš přesně takto a nefunguje to směrování, tak máš špatně nastavený Apache server pro používání .htaccess, jinak jsi udělal chybu někde v tomto postupu. Je to takhle už jasné?

 
Odpovědět
5.12.2018 22:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 30.