Steve Jobs a superpočítač Cray-1 budou vyobrazeny na pamětních jednodolarových mincích vyražených v příštím roce v rámci série Americká inovace. Série má 57 mincí, tj. 57 inovací. Poslední 4 mince budou vyraženy v roce 2032.
Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2025 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 1. a 2. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.
Senát včera opětovně nepřijal návrh ústavního zákona, který měl do Listiny základních práv a svobod zakotvit právo občanů platit v hotovosti nebo být off-line. Návrh předložila skupina senátorů již v roce 2023. Senát dnes návrh neschválil, ale ani nezamítl. Pokud by ho přijal, dostala by ho k projednání Sněmovna a vyjádřila by se k němu vláda.
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 13.0 (Mastodon). Forgejo je fork Gitei.
Společnost Eclypsium se na svém blogu rozepsala o bezpečnostním problému počítačů Framework. Jedná se o zranitelnost v UEFI umožňující útočníkům obejít Secure Boot.
Editor kódů Zed (Wikipedie) po macOS a Linuxu s verzí 0.208.4 už běží také ve Windows.
Apple dnes představil 14palcový MacBook Pro, iPad Pro a Apple Vision Pro s novým čipem M5.
Debian pro mobilní zařízení Mobian (Wikipedie) byl vydán ve verzi 13 Trixie. Nová stabilní verze je k dispozici pro PINE64 PinePhone, PinePhone Pro a PineTab, Purism Librem 5, Google Pixel 3a a 3a XL, OnePlus 6 a 6T a Xiaomi Pocophone F1.
Operátor O2 představil tarif Datamanie 1200 GB . Nový tarif přináší 1200 GB dat s neomezenou 5G rychlostí, a také možnost neomezeného volání do všech sítí za 15 Kč na den. Při roční variantě předplatného zákazníci získají po provedení jednorázové platby celou porci dat najednou a mohou je bezstarostně čerpat kdykoli během roku. Do 13. listopadu jej O2 nabízí za zvýhodněných 2 988 Kč. Při průměrné spotřebě tak 100 GB dat vychází na 249 Kč měsíčně.
Byly publikovány informace o útoku na zařízení s Androidem pojmenovaném Pixnapping Attack (CVE-2025-48561). Aplikace může číst citlivá data zobrazovaná jinou aplikací. V demonstračním videu aplikace čte 2FA kódy z Google Authenticatoru.
Takže je tady druhý díl o mém snažení, jež má za cíl vytvoření fungujícího a celkově prostě pěkného hostingu. Dnes se budu zabývat konfigurací Apache, protože potřebuju taky vyřešit jeden problém s ním související ;)
Ukončení - pro ty, co nechtějí číst až do konce:
Po dlouhém experimentování s MPM-ITK, MPM-Peruser, Apachem 2.2, suPHP, FastCGI, benchmarkování a podobně jsem došel k následujícím závěrům:
Takže - na serveru teď běží Gentoo Linux, se kterým jsem byl vždycky spokojený a o kterém věřím, že se s pomocí skvělého nástroje glsa-check se vyrovná i některým ... "profesionálnějším" distribucím. Já mám prostě Gentoo rád a myslím, že popisované problémy nejsou gentoo-specific, takže prosím no flame :) Co už mám: skoro nic. Vpodstatě hlavně myšlenky a lehce započatou práci s Apachem. Kde jsem se zasekl:
Mám Apache 2.0.58-r2. Chci, aby Apache běžel s dynamickými vhosty (tzn. že sleduje nějaký adresář a podle názvů adresářů uvnitř "přidává" vhosty. Zkrátka každou složku interpretuje jako vhost. Více přímo na odkazovaných stránkách). To se mi podařilo - dokonce oběma možnými způsoby - první je přes mod_rewrite, kterýžto nevypadá tak hezky, ale funkčně je to to samé a umožňuje jednoduše přesměrovat na předdefinovanou výchozí stránků v případě, že Apache požadované stránky nenajde. Druhý způsob je přes "VirtualDocumentRoot" direktivu, která toto (prý, oprav te mně, jestli se mýlím) neumožňuje. A teď opravdový problém - chtěl bych zfunkčnit věc, která mi chybí na všech zatím mnou používaných hostech - totiž, že FTP uživatel a uživatel, kterým jsou stránky interpretovány, není stejný. Vyplývá to z toho, že Apache provádí všechny operace jako jeden uživatel a skupina (ať už www:www-group, nebo apache:apache, viděl jsem všechno možné) a vy pak nemůžete dělat některé operace, které by se vážně přes to FTP hodily - obvzlášť v případě, že třeba redakční systém uploaduje soubory jako 0600 :D. Co s tím? Použít mpm-peruser, který umožňuje pro každý VHost nadefinovat jiného uživatele:skupinu, pod kterým má Apache běžet. Ale jak to skloubit s dynamickými vhosty? To se mi zatím nepodařilo. Asi by se hodilo vypsat důležité části mých konfiguráků :)
Tohle je ta metoda dynamických vhostů přes mod_rewrite/etc/apache2/httpd.conf
UseCanonicalName Off RewriteEngine On # a ServerName derived from a Host: header may be any case at all RewriteMap lowercase int:tolower RewriteCond %{REQUEST_URI} !^/icons/ # Duplicate the above for whatever other system-wide aliases you have RewriteCond /storage/www/hosts/${lowercase:%{SERVER_NAME}} -d RewriteRule ^/(.*)$ /storage/www/hosts/${lowercase:%{SERVER_NAME}}/$1 [L] RewriteCond %{REQUEST_URI} !^/icons/ # Duplicate the above for whatever other system-wide aliases you have RewriteRule ^/(.*)$ /storage/www/default/$1 # this log format can be split per-virtual-host based on the first field LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon
/etc/apache2/vhosts.d/10_dynamic_vhosts.conf
<VirtualHost *:80> # Security Directive # <Directory "/storage/www/hosts/"> Options -Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> <IfModule mod_vhost_alias.c> #Přesně tohle by to nějak mělo dělat. Jenže. Tahle direktiva nemá co dělat v <VirtualHost>, ale mimo něj zase nevím jak získat ty %0.0 pro název hostu. <IfModule peruser.c> ServerLimit 256 MaxClients 256 MinSpareProcessors 2 MaxProcessors 10 MaxRequestsPerChild 1000 # kill off idle processors after this many seconds # set to 0 to disable ExpireTimeout 1800 # Přesně tohle nefunguje Multiplexer %0.0 %0.0 Processor %0.0 %0.0 # chroot dir is optional: # Processor user group /path/to/chroot </IfModule> #Odsuď dále to zase funguje ;) <IfModule> # CGI Directives # <DirectoryMatch "^/storage/www/hosts/[^/]+/cgi"> AllowOverride None Options ExecCGI <IfModule mod_access.c> Order allow,deny Allow from all </IfModule> </DirectoryMatch> </IfModule> </VirtualHost> </IfDefine>
Snad je to alespoň trošku srozumitelné. Díky všem za pomoc - slibuju, že to dolním do těch konfiguráků tady, aby to mohl kdokoliv příště použít :). Příště: FTP, SSH, MySQL a kokmplexní správa přes nějaké webové rozranní (jak pro mě, tak pro uživatele/zákazníka). Stay tuned!
Tiskni
Sdílej:
Ano, tohle vypadá, že by mohlo pomoci vyřešit ten problém s přesměrováním na výchozí stránky v případě, že požadovaný host neexistuje. Ale problém, který mě teď pálí víc, je ten s oddělenými uživateli pro jednotlivé VHosty ... I tak díky :)
To právě nepůjde - uživatelé by si pak "lezli do zelí". PHP skripty by nejspíš mohly běžet i mimo svůj dynamický vhost a když by běžely všehcny za jednoho uživatele, tak by mohly i psát do dalších hostů.
Problém spočívá asi hlavně v tom, že já potřebuju, by to byl systémový uživatel, protože chci dát i SSH účet, chci, aby FTP používalo systémové účty, zkrátka složka /www/stranky by byla vlastněna uživatelem, stranky, přistupovalo by se k ni s ftp uživatelem stranky, php skripty by v ní běžely za uživatele stranky a přes ssh by s tím vším pracoval uživatel stranky, který by nebyl vpuštěn nikam jinam. Doufám, že to jde z tohohle zmatku pochopit :)
A teď opravdový problém - chtěl bych zfunkčnit věc, která mi chybí na všech zatím mnou používaných hostech - totiž, že FTP uživatel a uživatel, kterým jsou stránky interpretovány, není stejný. Vyplývá to z toho, že Apache provádí všechny operace jako jeden uživatel a skupina (ať už www:www-group, nebo apache:apache, viděl jsem všechno možné) a vy pak nemůžete dělat některé operace, které by se vážně přes to FTP hodily - obvzlášť v případě, že třeba redakční systém uploaduje soubory jako 0600 :D. Co s tím?Nyní si mohu přihřát svoji polívčičku a říci, že by se na to dal použít incron (při vytvoření nebo přesunu souboru do adresáře by se automaticky spustilo něco jako
chown uzivatel:skupina soubor
). Jenže incron zatím není dostatečně stabilní na to, abych ho mohl doporučit na produkční server Situaci kolem incronu samozřejmě sleduju a pro některé účely se určitě bude hodit. Ale - pokud tady tohle už má nějak Apache v sobě (a to s tím, že nejde jen o vlastníky souborů, ale i vlastníky procesů), tak mi přeci jenom jde spíš o to rozchodit něco, co ještě není dokonale zdokumentované (tedy MPM-Peruser), než vymýšlet nějaký (nechci se nikoho dotknout :D) quick'n'dirty řešení. Ale jinak - incronu přeju hodně úspěchu!
tak mi přeci jenom jde spíš o to rozchodit něco, co ještě není dokonale zdokumentovanéSpíš bych řekl nezdokumentované
Dokaze incron sledovat cely podstrom?Nedokáže. Zatím.
Mal som pocit, ze inotify to vobec neumoznuje a ani nemoze.Neumožňuje (a může, i když to není implementováno - jenže je otázka, jaké by mělo výkonnostní dopady, kdyby se to implementovalo). Proto mám v plánu implementovat to na úrovni aplikace. Jenže je to složité, takže to nebude hned.
Jedine, ze by uplodavani adresara rovno pridalo samo zebe, aby sledovalo aj tento podadressar.Ano, tohle je zatím bohužel jediné řešení. Navíc netriviální, protože by se muselo zjišťovat, jestli to nově vložené (vytvořené/přesunuté) je adresář.
Ano, to by bylo rozhodně skvělé. Taky jsem se k tomu už nějak dohrabal (jaké jsou možnosti), ale zajímalo by mě srovnání z praxe. Osobně jsem třeba zjistil, že nevím, jestli jde použít MPM-peruser pro dynamický virtuální hosting, protože mu mod_vhost_alias
asi nemůže předat %0
(jméno hostu), aby podle něj pracoval pod nějakým uživatelem (direktiva ServerEnvironment
). Teď se chystám vyzkoušet mod_suphp
, ale nevím, jak je na tom zase výkonostně ve srovnání s MPM. A řešení přes proxy? Tohle by asi chtělo podrobnější vysvětlení. Díky :)
No, tak zatím to funguje pomocí mod_suphp. Běží to pod správným uid:gid a všechno, co jsem vlastně chtěl, akorát se zdá, že je to přes CGI, což je prý pomalejší, bohužel nevím, jak to otestovat. Našel jsem httperf benchmark, který vyzkouším, ale nevím, jestli je to to, co hledám (benchmark výkonu Apache/PHP). Uvidím. Takže: zatím to chodí, jak má, akorát ne přes MPM (peruser segfaultoval a po odladění, aby nesegfaultoval tak jsem stejně nevěděl, jak ho nastavit tak, aby spouštěl pod uživatelem, který se získal pomocí mod_vhost_alias
jako %0), ale přes mod_suphp, tedy CGI. Za další reakce budu samozřejmě vděčný ;)