89 615 domén
89 615 domén

Hosting u nás využívají desítky tisíc webů: až 30 GB prostoru, nejnovější PHP a MySQL, neomezený počet domén 2. řádu a 3. řádu, neomezeně databází, FTP účtů, pravidelné zálohy dat.

10 sekund a máte nový web
10 sekund a máte nový web

Jedno kliknutí v administraci a vybraný redakční systém se automaticky nainstaluje na vaši doménu.

0 .cz domén
0 .cz domén

Jsme akreditovaným registrátorem .cz domén. Při platbě kartou získáte .cz doménu do 1 minuty.

Instalace Nette na Endora.cz článek

nápověda > Technické (FTP,MySQL,..) > Instalace Nette na Endora.cz
Průměrné hodnocení článku: 87%

Nette je populární český PHP framework. Následující krátký návod vám pomůže s instalací.

Základní instalace

  1. Založte nový prostor a založte pro něj FTP.

  2. Vytvořte si projekt lokálně na PC - ideální postup je pomocí composeru: composer create-project nette/web-project
    Více informací najdete na stránce Nette věnované instalaci

  3. Ve všech adresářích kromě www vytvořte .htaccess, který zamezí zobrazení souborů, např:
    Order Allow,Deny
    Deny from all
    
  4. V root složce projektu (tedy nad app, www atd.) je nutné vytvořit .htaccess zajišťující přesměrování požadavků do www/ , např:
    <IfModule mod_rewrite.c>
    RewriteEngine On RewriteRule ^$ www/ [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/www/ RewriteRule ^(.*)$ www/$1
    </IfModule>
  5. Smažte na FTP ve složce web soubor index.php, zkopírujte data z ./web-project/* na FTP do složky web, alternativně můžete použít Správce souborů.

  6. Hotovo, na root URL webu byste měli vidět novou instalaci Nette :-)

 

Nette, HTTPS a Endora

1. Soubor .htaccess pro přesměrování z http:// na https://

V default .htaccesu Nette je zakomentovana 

# use HTTPS
# RewriteCond %{HTTPS} !on
# RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L] RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Toto odkomentujte, ale přidejte ještě jednu podmínku

 # use HTTPS
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !^https$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L] RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 

2. Aplikace

V aplikaci (treba www/index.php, nebo app/bootstrap.php) přidejte hack, který způsobí, že Nette bude považovat port 80 za default pro https protokol

if ('https' === getenv('HTTP_X_FORWARDED_PROTO')) {
\Nette\Http\Url::$defaultPorts['https'] = (int) getenv('SERVER_PORT');
}

Teď by se absolutní url měly generovat bez portu. Vyzkoušejte třeba v šabloně, <a n:href="//Homepage:default">test odkazu</a>

TL;DR

Endora hosting funguje přes nginx proxy. To znamená, že požadavek, který vidí aplikace, není přímý požadavek uživatele, ale již předaná komunikace nginx - apache. V praxi to má jednu nevýhodu, globální proměnná $_SERVER['SERVER_PORT'] není nastavena na reálnou hodnotu, ale na port 80. Nette\Http\Url očekává pro https port 443, ale dostává informaci o portu 80, takže při generování absolutní url přidává port 80 k hostu, což samozřejmě způsobí nefunkčnost takového odkazu. Vyzkoušejte třeba v šabloně, <a n:href="//Homepage:default">test odkazu</a>

Bohužel zatím neexistuje úplně čisté řešení. Detekci HTTPS je možné provést například pomocí 'https' === getenv('HTTP_X_FORWARDED_PROTO'). Btw, proměnná $_SERVER['HTTPS'] by měla být korektně nastavena.

Krom výše uvedeného řešení, které bude mít vliv jen na Nette, je samozřejmě možné přepsat hodnoty v $_SERVER proměnné. To pak bude fungovat pro všechny další knihovny atd. Zápis do superglobálních proměnných se ale obecně moc nedoporučuje, proto bychom doporučovali spíše vždy individuální řešení pro dané části.

 

Komentáře a hodnocení

Článek ještě nikdo nehodnotil, buďte první!

Přidejte váš komentář a hodnocení
zpět na všechny články v tématu Technické (FTP,MySQL,..)

Tagy článku:

Novinky

  • Vážení zákazníci, přejeme vám hodně pracovních i osobních úspěchů v roce 2022 a děkujeme za přízeň. Tým Endora.cz ...
Vstup do webové administrace

Hodnocení podpory

Děkujeme za ocenění naší podpory

84%
za posledních 60 dní