Pakettivarastojen konfigurointi Composerilla

Ingmar Aasoja
Jaa:


Tämä on kolmas osa blogikirjoitusten sarjasta, joka käsittelee Composer-nimistä paketinhallintaohjelmaa, joka helpottaa WWW-sivustojen kehittämistä. Aiemmin esittelin composer.phar-ohjelman käytön aloittamista ja yleisimpiä komentoja. Seuraavaksi vastaamme kysymykseen siitä, miten Composerilla voidaan asentaa itse tehty paketti siten, että jokin muu paketti tulee riippuvaiseksi siitä.

Kun asennat riippuvuutta composer install -komennolla, kyseisen paketin tiedot haetaan ensin julkisesta packagist.org-rekisteristä. Jos haluat pystyä asentamaan kotitekoisen paketin samalla komennolla, siihen on useita vaihtoehtoja.

Packagist.org

Jos kyseessä on avoimen lähdekoodin sovellus, se voidaan kirjata julkiseen packagist.org-rekisteriin, joka skannaa julkista Git-pakettivarastoa joko manuaalisesti tai automaattisesti webhook-menetelmällä, ja paketti asentuu ilman lisätoimia. Ainoa ehto on, että paketin nimen tulee olla yksilöllinen.

Composer.json-tiedoston konfigurointi

Suojattuja Git-pakettivarastojen voi konfiguroida myös suoraan sen projektin composer.json-tiedostossa, jolle kyseinen riippuvuus halutaan asentaa. Tätä varten sinun on konfiguroitava haluamasi paketit repositories-kohtaan.

{
    "repositories": [
        {
            "type": "vcs",
            "url":  "git@minu-git-aadress.org:vendor/minut-git-repo.git"
        }
    ],
    "require": {
        "vendor/minut-git-repo": "dev-master"
    }
}Code language: JSON / JSON with Comments (json)

Tämä ratkaisu tukee Gitin lisäksi versionhallintajärjestelmiä Subversion, Mercurial ja Fossil.

Suojatun rekisterin käyttö

Jos suojattuja paketteja on useita ja niiden hallinta composer.json-tiedostoissa on monimutkaisempaa, voit käyttää myös omaa rekisteriäsi. Siihenkin on useita vaihtoehtoja. Voit esimerkiksi käyttää maksullista Private Packagist-palvelua, joka auttaa myös julkisten riippuvuuksien hallinnassa seuraamaan tietoturva-aukkoja sekä heijastamaan koodia tapauksissa, joissa jokin kirjasto ei ole tavoitettavissa silloin, kun sitä tarvitaan.

Vaihtoehtoisesti tällaista rekisteriä voi isännöidä myös itse. Siihen sopii hyvin myös Zone-isännöintiohjelmistossa toimiva Satis, joka tuottaa Composerille konfigurointitiedostolla luettavissa olevan staattisen rekisterin.

Satis-työkalun asennus

Ensin asennamme Satisin virtuaalipalvelimelle. Tätä varten kirjaudumme palvelimelle SSH:n kautta ja siirrymme verkkotunnuksen kokoelmahakemistoon:

cd verkkotunnukset/www.upeanakoala.euCode language: Bash (bash)

Sitten asennamme sovelluksen:

# kloonaamme satisin git-pakettivaraston
git clone https://github.com/composer/satis.git

# asennamme tarvittavat riippuvuudet 
cd satis
composer install

# luomme hakemiston, jossa alamme näyttää pakettivarastoja
mkdir public

WWW-palvelimen konfigurointi

Julkaistaksemme pakettivaraston lisäämme palvelimellemme aliverkkotunnuksen nimeltä satis.upeanakoala.eu ja asetamme Hakemisto palvelimella-arvoksi satis/public.

Satisin konfigurointi

Sitten luomme palvelimelle satis.json-tiedoston ja sijoitamme sen yhdellä tasolla aliverkkotunnusta palvelevan hakemiston yläpuolelle eli satis-hakemistoon. Yhden osan tiedoston sisällöstä muodostaa yleinen registrykonfiguraatio ja toisen osan pakettivarastojen kokonaisuus, jonka haluat lisätä sinne. Niillä on kuitenkin täsmälleen sama rakenne kuin composer.json-tiedoston repositories-kohdalla.

Tiedoston sisältö voisi näyttää seuraavalta:

{
    "name": "my/repository",
    "homepage": "https://satis.upeanakoala.eu",
    "repositories": [
        {
            "type": "vcs",
            "url":  "git@minu-git-aadress.org:vendor/minut-git-repo.git"
        }
    ],
    "require-all": true
}Code language: JSON / JSON with Comments (json)

Kaikki pakettivarastot, jotka haluat lisätä rekisteriin, on konfiguroitava tässä tiedostossa repositories-kohtaan.

Satisin käynnistäminen

Jotta voit aloittaa oman rekisterisi käytön, sinun on luotava konfigurointitiedostosta rekisteri. Tämä komento käy läpi kaikki konfiguroidut Git-pakettivarastot ja luo niitä vastaavan sisällön, joka näkyy verkosta. Sitä varten tulee suorittaa satis-hakemistossa seuraava komento:

php bin/satis build satis.json publicCode language: Bash (bash)

Jos avaat sitten selaimellasi satis.upeanakoala.eu-aliverkkotunnuksen, näet luodun rekisterin ja saatavilla olevat paketit. Tarkempia konfigurointivaihtoehtoja löytyy dokumentaatiosta, jonka käytöstä voi lukea lisää myös Satisin dokumentaatiosta. Yksinkertaisuussyistä emme kuitenkaan konfiguroi sitä tässä esimerkissä.

Suojatun rekisterin käyttöönotto

Jotta kyseisessä rekisterissä olevia paketteja voidaan ottaa käyttöön, on konfiguroitava asianmukaisen paketin composer.json-aliverkkotunnus:

        "repositories": [
        {
            "type": "composer",
            "url": "https://satis.upeanakoala.eu"
        }
    ]Code language: JSON / JSON with Comments (json)

Sitten voitkin asentaa paketit, jotka ovat mahdollisia viitatussa rekisterissä.

Lisäksi

Vaikka meillä onkin nyt täysin toimiva, suojattu ja Composerilla käytettävissä oleva rekisteri, on silti huomattava pari asiaa.

1. Todennus

Ei haittaa, jos voit rajoittaa pääsyä aliverkkotunnukseen esimerkiksi IP-osoitteilla, jotka liittyvät kyseistä rekisteriä käyttäviin palvelimiin, tai konfiguroida HTTP basic auth -salasanatodennuksen.

2. Automaattinen päivittäminen

Jotta pakettivarastojen rekisteri päivittyy automaattisesti, kannattaa lisätä päivityskomento cd www.upeanakoala.eu/satis [[$PHP]] bin/satis build satis.json public määräajoin suoritettaviin tehtäviin ja suorittaa se kohtuullisin väliajoin – esimerkiksi kerran päivässä riippuen siitä, kuinka usein kyseiset paketit saattavat päivittyä.

3. Pakettien heijastaminen

Jos haluat ottaa ohjat omiin käsiisi ja olla riippumaton Githubista, voit myös heijastaa konfiguroidut paketit samalle Satis-palvelimelle. Tämä vähentää myös ulkoisen verkon liikennettä ja nopeuttaa asennusta Zonen palvelujen sisällä. Satisia voi kuitenkin käyttää myös julkisten pakettien heijastamiseen.

Heijastamista varten on lisättävä satis.json-tiedostoon seuraavat rivit:

...
    "archive": {
        "directory": "dist",
        "format": "tar",
        "skip-dev": true
    }
...Code language: JSON / JSON with Comments (json)

Jo seuraavalla suorituskerralla nämä paketit asentuvat public-kansioon. Muista kuitenkin, että virtuaalipalvelimella on rajoitetusti levytilaa, joten kannattaa asentaa heijastettaviksi vain välttämättömät pakettivarastot.

Suositut postaukset

Kiinalainen vesikidutus ajaa WordPress-sivustoja hulluksi

Ardi Jürgens
Moni on varmasti kuullut kiinalaisesta vesikidutuksesta eli toimenpiteestä, jossa kahlitun uhrin päälakeen tiputetaan hitaasti jääkylmää vettä,...

Näin tekoäly voi auttaa sinua luomaan kotisivun

Zone Blogi
Verkkosivuston rakentaminen voi olla melkoinen urakka. Ensin pitää suunnitella rakenne, tuottaa sisältöä ja varmistaa, että sivusto on käyttäjälle...

Automaattisesti otettavat tilannekuvat ja pidempi varmuuskopioiden säilytysaika

Ingmar Aasoja
Meillä on ilo ilmoittaa, että Zonen Pro-verkkoisännöintipalvelun käyttäjille on nyt saatavilla automaattiset jokaöiset Zone+-tilannekuvat, ja varmuuskopioiden...

Mihin verkkosivuston tilastoihin kannattaa kiinnittää eniten huomiota?

Zone Blogi
Kirjoitimme äskettäin blogissamme siitä, mitä web-analytiikka on ja mitä työkaluja on saatavilla näiden tietojen mittaamiseen. Koska kerättäviä...