An cás reatha: PHP2Shell. Ceadaíonn dhá leochaileacht chriticiúla PHP (CVSS 9.2) cód mailíseach gan logáil isteach. Paistí ar fáil ón 21 Deireadh Fómhair 2026.Cad atá le déanamh anois →

CI/CD: íomhánna PHP a thógáil as an nua go huathoibríoch

Téann íomhá as dáta fiú gan athrú cóid. Le tógálacha ama, seiceáil leagain agus scaoileadh le digest, sroicheann paistí PHP an táirgeadh go hiontaofa.

Staid Am léitheoireachta: 7 nóim.Óstáil agus dáiltí

Go achomair: Tá PHP in íomhá Docker sa staid ina raibh sé nuair a tógadh í agus téann sí as dáta fiú gan athrú cóid. An té a thógann íomhánna as an nua go huathoibríoch, de réir ama agus nuair a bhíonn fógraí slándála ann, a sheiceálann leagan PHP sa phíblíne agus a scaoileann le digest, tugann sé paistí ar nós an cheann in aghaidh PHP2Shell isteach sa táirgeadh ar bhealach intuartha. Ní cruthúnas é tógáil ghlas amháin; is é an leagan sa choimeádán atá ag rith an rud a chuireann.

Cén fáth a dtéann íomhánna as dáta gan athrú cóid

I go leor foirne ní thosaíonn an phíblíne tógála ach nuair a athraíonn duine cód. Don fheidhmchlár is loighciúil é sin. Don tslándáil is fadhb é, mar tagann an PHP san íomhá ón íomhá bhunúsach ag clib na tógála deireanaí.

Léirigh PHP2Shell é seo go soiléir. D'eisigh na leaganacha ceartaithe 8.5.12, 8.4.27, 8.3.36 agus 8.2.35 an 21 Deireadh Fómhair 2026. Ní bhfuair tionscadal nár oibrigh aon duine air sna laethanta sin tógáil nua agus lean sé ag rith leis an seanPHP cé go raibh an íomhá bhunúsach nuashonraithe le fada. Déanann PHP a phaistiú i gcoimeádáin Docker cur síos ar an mbealach láimhe as an gcás seo. Léiríonn an t-alt seo conas é a uathoibriú.

Íomhánna Docker a thógáil as an nua go huathoibríoch: trí spreagadh

Comhcheanglaíonn próiseas láidir roinnt spreagthaí ionas nach gá d'aon cheann amháin an t-ualach go léir a iompar.

Spreagadh Cur i bhfeidhm Rud le tabhairt faoi deara
Sceideal sreabhadh oibre ama, m.sh. seachtainiúil tógann sé paistí fiú gan athrú cóid
Íomhá bhunúsach nua uirlis a fhaireann íomhánna bunúsacha agus a mholann athruithe oibríonn sé go príomha le clibeanna leagain seasta
Fógra slándála tús láimhe na píblíne ag an bhfoireann oibríochtaí teastaíonn duine freagrach soiléir

Le GitHub Actions, glacann an t-imeacht schedule leis an sceideal. De réir dhoiciméadúchán GitHub úsáideann sé comhréir cron le cúig réimse, ritheann sé in UTC agus ar an mbrainse réamhshocraithe amháin. Is féidir le rith sceidealaithe tosú mall nuair a bhíonn ualach ard, agus i stórtha poiblí múchann GitHub iad tar éis 60 lá gan ghníomhaíocht. Bíonn tionchar ag an dara ceann go háirithe ar thionscadail chiúine, is é sin go díreach orthu siúd is mó a bhfuil gá acu leis an tógáil uathoibríoch.

Don dara spreagadh, tacaíonn Dependabot, de réir dhoiciméadúchán GitHub, leis an éiceachóras docker agus molann sé staideanna nua d'íomhánna bunúsacha mar pull request. Ba cheart duit dhá theorainn a fhios. Ar an gcéad dul síos, caithfidh duine éigin an pull request a sheiceáil agus a chumasc, nó fanann sé gan aird. Ar an dara dul síos, i gcás clibe brainse ar nós php:8.3-fpm sa Dockerfile ní athraíonn aon ní nuair a thógtar an íomhá bhunúsach as an nua. Ansin níl aon ní ag uirlis a mholann athruithe téacs le moladh. Sin go díreach an chúis a dteastaíonn an tógáil nua ama freisin.

Is cosúil go bhfuil an tríú spreagadh baileach simplí, ach teipeann air go minic i gcleachtas ar an gceist cé a spreagann é. Socraigh cé a leanann fógraí slándála PHP agus cé a fhéadfaidh an phíblíne a thosú, deireadh seachtaine san áireamh. Le PHP2Shell, ní raibh ach lá amháin idir réamhfhógra agus paiste.

Píblíne a ghabhann PHP as dáta

Tógann an sampla seo do GitHub Actions an íomhá go seachtainiúil agus ar bhrú cnaipe, seiceálann sé leagan PHP agus cuireann sé stop leis má tá sé faoi bhun na staide ceartaithe. Oiriúnaigh an chlárlann, ainmneacha agus an leagan íosta.

name: php-image-rebuild
on:
  schedule:
    - cron: "0 3 * * 1"      # Dé Luain ag 03:00 UTC
  workflow_dispatch: {}      # tús láimhe nuair a bhíonn fógraí slándála ann

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Image ohne Cache und mit frischem Basis-Image bauen
        run: docker build --pull --no-cache -t app:${{ github.run_id }} .
      - name: PHP-Version prüfen (Mindeststand des Zweigs 8.3)
        run: |
          docker run --rm app:${{ github.run_id }} php -v
          docker run --rm app:${{ github.run_id }} \
            php -r 'exit(version_compare(PHP_VERSION, "8.3.36", ">=") ? 0 : 1);'

Oibríonn an tseiceáil leagain le híomhánna oifigiúla PHP, a dtugann uimhir a leagain an fhíorstaid. Má úsáideann d'íomhá pacáistí PHP de dháilte, is minic a fhanann an uimhir mar a bhí tar éis backport. Ansin seiceáil changelog an phacáiste le haghaidh na n-uimhreacha CVE in ionad na huimhreach, mar a dhéantar cur síos air san alt Uimhreacha CVE a chruthú i changelog an phacáiste.

Tar éis na seiceála leanann trí chéim eile i gcleachtas: an íomhá a scanadh le haghaidh laigí aitheanta, í a bhrú isteach sa chlárlann le dáta agus digest, agus an digest a thabhairt don soláthar. Míníonn Íomhánna oifigiúla PHP Docker cé na clibeanna agus na leaganacha atá oiriúnach mar bhonn.

Ón tógáil go dtí an coimeádán atá ag rith

An earráid smaointeoireachta is coitianta: tá an phíblíne glas, mar sin tá gach rud paistithe. I ndáiríre níl an íomhá nua ach sa chlárlann. Ní bhíonn an paiste éifeachtach go dtí go ndéantar gach coimeádán a chruthú as an nua ón íomhá nua.

  1. Scaoileadh le digest: Tagraíonn an soláthar do digest na híomhá nua, ní do chlib atá ag gluaiseacht.
  2. Staging ar dtús, ansin táirgeadh: Gabhann tástálacha uathoibríocha ar chóip briseadh de bharr íomhánna bunúsacha nua.
  3. Seiceáil san oibríocht: Tar éis an scaoilte rith php -v sa choimeádán atá ag rith agus cuir an digest i gcomparáid leis an tógáil.
  4. Cúlú a theorannú: Fanann an sean-íomhá ar fáil ar feadh cúlú gearr, ach tá an PHP leochaileach inti.

I Kubernetes tá rialacha dá gcuid féin ann, mar shampla maidir leis an bpolasaí tarraingthe; tá siad le fáil faoi PHP a phaistiú i Kubernetes.

Bearnaí tipiciúla sa slabhra

  • Taisce tógála ar an runner: Gan --pull agus --no-cache, athúsáidtear an sean-íomhá bhunúsach.
  • Scáthán clárlainne: Seachadann taisce inmheánach seanstaid na híomhá bunúsaí fós.
  • Tógálacha il-chéime: Is é leagan PHP na céime deireanaí an ceann a chomhaireamh, ach is minic nach seiceálfar ach an chéad cheann.
  • Taobh-íomhánna: Tá píblínte dá gcuid féin ag oibrithe scuaine, coimeádáin cron agus uirlisí inmheánacha, nó níl aon cheann acu.
  • Digests a cuireadh isteach go docht: Ní nuashonraítear digest íomhá bunúsaí a scríobhadh uair amháin mura bhfuil uirlis ag faire air.
Tábhachtach

Cuireann tógáil nua PHP in ionad, ní na sonraí. Fanann cód mailíseach a tháinig isteach in imleabhair, i bhfillteáin uaslódála nó sa bhunachar sonraí roimh an bpaiste, agus ní mór é a sheiceáil ar leith.

Cé a fhreagraíonn nuair a theipeann ar an tógáil nua?

Níl tógáil nua uathoibríoch ach chomh maith lena freagairt ar theip. Má ghníomhaíonn an tseiceáil leagain nó má stopann an tógáil de bharr íomhá bhunúsach athraithe, caithfidh duine éigin é a thabhairt faoi deara. I go leor foirne téann a leithéid de theachtaireachtaí isteach i mbosca poist nach léann aon duine, nó i gcainéal ina bhfuil tógálacha dearga ina ngnáthrud le fada.

D'oibrigh riail shoiléir go maith: is ticéad le duine freagrach agus spriocdháta é tógáil nua slándála a theip, ní nóta i measc go leor. Coinnigh freisin do gach íomhá scaoilte an dáta, an digest agus an leagan PHP seiceáilte. Freagraíonn an liosta seo, leis an gcéad fhógra eile, i gceann nóiméad cé na feidhmchláir atá buailte, agus fónann sé mar chruthúnas d'iniúchóirí nó d'árachóirí. Déanann Bainistiú paistí mar phróiseas in ionad briogáide dóiteáin cur síos ar conas a thagann próiseas buan as seo.

Conas a chabhraíonn PHP SOS go praiticiúil?

  • Píblínte a sheiceáil: Féachaimid ar do shlabhraí tógála agus scaoilte agus léirímid cá bhféadfadh paiste a bheith sáinnithe.
  • Tógáil nua a uathoibriú: Bunaímid tógálacha ama, seiceáil leagain agus scaoileadh le digest.
  • Gach íomhá a thaifead: Sannaimid a phíblíne do gach coimeádán atá ag rith, taobh-íomhánna agus sean-íomhánna san áireamh.
  • Cúram buan: Sa Chonradh Cothabhála Slándála leanaimid fógraí slándála agus spreagaimid tógálacha nua.

Ceisteanna coitianta

Cé chomh minic ba cheart íomhá PHP a thógáil as an nua?

Níl uimhir sheasta ann. D'oibrigh tógáil rialta ama go maith, mar shampla seachtainiúil, mar aon le tógáil láithreach nuair a bhíonn fógra slándála ann. Is é an rud cinntitheach nach gcaithfidh paiste nua fanacht leis an athrú cóid eile.

An leor tógáil rathúil mar chruthúnas?

Ní leor. Ní chruthaíonn tógáil ach go bhfuil íomhá nua ann. Ní bhíonn an paiste éifeachtach go dtí go ndéantar na coimeádáin atá ag rith a chruthú as an nua ón íomhá seo agus go dtaispeánann php -v ann an leagan ceartaithe.

Cén fáth a bhfuil an seanleagan PHP le feiceáil fós tar éis na tógála nua?

Is cúiseanna coitianta iad taisce tógála a athúsáideann an sean-íomhá bhunúsach, scáthán clárlainne le seanstaid nó dara líne FROM i dtógáil il-chéime. Tóg le --pull agus --no-cache agus seiceáil gach céim.

An féidir le Dependabot íomhánna bunúsacha a nuashonrú?

De réir doiciméadúchán GitHub, tacaíonn Dependabot leis an éiceachóras Docker do nuashonruithe leagain agus slándála. Molann sé athruithe ar íomhánna bunúsacha mar pull request. Ní chuireann sé an tógáil nua in ionad nuair a fhanann an chlib mar an gcéanna.

Foinsí

Teagmháil láithreach

Cuireann gach uair an chloig leis. Scríobh chugainn anois.

Déan cur síos gearr ar an gcóras, leagan PHP agus an rud a thug tú faoi deara. Cuirfimid scéala chugat, soiléireoimid an cás agus oibreoimid go cianda go dtí go mbeidh an teagmhas dúnta agus doiciméadaithe.

Cabhair láithreach