Siirry pääsisältöön

Datan sijainnit

Tämä artikkeli sisältää kaikki Seravon oletusasennuksen polut. Tähän sisältyvät polut mm. lokitiedostoihin ja htdocs-kansioon.

Päivitetty tällä viikolla

Oletusasennus

Seravo käyttää https://github.com/Seravo/wordpress -pohjaa kaikkien sivustojen oletusasennuksena. Jos pohjan kanssa ilmenee ongelmia, teethän siitä tiketin Githubiin.

Datan sijainnit

Kaikki datasi sijaitsee polussa /data/. Sivustosi päivitysten aikana poistamme kaikki tarpeettomat tiedostot ja säilytämme vain /data/-hakemistossa olevat tiedostot. Esimerkiksi kotikansiosi löytyy /data/home/$USER/ -hakemistosta ja siihen on luotu korvaavat symlinkit, joten et todennäköisesti edes huomaa, että se sijaitsee jossain muualla.

Juurihakemisto (eng. web root)

Sivuston sisältö tarjoillaan sijainnista: /data/wordpress/htdocs/

WordPress asennuksen sijainti

WordPress on asennettu sijaintiin: /data/wordpress/htdocs/wordpress/

WP-sisältö

WP-sisältö on siirretty WordPress-hakemiston ulkopuolelle sijaintiin: /data/wordpress/htdocs/wp-content/

WordPress lataukset

Gitissä ei ole suositeltavaa tallentaa mitään wp-content/uploads -hakemistoon. Jos pluginissasi tai teemassasi on kuvia, tallenna ne pluginien tai teemojen hakemistoihin. Tuotannossa oleva /uploads -hakemisto on tarkoitettu vain käyttäjien lataamille tiedostoille. Tuotantoon ladattuja mediatiedostoja tai tietokantaa ei tulisi seurata gitissä.

Jos sivustoa kehitetään Seravo Docker -kontissa, /uploads -kansion sisältö haetaan välipalvelimen (asset proxy) kautta. Se hakee tuotantosivulta kaikki mediatiedostot, joita ei ole kehitysympäristössä. Tämä edellyttää, että Docker-kontilla on toimiva internetyhteys ja että tuotantopalvelimen osoite on määritelty projektin config.yml -tiedostossa. Jos haluat hyödyntää tuotannon tietokantaa kehittäessäsi Seravo Docker -kontissa, tuo tietokanta komennolla wp-pull-production-db.

Lokitiedostot

Kaikki lokit tallennetaan sijaintiin: /data/log/

Projektin rakenne

Seravo käyttää mukautettua hakemistorakennetta, joka on johdettu Bedrockista. Bedrock on WordPress-rakenne, joka käyttää Composer-työkalua pakettien hallintaan. WP-ytimen tiedostojen muokkaaminen ei ole suositeltavaa, joten yleensä sovelluksesi koostuu vain wp-content -hakemistossa olevista tiedostoista. Kun käytämme versiohallintaa, on paljon parempi, että sisältösi on erotettu kansioon, joka on erillään ytimen asennuksesta. Mukautettu malli sisältää myös testit, composer.json, mukautetut nginx-säännöt ja tiedostot paikallista kehitystä varten (Vagrantfile). Alla tarkemmin projektihakemiston rakenteesta:

/data/wordpress
├── config.yml # See about Configuration above
├── composer.json # Use composer for package handling
├── composer.lock
├── gulpfile.js # Example for using gulp
├── Vagrantfile # Advanced vagrant environment and scripts packaged in Vagrantfile

├── tests # Here you can include tests for your WordPress instance
│ └── codeception
│ └── acceptance
│ ├── console-whitelist.json # Your custom whitelists
│ └── MyTestCept.php # Your custom tests
|
├── nginx # Here you can have your custom modifications to nginx which are also used in production
│ └── examples.conf # Some examples to get started
│ └── anything.conf # Your own config files can be named anything *.conf.

├── scripts
│ ├── git-hooks # Git hooks for your project
│ │ ├── post-receive # This is run in production/shadow when new commits are pushed to it
│ │ └── pre-commit # This is run after every commit
│ │
│ ├── wordpress
│ │ └── Installer.php #Additional composer scripts
│ │
│ └── run-tests # Bash-script as an interface for your tests in Seravo Production and Dev environment

├── vendor # Composer packages go here
└── htdocs # This is the web root of your site
├── wp-content # wp-content is moved out of core
│ ├── mu-plugins
│ ├── plugins
│ ├── themes
│ └── languages
├── wp-config.php
├── index.php
└── wordpress # WordPress Core installed by composer
├── wp-admin
├── index.php
├── wp-load.php
└── ...

Pakolliset polut

Jotta Serovon tarjoama valvonta ja ylläpito toimisivat sivustolla optimaalisesti, edellytämme seuraavaa:

  • WordPress-asennuksen on sijaittava /data/wordpress/htdocs/wordpress

  • teemojen, lisäosien, pakolliset lisäosien (eng. mu-plugins) ja latausten on sijaittava /data/wordpress/htdocs/wp-content

  • WordPressin hallinta on sijaittava osoitteessa https://esimerkki.fi/wp-admin/

Voit jatkaa suosikki projektirakenteesi käyttöä, jos lisäät symlinkit, jotta yllä olevat polut toimisivat myös rinnakkain. Voit myös mukauttaa WordPress-sivustosi kirjautumissivun, kunhan normaali /wp-admin -sijainti toimii rinnakkain.

Esimerkiksi kaikilla uusilla sivustoilla Seravon kuvien optimointi on oletusarvoisesti käytössä. Estääksemme WordPress-ytimen, teemojen tai lisäosien kuvien manipulointia, automaattinen kuvien optimointi koskee vain kuvia, jotka sijaitsevat kansiossa /data/wordpress/htdocs/wp-content/uploads. Jos lataukset on tallennettu muualle, kuvia ei optimoida automaattisesti.

Toisena esimerkkinä, jos WordPress heartbeat -toimintoa osoitteessa https://example.com/wp-admin/admin-ajax.php?action=heartbeat ei löydy lainkaan, Seravo ei voi valvoa, toimiiko WordPress heartbeat vai ei. Jos heartbeat-toiminto löytyy toisesta sijainnista, Seravon henkilökunta ei voi tarkastaa lakkaako heartbeart toimimasta, koska tapahtumaa ei ole mahdollista havaita.

Oletusarvoinen WordPress-asennuksemme on suunniteltu turvalliseksi ja luotettavaksi, eikä siitä poikkeaminen useimmiten tuo mitään etuja. Jos olet kokenut WordPress-kehittäjä ja sinulla on jotain lisättävää, avaa ominaisuuspyyntö osoitteessa github.com/Seravo/wordpress.

Siirtyminen Bedrockista

Seravon projektimalli on muokattu versio Bedrockista. Sivusto voi jatkaa myös tavallisen Bedrock-asettelun käyttöä, jos sitä mukautetaan seuraavasti.

Tavallisessa Bedrockissa on tyypillisesti seuraava hakemistorakenne:

/data/wordpress
├── config
| ├── environments
| │ ├── production.php
| │ └── ...
| └── application.php
├── vendor
├── web
| ├── app
| │ ├── mu-plugins
| │ ├── plugins
| │ ├── themes
| │ └── uploads
| ├── index.php
| └── wp-config.php
├── composer.json
└── ...

Jotta tämä toimisi edelleen, sinun on lisättävä seuraavat symlinkit:

ln -s web htdocs
ln -s app htdocs/wp-content

Palvelin odottaa löytävänsä juurihakemiston (eng. web root) /data/wordpress/htdocs -hakemistosta, sen alta /wp-content -kansion sisältävän sivustokohtaiset tiedostot ja /wordpress -kansion sisältävän WordPressin ytimen tiedostot.

Vaihtoehtoisesti voit muokata composer.json -tiedoston käyttämään samoja polkuja kuin Seravon projektirakenteen composer.json.

Hakemistorakenne Capistranon tai muiden julkaisutyökalujen kanssa

On myös mahdollista käyttää vaihtoehtoisia hakemistorakenteita, kunhan niihin tehdään muutamia pieniä muutoksia, jotta ne ovat yhteensopivia tavallisen WordPress-asennuksen kanssa.

Jos käytät julkaisutyökalua, joka tuo useita versioita tiedostoista palvelimelle ja aktivoi sitten yhden niistä osoittamalla symbolisen linkin uudelleen, voit käyttää esimerkiksi seuraavanlaista hakemistorakennetta:

/data/wordpress
├── current -> releases/20170323143417
├── htdocs -> releases/20170323143417/web
├── nginx
├── releases
│ ├── 20170322075317
│ ├── 20170322112722
│ └── 20170323143417
│ ├── config
│ │ ├── deploy
│ │ └── environments
│ ├── public -> web
│ ├── vendor
│ │ ├── composer
│ │ └── vlucas
│ └── web
│ ├── app
│ │ ├── languages -> /data/wordpress/shared/web/app/languages
│ │ ├── mu-plugins -> /data/wordpress/shared/web/app/mu-plugins
│ │ ├── plugins -> /data/wordpress/shared/web/app/plugins
│ │ ├── themes
│ │ └── uploads -> /data/wordpress/shared/web/app/uploads
│ ├── wordpress -> /data/wordpress/htdocs/wp
│ ├── wp -> /data/wordpress/shared/web/wp
│ └── wp-content -> /data/wordpress/htdocs/app
└── shared
├── config -> releases/20170323143417/config
├── vendor -> releases/20170323143417/vendor
└── web
├── app
│ ├── languages
│ ├── mu-plugins
│ ├── plugins
│ └── uploads
└── wp
├── wp-admin
├── wp-content
└── wp-includes

Git-repositorio sijainnit

Git-repositorio on tarkoitus alustaa /data/wordpress -hakemistoon. Lisätietoja lokaaliin kehitykseen löydät täältä.

Jos havaitsemme git-repositorion olemassaolon ylläpitotöiden ja projektitiedostojen muokkaamisen yhteydessä, tallennamme kaikki muutokset, jotta muutokset eivät katoa tai korvaudu, kun asiakas myöhemmin suorittaa uudelleenjulkaisun.

Vastasiko tämä kysymykseesi?