Siirry pääsisältöön

Lokaalin ympäristön asetukset

Ohjeet Seravo-projektin paikallisen kehitysympäristön konfigurointiin config.yml-tiedoston avulla. Opi muokkaamaan Docker-konttien asetuksia, verkkotunnuksia ja synkronoimaan tietoja tuotantoympäristön kanssa.

Päivitetty tällä viikolla

Projektihakemiston config.yml-tiedostoa käytetään paikallisen kehitysympäristön määrittämiseen. Seravon palvelussa olevien sivustojen mukana tulee yleensä valmiiksi esikonfiguroitu tiedosto. Kun ajat sivuston ensimmäistä kertaa tyhjällä projektipohjalla, oletusarvoinen config.yml luodaan config-sample.yml-mallitiedoston pohjalta.

Oletusarvoinen config.yml

name: wordpress 
development:
domains:
- wordpress.local

Esimerkki mukautetusta tiedostosta

name: wordpress 

production:
domain: example.seravo.com
ssh_port: 12345

development:
domains:
- mywpsite.local
- another.local
- third.mywpsite.local

pull_production_db: never
pull_production_plugins: never
pull_production_themes: never

Asetusten muokkaaminen

Muutokset tulevat voimaan, kun kontti käynnistetään uudelleen. Useimmat muutokset päivittyvät ajamalla seravo-docker up. Jotkut rakenteelliset muutokset saattavat vaatia konttien uudelleenrakentamista tai poistamista (rebuild/remove) ennen käynnistystä.

Ominaisuudet

name

  • Oletus: wordpress

  • Kuvaus: Muuttamalla tätä vaihdat sivustosi sisäisen tunnisteen. Tätä käytetään Docker-konttien ja -verkkojen nimeämisessä. Esimerkiksi wp-pull-staging-db-komento käyttää tätä SSH-yhteyden käyttäjänimenä.

  • Esimerkki:

    name: mywpsite

production

  • Oletus: -

  • Kuvaus: Lisää domain ja ssh_port, jotta voit synkronoida paikallisen Docker-ympäristösi tuotantoympäristön kanssa.

  • Esimerkki:

    production: 
    domain: example.seravo.com
    ssh_port: 12345

staging

  • Oletus: -

  • Kuvaus: Lisää domain ja ssh_port, jotta voit synkronoida tiedot staging-ympäristön (varjon) kanssa.

  • Esimerkki:

    staging: 
    domain: example.seravo.com
    ssh_port: 23456

development.domains

  • Oletus: wordpress.local

  • Kuvaus: Lista paikallisista verkkotunnuksista, jotka ohjataan Nginx-konttiin. Multisite-asennuksissa listaan tulee lisätä kaikki domainit. Varmista, etteivät nämä ole ristiriidassa muiden järjestelmässäsi pyörivien konttien kanssa.

  • Esimerkki:

    development: 
    domains:
    - mywpsite.local
    - another.local
    - third.mywpsite.local

development.pull_production

  • Oletus: -

  • Kuvaus: Määrittää, noudetaanko tiedot tuotannosta automaattisesti, kun ympäristö käynnistetään. Arvoksi asetetaan always tai never.

  • Esimerkki:

    development: 
    pull_production_db: always
    pull_production_plugins: always
    pull_production_themes: always

WordPress Network (Multisite) lokaalissa kehityksessä

Multisite-asennukset vaativat muutamia lisämäärityksiä, jotta verkosto toimii oikein lokaalissa Docker-ympäristössä.

DOMAIN_CURRENT_SITE -vakion määritys

Tuotantosivustolla wp-config.php sisältää usein kovakoodatun verkoston osoitteen DOMAIN_CURRENT_SITE-vakiossa. Lokaalissa kehityksessä tämän on osoitettava lokaaliin osoitteeseen. Paras tapa toteuttaa tämä dynaamisesti on hyödyntää WP_ENV-ympäristömuuttujaa:

if ( 'development' === getenv('WP_ENV') ) { 
define('DOMAIN_CURRENT_SITE', 'example.local');
} else {
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
}

Aliverkkotunnukset (alidomainit)

Jos käytät aliverkkotunnusrakenteista multisitea, sinun on lisättävä kaikki käytettävät alidomainit config.yml-tiedoston development-osioon ennen kontin käynnistämistä:

... 
development:
domains:
- wordpress.local
- site1.wordpress.local
- site2.wordpress.local

Kun ajat komennon wp-pull-production-db, järjestelmä tunnistaa alidomain-asennuksen ja yrittää automaattisesti muuttaa osoitteet lokaaliin muotoon (esim. sivusto1.esimerkki.fi > sivusto1.wordpress.local).

Huom: Jos networkissä on käytössä mäpättyjä osoitteita, jotka eivät ole alidomaineja (esim. sivusto1.com), näitä ei muuteta automaattisesti. Kehittäjän on tällöin tehtävä tarvittavat muutokset omilla skripteillään tai wp search-replace -komennolla.

Vastasiko tämä kysymykseesi?