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.
Člen
Zobrazeno 19 zpráv z 19.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
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.
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.
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ů.
Je tu možnost jak to na wedosu rozchodit, jen je to potřeba trochu patchnout http://laravel.io/…ction-putenv
Asi jsem to fixnul, ještě jen fixnu routování a dám tu návod
Funguje! tady je důkaz: http://laravel.josefkuchar.cz/
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
EDIT: Tak routování ještě nefunguje
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ě
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]
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.
Právě píšu patcher, který to automaticky upravý a potom k tomu můžu napsat článek
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
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.
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.
Zobrazeno 19 zpráv z 19.