Back to Question Center
0

Semalt: Jak mohu serverovat více domén ze stejného adresáře a kódové základny bez toho, aby došlo k přerušení konfigurace při přepsání souboru apache.conf?

1 answers:

Mám 20 domén na VPS běžícím cPanel. Jeden public_html je vyplněn kódem, zbývajících 19 symbolických odkazů na tento. (Například, aktiva je adresář uvnitř public_html pro 19 dalších, existuje symbolický odkaz na tento adresář v každém účtu public_html dir. )

Je to vše založené na databázi PHP / MySQL, přičemž obsah se mění v závislosti na doméně. Funguje to jako kouzlo, za předpokladu, že cPanel má suExec správně povoleno a za předpokladu apache - find your superannuation account. conf není povolena funkce SymLinksIfOwnerMatch .

Nicméně, každých několik týdnů, můj apache. conf je tajemně přepsán, znovu povolí SymLinksIfOwnerMatch a vypne všech 19 propojených stránek tak dlouho,. Tady je útočná linka v apache. conf:

    AllowOverride AllMožnosti ExecCGI FollowSymLinks Obsahuje indexy NOEXEC SymLinksIfOwnerMatch
    

Přidání SymLinksIfOwnerMatch místy zvláštním způsobem html je generován správně, ale všechny css / js / obraz v html se nezdaří. Kliknutím na jakýkoli odkaz přesměrujete na / . A já nemám ponětí, proč. Mám několik věcí v mé . htaccess , které fungují dobře, když SymLinksIfOwnerMatch není přítomen:

    # www. příklad. com -> příklad. comRewriteCond% {HTTPS}! = ZapnutoRewriteCond% {HTTP_HOST} ^ www \. (. +) $ [NC]RewriteRule ^ http: //% 1% {REQUEST_URI} [R = 301, L]# Odstraňte řetězce dotazů ze statických zdrojůRewriteRule ^ assets / js / (. *)_proti(. *) \. js / assets / js / $ 1. js [L]RewriteRule ^ assets / css / (. *)_proti(. *) \. css / assets / css / $ 1. css [L]RewriteRule ^ assets / sites / (. *) / (. *)_proti(. *) \. css / assets / sites / $ 1 / $ 2. css [L]# Blokovat přístup ke skrytým souborům a adresářůmRewriteCond% {SCRIPT_FILENAME} -d [OR]RewriteCond% {SCRIPT_FILENAME} -fRewriteRule "(^ | /) \. "- [F]# SLIR přesměrování snímků do procesoru obrázkůRewriteCond% {REQUEST_URI} ^ / obrázky /. * $RewriteRule ^. * $ - [L]# ignorovat pravidla, pokud URL je souborRewriteCond% {REQUEST_FILENAME}! -f# ignorujte pravidla, pokud adresa URL není php#RewriteCond% {REQUEST_URI}! \. php $# catch-all pro směrováníRewriteRule. index. php [L]
    

Používám také většinu 5G Blacklist 2013 pro ochranu před zneužitím a jinými zneužitím. Opět to všechno funguje skvěle, kromě případů, kdy SymLinksIfOwnerMatch přidá zpět do apache. conf.

Jelikož jsem se nepodařilo najít příčinu jakékoliv aktualizace cSemalt přepsá apache. conf, myslel jsem, že by mohl být správnější způsob, jak splnit svůj cíl pomocí skupinových oprávnění.

Vytvořil (a) jsem skupinu 'www', přidal (a) všechny účty do skupiny a chmod -R . Vše je 644 nebo 755 . Ale zdá se, že to nestačí. Můj unix není tak silný. Potřebujete něco restartovat, aby se změna ve skupině projevila? Asi ne. Každopádně vstupuji do neznámého území.

Může někdo doporučit správný způsob, jak nakonfigurovat webové stránky pro více webů pomocí jedné kódové základny, která se nespoléhá na apache. conf?

February 12, 2018

Zachovat změny v Apache

Nejprve přestaňte provádět změny v httpd. conf.

Od usr / local / apache / conf / httpd. conf

Přímé úpravy konfiguračního souboru Apache mohou být ztracenynásledná regenerace konfiguračního souboru.

Dále v tomto souboru podrobně popisuje, jak lze předcházet výchozí konfiguraci.

Viz dokumentace na adrese http: // docs. cpanel. net / twiki / bin / zobrazení / EasyApache pod Vlastní směrnice k httpd. conf Chcete-li zjistit, jak zachovat konfigurační změny v httpd. conf na WHM / cPanel.

Hosting více domén na stejném DocRoot

Existuje mnoho způsobů, jak to udělat, ale jeden z nejjednodušších je použít zástupný znak ServerAlias ​​* v httpd. conf.

Musíte ujistit, že primární účet má svou vlastní IP adresu, aby to fungovalo.

Poté zkontrolujte cPanel docs o tom, jak zahrnout direktivy uvnitř Virtualhost

http: // docs. cpanel. net / twiki / bin / zobrazení / EasyApache / EasyApacheChangesWithinVirtualHost

Pokud toto nastavení nastavíte, stačí pouze uvést doménu DNS na hlavní IP adresu vašeho webu.

Toto nastavení používáme u některých zákazníků, kteří provozují instalace Drupal nebo WordPress na více místech.

Nebude vám doručovat e-maily v této alternativní doméně, ale vytváří 100 domén na stejné bázi kódu stejně snadné jako aktualizace DNS.

Vyzkoušeli jste SymLinksIfOwnerMatch v . htaccess soubor?

  Možnosti -SymLinksIfOwnerMatch 

Obvykle se nespoléhám na symbolické odkazy, které směřují na několik stránek na stejnou základnu kódů. Namísto toho napíšu virtuální hostitelskou směrnici pro každou z nich a nasměruji je do stejného adresáře:

  Název_serveru1. příklad. comDokumentRoot / var / www / allsitesAllowOverride AllPožadovat vše udělené

Název_serveru2. příklad. comDokumentRoot / var / www / allsitesAllowOverride AllPožadovat vše udělené
 

V systému Ubuntu jsem zjistil, že apache. conf soubory se přepsají kdykoli Apache dostane důležitou aktualizaci. To se obvykle děje pouze jednou za šest měsíců, když přechod na nejnovější vydání Ubuntu. Aktualizace zabezpečení Apache, ke kterým dochází pravidelně, obvykle nepřepisují konfiguraci. Mohlo by to být, že při distribuci jsou menší konfigurace aktualizace Apache pro opravy zabezpečení.