Přeskočit přímo na text


Autodetekce vývojového prostředí

Nevím jak vy, ale já když vyvíjím, tak běžně používám dvě prostředí: lokální server a pak ostrý server. Zjistil jsem, že je nanejvýše důležité jednoduše poznat, kde zrovna jsem. Nakonec jsem objevil modul Environment Indicator. Ten sice umožňuje zobrazit proužek po levé straně s nápisem, kde zrovna jste, ale má jisté omezení: nastavit prostředí si musíte v settings.php.

Pokud ale přesouváte data mezi lokálním prostředím a ostrým serverem, tak se může lehce stát, že si soubor přepíšete (já např. mám stejnou databázi i heslo na localu u na ostrém serveru, abych mohl jednoduše přesouvat celý Drupal).

Proto jsem se rozhodl tento modul pro vlastní potřebu upravit. Nyní sice můžete používat „jen“ dvě prostředí, zato ale modul sám rozpozná, zda jste na localu (IP začínající 127.) nebo na ostrém serveru.

Hned přiznávám, že jsem sice zkušený uživatel Drupalu nikoli ale programátor. Takže je dost možné, že jsem tam udělal nějakou chybu. Ale zatím to vypadá, že modul funguje bezvadně. Dávám jej tedy k dipozici. Zároveň neslibuji žádnou podporu. Ale třeba se někomu bude líbit a použije jej.

P.S. Pokud najdete nějakou chybu, tak ji prosím napište třeba do komentáře. Dík

PřílohaVelikost
environment_indicator_plus-6.x-1.0.tar.gz10.99 KB
 

settings.php

Rozlišit prostředí můžete velice snadno přímo v souboru settings.php:

if ($_SERVER['HTTP_HOST'] == 'localhost') {
    $db_url = 'mysqli://XXX:XXX@lokalni/XXX';
    $db_prefix = 'XXX_';
    /* dalsi pripadne prikazy */
} elseif ($_SERVER['HTTP_HOST'] == 'testovaci')  {
    $db_url = 'mysqli://YYY:YYY@testovaci/YYY';
    $db_prefix = 'YYY_';
    /* dalsi pripadne prikazy */
} else {
    $db_url = 'mysqli://ZZZ:ZZZ@produkcni/ZZZ';
    $db_prefix = 'ZZZ_';
    /* dalsi pripadne prikazy */
}

Soubor je tak funkční na všech prostředích a nejste limitován jejich počtem. Používat stejné přístupové údaje k databázi na produkčním serveru a na lokále je potenciální bezpečnostní riziko a zdaleka bych se tomu vyhnul.

Díky za zajímavý nápad. O tom

Díky za zajímavý nápad. O tom jsem nevěděl.
Toto ale řeší jen výběr správných přístupových údajů. Já potřeboval něco pokročilejšího: aby mě to vypsalo na každé stránce. A tento modul to již uměl, jen jsem si ho upravil.
Můžu se zeptat jen ze zvědavosti: jaké bezpečnostní riziko to představuje? Dík

Ten kousek kodu jsem daval

Ten kousek kodu jsem daval jako ukazku, jak snadno a univerzalne lze nastavit jakekoliv promenne, ktere se lisi na ruznych prostredich – neni tak potreba vytvaret odvozeny modul, kdyz staci par radku v settings.php a Environment Indicator vypise presne to co ma.

Ohledne te bezpecnosti, prozrazene heslo k databazi na lokale (napriklad zavirovanim pocitace) okamzite kompromituje i pristup k databazi na produkcnim serveru, proto vzdy radeji volim dve ruzna hesla. Jiste, dá se namítnout, ze kdyz jsou hesla ulozena ve zdrojaku jako plain text, vir klidne muze precist heslo primo z nej, ale uz je to pro nej dalsi nutny krok navic, pro nas tedy o kapku vyssi bezpecnost.

aby mě to vypsalo na každé

aby mě to vypsalo na každé stránce No třeba by stačilo si v lokální db dát něco výrazného do některého ze základních polí: Název webu Slogan webu Patička a pod… Případně pokud neladíte design, tak barvně pozměnit téma vzhledu.

To všechno je sice možná, ale

To všechno je sice možná, ale jsem kde jsem byl: budu muset myslet to měnit na vývojovém a live serveru. Já nic měnit nechci. Chci udělat dump databáze, nakopírovat data přes FTP a jet.

A cele je to v podstate

A cele je to v podstate spatne. Kod by mel byt v GIT/Bazaar/SVN repository, vsechny aktualizace by mely byt v kodu. Pote udelate commit, zmergujete se stable branch, update na staging, pote update na hlavnim webu. Je to trosk uslozitejsi :)

Uz cca 2 mesice si hraju s myslenkou udelat skoleni spravneho vyvojarskeho workflow a zaroven zacit nabizet nas specialni vyvojovy server jako pronajem VPS. Myslite, ze by o to byl zajem?

AD 1) nepopírám, že takto to

AD 1) nepopírám, že takto to je správné. Ale jelikož nevyvíjím pravidelně a dělám jen malé projekty, tak jsem neměl potřebu tyto technologie nasazovat. Jiná věc by byla, pokud bych se chtěl vývojem zabývat „profesionálně“. Pak ji jistě bylo třeba nějakého verzovacího systému. :)
AD 2) Co si pamatuje, tak zde již nějaká diskuze proběhla. A myslím, že školení by bylo užitečné. Mě třeba od využití GIT/SVN atd. odrazuje jejich složitost. Pokud by bylo součástí školení i představení základních funkcí jednoho ze systému (nejlépe pod windows, sorry) tak by to bylo myslím super. A vývojový server je myslím dobrý nápad. ;-)

Poslat nový komentář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • You can use Texy! to format and alter entered content.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <p> <br> <b> <i> <h2> <img> <pre> <sup> <sub> <pre class="php"> <span class="php-keyword1"> <span class="php-var"> <span class="php-num"> <img class="screenshot"> <p class="beginner"> <a class="greybox"> <h3> <h4>

Více informací o možnostech formátování

Mollom CAPTCHA (play audio CAPTCHA)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.

Drupal meet-up mobilni web 2011

Hledat

Přihlášení

Poslední komentáře