NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Laravel shared hosting - need help !

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Ondri
Člen
Avatar
Ondri:2.9.2016 19:53

Milí vývojári,

snažil som sa rozbehať laravel na hostingu wedos, avšak neúspešne. Takúto mám priečinkovú architektúru:

/web(root)/<obsah priečinku public>
/project/<všetky ostatné súbory laravelu okrem priečinka public>

samozrejme, upravené cesty k autoload.php a app.php v index.php a dostávam 500 Internal Server error. Čítal som ale že na wedosáckom hosting sa to rozbehať nedá, vraj majú niektoré funkcie, ktoré laravel potrebuje, povypínané. Po úprave .htaccess súboru čo tam majú defaultný (aj keď neviem či som ho upravil správne) som dostal error:

Warning: putenv() has been disabled for security reasons in /data/web/vir­tuals/132576/vir­tual/www/doma­ins/ondri_doma­in_project/ven­dor/vlucas/phpdo­tenv/src/Loader­.php on line 344

V podstate ma zaujíma, či to robím dobre a či je chyba na wedosáckej strane, poprípade nejaké odporúčania na hostingy ktoré laravel "uhandlujú", alebo návrh nejakého úplne iného spôsobu zdieľania Laravel appiek na internete, ako to robíte vy, etc etc.... Odkazy, články, rady,.. Uvítam všetko. Ďakujem velice krásne dopredu za trpezlivosť a odpovede.

 
Odpovědět
2.9.2016 19:53
Avatar

Člen
Avatar
:2.9.2016 20:08

Jestliže laravel potřebuje putenv, tak máš dozajista smůlu. Ten je na wedosu zakázaný, protože nejsou schopní udělat zapouzdření jednolivých webhostingů lépe.

Jinak mě taky napadá celkem klasická chyba - spousta systémů kdovíproč ráda používá symlinky. Takže bych se mrknul po nějakém htaccessu, co používá FollowSymLinks. Další zakázaná věc na wedosu.

Editováno 2.9.2016 20:08
 
Nahoru Odpovědět
2.9.2016 20:08
Avatar

Člen
Avatar
:2.9.2016 20:12

Co se použitelného hostingu týče - výborný v potřebách náročnějších zákazníků je rosti.cz
Ale zaplatíš za měsíc tam tolik, co u wedosu za rok. Ovšem vyplatí se to. Nebude ti chybět node.js server, komprese obrázků, ani nic jiného.

 
Nahoru Odpovědět
2.9.2016 20:12
Avatar
Ondri
Člen
Avatar
Ondri:3.9.2016 9:56

Som náročnejší zákazník keď potrebujem aby mi na hostingu šlapal jeden z najpopulárnejších frameworkov jedného z najpoužívanejších backendových webových jazykov súčasnosti ?

 
Nahoru Odpovědět
3.9.2016 9:56
Avatar

Člen
Avatar
:3.9.2016 11:08

Bohužel ano. Wedos je jako Microsoft za doby windows xp. Drží si to, co funguje, jak to jen jde. Nedávno jsem jim navrhoval přechod z MySql na MariaDB i s postupem, jak to udělat bez výpadku. Vydělávají, tak nemají důvod vylepšovat. A přitom je MariaDB binárně kompatibilní fork MySql, který je stále udržován open source vývojáři. Změny, co dává, jsou vyšší rychlost a víc funkcí.
Takže u wedosu bez šance.

 
Nahoru Odpovědět
3.9.2016 11:08
Avatar
Ondri
Člen
Avatar
Ondri:3.9.2016 14:38

Ďakujem Ti a cením si odpovede :) porozhliadnem sa teda po niečom inom. Keby ale nie je u wedosu problém, uvedený postup by fungoval ?

 
Nahoru Odpovědět
3.9.2016 14:38
Avatar
Odpovídá na Ondri
Neaktivní uživatel:3.9.2016 19:03

Moje weby jedou na Symofny3 u A2Hosting
Při objednávce si můžete vybrat umístění serveru na Amsterdam. :)

PS: Ceny jsou konečné a neplatite za žádné aliasy, crony, emaily, atd..., jak je to zvykem u českých poskytovatelů. :)

Editováno 3.9.2016 19:04
Nahoru Odpovědět
3.9.2016 19:03
Neaktivní uživatelský účet
Avatar
Odpovídá na Ondri
Josef Kuchař - Pepa489:3.9.2016 19:19

Je tu možnost jak to na wedosu rozchodit, jen je to potřeba trochu patchnout http://laravel.io/…ction-putenv

Nahoru Odpovědět
3.9.2016 19:19
2x piš, jednou debuguj
Avatar
Odpovídá na Ondri
Josef Kuchař - Pepa489:3.9.2016 20:24

Asi jsem to fixnul, ještě jen fixnu routování a dám tu návod ;)

Nahoru Odpovědět
3.9.2016 20:24
2x piš, jednou debuguj
Avatar
Nahoru Odpovědět
3.9.2016 21:04
2x piš, jednou debuguj
Avatar
Odpovídá na Ondri
Josef Kuchař - Pepa489:3.9.2016 22:04

Návod:

1. Otevřít composer.json, přidat do "require"

"paragonie/random_compat": "~1.4"

2. Do terminálu zadat ve složce s projektem

composer install

3. V rootu projektu přidat soubor .htaccess s obsahem

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

4. Ve složce public nahradit .htaccess následujícím obsahem

# htaccess rules for subdomains and aliases
# to create new subdomain, create a folder www/subdom/(subdomain name)
# to create web for alias, create a folder www/domains/(whole domain name)

# htaccess pravidla pro subdomeny a samostatne weby aliasu
# pro vytvoreni subdomeny vytvorte adresar www/subdom/(nazev subdomeny)
# pro vytvoreni webu pro alias vytvorte adresar www/domains/(cely domenovy nazev)
# dalsi info a priklady: http://kb.wedos.com/r/32/webhosting-htaccess.html

#Options -MultiViews

RewriteEngine On

# cele domeny (aliasy)
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]

# subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2/public -d
RewriteRule (.*) subdom/%2/public/$1 [DPI]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2/public -d
RewriteRule (.*) subdom/%2/public/index.php [L]

# aliasy - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]

# subdomeny - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/public/(.+[^/])$ /$1/ [R]

5. Ze souboru .env v rootu projektu zkopírovat hodnoty do souborů app.php, database.php ve složce config
Příklad:
.env:

APP_DEBUG=false

app.php:

'debug' => env('APP_DEBUG', false)

na

'debug' => false

PS: U stringů je potřeba přidat uvozovky nebo apostrofy
7. Nastavit práva 7777 na složku storage a bootstrap/cache
Kdyby někdo měl problém, tak ať napíše

Editováno 3.9.2016 22:07
Nahoru Odpovědět
3.9.2016 22:04
2x piš, jednou debuguj
Avatar
Odpovídá na Josef Kuchař - Pepa489
Josef Kuchař - Pepa489:3.9.2016 22:39

EDIT: Tak routování ještě nefunguje :(

Nahoru Odpovědět
3.9.2016 22:39
2x piš, jednou debuguj
Avatar
Odpovídá na Ondri
Josef Kuchař - Pepa489:4.9.2016 13:35

Fix pro routování, do public/.htaccess

# htaccess rules for subdomains and aliases
# to create new subdomain, create a folder www/subdom/(subdomain name)
# to create web for alias, create a folder www/domains/(whole domain name)

# htaccess pravidla pro subdomeny a samostatne weby aliasu
# pro vytvoreni subdomeny vytvorte adresar www/subdom/(nazev subdomeny)
# pro vytvoreni webu pro alias vytvorte adresar www/domains/(cely domenovy nazev)
# dalsi info a priklady: http://kb.wedos.com/r/32/webhosting-htaccess.html

#Options -MultiViews

RewriteEngine On

# cele domeny (aliasy)
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]

# subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteRule (.*) subdom/%2/public/$1 [DPI]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteRule ^ index.php [L]

# aliasy - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]

# subdomeny - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/public/(.+[^/])$ /$1/ [R]

Testováno zatím pouze na subdoméně

Nahoru Odpovědět
4.9.2016 13:35
2x piš, jednou debuguj
Avatar
Odpovídá na Josef Kuchař - Pepa489
Josef Kuchař - Pepa489:4.9.2016 14:51

Tak snad poslední fix, pro přidání koncových lomítek, přidat do public/.htaccess

# presmerovani koncovych lomitek
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
Nahoru Odpovědět
4.9.2016 14:51
2x piš, jednou debuguj
Avatar
Ondri
Člen
Avatar
Ondri:4.9.2016 16:53

Pekne pekne. Bolo by pekné to niekde zhrnúť do článku :) Skúšal som hosting http://webhouse.sk majú mesačnú skušobnú dobu a tam s tým nie je žiadny problém. Len je treba dať pozor na verziu PHP, lebo defaultne tam je ešte 5.4 a laravel potrebuje min. 5.6.4. Dá sa prehodiť v administrácií jediným klikom.

 
Nahoru Odpovědět
4.9.2016 16:53
Avatar
Odpovídá na Ondri
Josef Kuchař - Pepa489:4.9.2016 21:35

Právě píšu patcher, který to automaticky upravý a potom k tomu můžu napsat článek :)

Nahoru Odpovědět
4.9.2016 21:35
2x piš, jednou debuguj
Avatar
Odpovídá na Ondri
Josef Kuchař - Pepa489:5.9.2016 22:29

Tak jo, tady je odkaz na github, doporučuji zálohovat projekt, protože to nemusí (mělo by ale i tak) fungovat 100% https://github.com/…char/Larawed

Nahoru Odpovědět
5.9.2016 22:29
2x piš, jednou debuguj
Avatar
Vakos
Tvůrce
Avatar
Vakos:6.9.2016 9:49

Co jsem tak zjišťoval, tak u https://www.websupport.cz podporují Laravel a kdyby byl nějaký problém, tak podpora ti pomůže to zprovoznit, mám s tím dobré zkušenosti.

Nahoru Odpovědět
6.9.2016 9:49
"Jediný způsob, jak dělat skvělou práci, je milovat to, co děláte. Pokud jste to ještě nenašli, hledejte dál. Ne...
Avatar
oliver russell:16.5.2018 14:18

Nedoporučuji sdílený hosting pro projekty založené na projektu Laravel. Můžete snadno najít cenově dostupné infrastruktury založené poskytovatele hostingu, jako je DigitalOcean, který vám poskytne lepší rychlost a bezpečnost. Měli byste však vědět, jak nastavit zásobník a nakonfigurovat jej pomocí aplikace Laravel. V opačném případě můžete hostovat na serverech založených na infrastruktuře pomocí hostování Cloudways Laravel, kde nemusíte ručně nastavovat nebo spravovat servery.

 
Nahoru Odpovědět
16.5.2018 14:18
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 19 zpráv z 19.