Nejste přihlášeni
Zdravím,
ještě jsem narazil na jednu věc, co se katalogu týče. U některých položek chybí náhledy stránek (pravděpodobně se generují automaticky a u nových položek to prostě chvilku trvá), takže někdy dojde k mírnému rozhození ostatních položek (prostě nejsou všechny zarovnány přesně v mřížce). Dochází k tomu např. ve chvíli, kdy chybí náhled u položky na pozici 4 (2 zleva, 1 shora), tudíž položka nezabírá dostatek místa a položka pod ní (pozice 6) se posune o něco nahoru.
Celé by to vyřešilo přidání atributů "width" a "height" k <img> tagům. To by neměl být problém, protože všechny náhledy mají rozměr 300x225px. A pak by možná stálo za zvážení přidání atributu "alt" s prázdnou hodnotou, aby na náhledy neupozorňovaly čtečky obrazovek (nevidomým uživatelům je upozornění na náhled naprosto k ničemu, akorát je to zdržuje při průchodu stránkou). Takže ideálně by <img> tag měl vypadat asi takto:
<img src="http://www.endora.cz/thumbs/<obrazek>.png" width="300" height="225" alt="">
Taková změna by měla být záležitostí pár sekund
Díky.
V administraci lze povolit jen konfigurační volby log_errors (tu mám povolenou) a display_errors (tu v žádném případě povolovat nehodlám). Mluvím o PHP funkci error_log(). Ta je zakázána společně s mnoha dalšími funkcemi (viz konfigurační direktiva "disable_functions").
Když teď na obsah té disable_functions koukám, tak moc nechápu proč jsou zakázany i takové funkce jako je např. escapeshellarg či escapeshellcmd, které slouží jen pro escapování řetězce.
Zdravím.
Jak dlouho už je zakázaná funkce error_log() ? Používám Nette Framework, který tuto funkci používá pro zalogování chyb a vyjímek v aplikaci. Zrovna včera mi někde v aplikaci došlo k chybě, ale jediné co se zalogovalo byl PHP warning v PHP logu oznamující, že funkce je zakázaná.
Opravdu je ten zákaz nutný? Nešlo by to povolit? Bez této funkce přijdou víceméně všechny Nette aplikace o logování, což není příliš dobré...
Ahoj,
trošku jsem se začal proklikávat jednou kategorií v Katalogu (endora.cz/katalog) a narazil jsem na to, že některé domény jsou odstaveny, zrušeny, mimo provoz. Možná by stálo za to mít tam nějaké automatické promazávání domén, které jsou v systému vedeny jako odstavené/zrušené/neexistují. Konkrétně jsem narazil na tyto problémy:
http://www.blog-berry.hys.cz/ - nefungující (nenalezen vzdálený server)
http://www.heletone.hys.cz/ - doména odstavena
A pak samozřejmě nějaké weby, které jsou mimo provoz/v rekonstrukci/bez obsahu (tj. bez jakékoli informační hodnoty). Takové ale bohužel nelze kontrolovat a vyřazovat nějak automaticky
http://www.mycrafting.cz/ - bez obsahu, "v rekonstrukci" - původní předpokládané datum spuštění 30.8. nyní změněno na 4.9.
http://www.janval.tode.cz/ - bez obsahu (aktivován maintenance mode)
http://www.hanach.cz/ - bez obsahu ("stránka ve fázi přípravy")
http://www.lemon.funsite.cz/ - web zrušen a pravděpodobně přesunut jinam
http://www.ryutaro.bluefile.cz/ - bez obsahu, jen odkaz na Google Docs & Picasu
http://www.bina.cz/ - web zrušen, přesunut jinam
Myslím, že nějaké automatické promazávání odstavených a zrušených domén by pomohlo snížit množství nejrůznějšího balastu v katalogu (pokud je tedy cílem katalogu skutečně obsahovat jen weby s nějakou informační hodnotou).
PS. jakým způsobem se vůbec řadí jednotlivé odkazy v katalogu. Pokaždé když tam přijdu jsou seřazeny trochu jinak. Je to trochu matoucí
Zatím díky.
Ok, díky.
Zdravím, mám na jedné své doméně program Plus, tj. podle stránky s přehledem vlastností, je pro tuto doménu spuštěno naráz max. 6 PHP procesů. Chtěl bych se zeptat, co se stane, když počet procesů dosáhne maxima a přijde další požadavek. Jak server zareaguje? Počká (zařadí požadavek někam do fronty), nebo vrátí HTTP 500?
Díky za odpověď.
OT: BTW dneska ráno (kolem 9:10) vracel pokus o přihlášení do Webadminu (webadmin.endora.cz) Internal Server Error. K čemu tam došlo? Trvalo to, co vím, cca 1-2minuty.
V administraci pod Podporou ve Znalostní bázi se hlavně ohledně konfigurace PHP nachází vzhledem k přechodu na PHP-FPM řada zastaralých informací. Např.
Jak mohu zakázat výpis chyb PHP? (http://kb.endora.cz/index/content/id/36)
Změna session.save_path (http://kb.endora.cz/index/content/id/71)
Je možné měnit nastavení PHP na vyžádání? (http://kb.endora.cz/index/content/id/35)
Asi by bylo dobré je opravit, aby to nezpůsobovalo zmatky.
Vím, že v současné době se informace o tom, že uživatel přichází přes HTTPS do PHP přes $_SERVER['HTTPS'] nepředává, což má souvislost s tím, že před samotnými servery beží proxy server. Když toto tvrdím, vycházím z informací v několik let starém topicu zde na fóru, bohužel se mi ho nyní nedaří najít. Aplikace napsané v PHP si tak budou vždy myslet, že požadavek přichází přes obyčejné HTTP, to ale není vždy pravda. A vzniká poměrně velký problém a myslím, že je pomalu na čase to po letech začít konečně řešit a hlavně vyřešit.
Proxy přeci při předávání požadavku musí mít nějakou možnost upravit tento požadavek tak, aby informaci o použití HTTPS obsahoval. Nejlépe by samozřejmě bylo, kdyby se poté tato informace objevila v $_SERVER['HTTPS'] s hodnotou 'on' a stejně tak byly upraveny i ostatní údaje (SCRIPT_URI se správným protokolem, proměnná "HTTPS" dostupná v .htaccess), nebo aby byla informace o HTTPS dostupná alespoň přes HTTP hlavičku (třeba X-Endora-Https, což by poté bylo dostupné přes $_SERVER['HTTP_X_ENDORA_HTTPS']). Sice by řešení přes hlavičku vyžadovalo úpravu aplikací speciálně pro Endoru, ale alespoň by ta informace byla nějak dostupná. Nakonec ani ta úprava aplikací by nemusela být nějak obtížná, pravděpodobně by stačilo před samotným startem aplikace něco jako: $_SERVER['HTTPS'] = $_SERVER['HTTP_X_ENDORA_HTTPS'];, nebo by se nabízelo globální řešení přímo na serverech, kdy by nějaký takový řádek kódu mohl být vykonán automaticky před startem samotného PHP skriptu. Možností je asi spousta a veškerý problém by tím byl vyřešen. Ale dokud bude informace o HTTPS v poli $_SERVER chybět, tak jsme my, autoři aplikací, jednoduše bez šance.
Je tento problém nějak řešitelný?
Předem děkuji.
Ve webadminu v nastavení domény je pod sekcí "PHP nastavení" volba "display_errors", mělo by to stačit zaškrtnout a vyčkat až se změna projeví.
RSS už funguje korektně, děkuji
Pokud chci odebírat novinky, které se zobrazují ve webadminu, přes RSS a přidám si RSS zdroj do čtečky (https://webadmin.endora.cz/rss), čtečka mi zahlásí v přijatém zdroji chybu. Nechal jsem proto feed projet přes validátor a těch chyb je tam víc:
u jednotlivých novinek se vůbec neliší <guid>, takže čtečka neumí jednotlivé zprávy odlišit, možná je dokonce bude považovat za jednu jedinou.
na řádku 161 je v <description> neplatný znak. Mělo by to být "č" ("...Útočník využije bezpe?") akorát je asi usekneté uprostřed UTF-8 znaku, pravděpodobně se to ořezává přes normální PHP funkci substr() která není v tomto případě bezpečná, mělo by pomoci použít multi-byte variantu mb_substr(). Stejná chyba i na řádcích 243, 272, 520, 568, 624, 632, 648, 682 a 736.
na řádku 193 je zase <description> useknuté uprostřed HTML tagu ('...Ve vánoční rychlosoutěži se rozdalo <a href="http'), tady by mělo pomoci striptags(), případně pokud byste chtěli ty tagy zachovat, tak použít vylepšenou variantu od Jakuba Vrány, rozebírá to u sebe na blogu
poslední chyba je chybějící <atom:link>, který asi není nutný, ale asi se doporučuje ho tam mít (viz http://validator.w3.org/feed/docs/warni … fLink.html)
Mohli byste tyto chyby odstranit, aby se daly novinky pohodlně přes RSS odebírat? Vadný feed postrádá smysl existence.
Díky!
A nešlo by tam tuto možnost přidat? Příjde mi to jako celkem výrazně chybějící funkcionalita. Nebo to naráží na nějaké omezení databáze?
Zdravím, je v administraci možnost přidat k existujícími DB uživateli další databázi (nově vytvořenou)? Nikde ji tam nevidím. Možná přes odkaz "Navýšit práva", ale myslím, že tam to nebude a navíc se na to bojím kliknout
Příp. byla by možnost do administrace tuto možnost přidat? Nyní je asi podle všeho jediná možnost a to uživatele smazat a znovu vytvořit.
Díky.
Tohle jsem taky řešil, je to prý způsobeno proxy serverem, takže jenom že bys parsoval REQUEST_URI, pokud to taky není zmršeno, to už si nepamatuji. EDIT: sorry, blbost, prostě se k tomu asi nijak nedostaneš.
Možná bude problém v zastaralé verzi SQLite3.
Má verze na localhostu: 3.7.9
Verze na Endoře na serveru 2 ("zajicek"): 3.3.6 (na tomto serveru mám účet)
Pro zajímavost verze na ostatních serverech Endory:
Verze na Endoře na serveru 1: 3.3.6
Verze na Endoře na serveru 3: 3.3.6
Verze na Endoře na serveru 4: 3.3.6
Verze na Endoře na serveru 5: 3.6.20
Verze na Endoře na serveru 6: 3.6.20
Verze na Endoře na serveru 7: 3.6.20
Verze na Endoře na serveru 8: 3.6.20
Verze 3.3.6 byla vydána dne 2006-06-06, verze 3.6.20 dne 2009-11-04 a moje verze dne 2011-11-01.
Když kouknu na přehled změn u SQLite (http://www.sqlite.org/changes.html) tak až u verze 3.6.19 (vydána 2009-10-14) je poznamenáno "Added support for foreign key constraints. Foreign key constraints are disabled by default. Use the foreign_keys pragma to turn them on."
Nešlo by to SQLite na serverech Endory zaktualizovat (alespoň na serverech 1-4)? Nevidím smysl mít na serverech 7 let starou verzi SQLite.
Taky ještě SQLite křičí, pokud jako operaci pro cizí klíč (pro ON DELETE a ON UPDATE) uvedu NO ACTION. Na lokálu mi to funguje, na Endoře mi SQLite umře na syntax error, protože prý NO ACTION nezná.
Nevěděl by někdo co s tím?
Ano, nyní pokud chci doménu 4. řádu musím to udělat přes .htaccess. Právě proto jsem založil toto téma ("námět na inovaci"), abych docílil toho, že půjde (sub)domény 4. řádu vytvářet stejně snadno jako se nyní vytváří (sub)domény 3. řádu - tj. pouhým vytvořením odpovídajícího adresáře ve složce /sub.
Zatím tady ale nepadl žádný důvod, proč by to měl být špatný nápad, nebo proč by to mělo být technicky neproviditelné nebo problematické. Přece, když jde takhle vytvářet (sub)domény 3. řádu, proč by to nemělo umět i (sub)domény 4. řádu, no ne? To nemůže být žádná obtížná úprava.
Nyní si můžete v novém webadminu nastavit formát subdomény, například že si ji vytvoříte ve složce sub.
Nevím jestli vám zcela rozumím, míníte ty 3 možnosti pro zacházení se subdoménami (1. nedělat nic, 2. subdomény ve složce /web, 3. subdomény ve složce /sub) - tyto možnosti byly už ve starém webadminu. Na jedné doméně používám první možnost (nedělat nic, postará se o ně .htaccess), na druhé doméně ale používám 3. možnost (domény ve složce /sub), protože s tím je méně práce a právě díky tomu jsem si všimnul, že subdomény ve složce /sub neumožňují vytvořit subdoménu 4. řádu (a 5., 6., atd.).
Nikdo nic?
Dovolím si oponovat. Ano, samozřejmě je možné použít soubor .htaccess, ale psát do něj stále dokola pravidla pro přepisování, není tak pohodlné jako vytvoření složky v adresáři /sub.
Nechápu, proč by to měl být technicky takový problém. Prostě by se globálně upravilo pravidlo, které nyní přepisuje požadavky na subdomény do složky /sub, tak aby, oproti dnešku, matchlo vše na začátku adresy, kromě TLD a názvu domény. Vždyť to přeci nemůže být takový problém
Zdravím, pro vytváření subdomén (domén 3. řádu) používám řešení se složkou /sub. Bylo by možné rozšířit toto řešení o podporu domén 4. řádu a vyších, použitím adresářů, které budou mít v názvu tečku (/sub/neco.neco) ? Tj.
/sub/example => example.domain.com (3. řád)
/sub/sub.example => sub.example.domain.com (4.řád)
/sub/a.b.c => a.b.c.domain.com (5. řád)
atd.
Jednoduše, aby server akceptoval tečku v názvu subdomény? Nyní toto nefunguje. Když vytvořím složku /sub/neco.neco a přistoupím na neco.neco.domain.com, server mi vrátí 404.
Předem díky za odpověď.
Zdravím, je možné, že se při aktualizaci serverů na PHP 5.4 nějak rozbila podpora SQLite3 databází? Přijde mi, že to v poslední době nefunguje správně, především při práci s cizími klíči. Failuje mi kvůli tomu jedna nová aplikace, jinou aplikaci jsem kvůli tomu musel přemigrovat na MySQL, protože jsem to nedokázal vyřešit a potřeboval jsem jí rychle rozběhnout.
Příklad:
Framework, který používám při tvorbě webů, používá pro získání informací o cizích klíčích příkaz PRAGMA foreign_key_list(TABLE_NAME);
Na lokálu mi vrací tento dotaz následující tabulku:
id | seq | table | from | to | on_update | on_delete | match
---+-----+----------+-------------+----+-----------+-----------+------
0 | 0 | photo | photo_id | id | NO ACTION | NO ACTION | NONE
1 | 0 | category | category_id | id | NO ACTION | NO ACTION | NONE
Pokud ale stejný příkaz na stejné databázi spustím na serveru, dostanu následující výsledek:
id | seq | table | from | to
---+-----+------------+-------------+----
0 | 0 | "photo" | photo_id | id
1 | 0 | "category" | category_id | id
Tj. chybí tam sloupce on_update, on_delete a match, navíc jsou názvy tabulek ve sloupci table uzavřeny v uvozovkách. Právě na neexistenci sloupců on_update a on_delete mi padá aplikace.
Je to nějaká chyba v SQLite, nebo je to správné chování?
PS. Nevěděl jsem do které kategorie tento topic zařadit, nepřišlo mi vhodné zařadit to do "Problémy s MySQL", případně prosím moderátory/adminy, aby to v případě potřeby přesunuli do jiné vhodnější kategorie. Dík.
PS2. účet j******a, problém na všech doménách, které mám přiřazené k účtu.
Dobrý den,
asi by nebylo špatné mít adresář data, kam by bylo možné umisťovat aplikace (zdrojové kódy, knihovny,...) a aplikační soubory a data (např. SQLite databáze), které nemají být dosažitelné z Internetu (mají být mimo DocumentRoot). Struktura by byla následující:
/home/users/<uživatel>/<doména>/
/web/ (soubory dosažitelné z Internetu, např. index.php, apod.)
/data/ (soubory nedosažitelné z Internetu)
Již kdysi jsem zde podobný návrh zahlédl, ale admin (myslím) argumentoval tím, že by bylo obtížné obsah takového adresáře započítávat do obsazeného místa. Dnes by to ale podle mého názoru neměl být problém, když dnes podobně funguje adresář sub, kam může být umístěn obsah subdomén.
Co si o tom myslíte? V současné době to lze udělat jenom tak, že si v adresáři web vytvořím nějaký adresář a zákážu do něj přístup pomocí .htaccess, ale to mi příjde trochu nešikovné (případně mě teď napadla další varianta a to, že si adresář místo ve složce web vytvoříte ve složce sub a adresář pojmenujete tak, aby jeho název začínal tečkou např /<doména>/sub/.data - k obsahu takové složky by se teoreticky nemělo jít dostat i bez nutnosti použít soubor .htaccess).
Rozi: Děkuji, funguje
Rád bych v administraci přidal novou doménu 2. řádu, ale mám stejný problém jako Pinicek, tj. klikám na "Založit", ale nic se neděje. Jedná se o účet j******a.