Go achomair: Is dualgas é íomhá Docker PHP a nuashonrú i gcoinne PHP2Shell, agus ní tharlaíonn sé leis féin. Caithfidh tú an íomhá a thógáil nó a tharraingt as an nua le leagan ceartaithe PHP, gach coimeádán a chruthú as an nua uaithi agus a sheiceáil go bhfuil 8.5.12, 8.4.27, 8.3.36 nó 8.2.35 ag rith sa choimeádán beo. Ní leor coimeádán a atosú go simplí.
Cén fáth nach bhfuil coimeádáin sábháilte go huathoibríoch
Is grianghraf reoite í íomhá Docker. Fanann an PHP inti ar an staid a bhí aige nuair a tógadh í, fiú má cuireadh nuashonruithe isteach ar an óstríomhaire le fada. Ní athraíonn nuashonrú pacáiste ar an gcóras óstríomhaire aon ní den PHP sa choimeádán.
Tagann bacainní tipiciúla leis sin: íomhánna a tógadh míonna ó shin agus nár tháinig aon athrú orthu ó shin, bunaíomhánna le clib sheasta ar nós php:8.3.35-fpm, taisceanna áitiúla a athúsáideann an seanbhunaíomhá agus an íomhá á tógáil, agus coimeádáin a atosaíodh ach nár cruthaíodh as an nua riamh. Tá tionchar ar gach modh oibriúcháin atá coitianta i gcoimeádáin: PHP-FPM, Apache le mod_php agus FrankenPHP.
Ina theannta sin tá ceist freagrachta. I gcomhlachtaí go leor thóg gníomhaireacht nó forbróir an íomhá uair amháin, ach is é TF inmheánach nó soláthraí óstála a oibríonn í. Ansin ní mhothaíonn aon duine freagrach as staid PHP san íomhá. Soiléirigh dá bhrí sin ar dtús cé a thógann an íomhá, cá bhfuil an Dockerfile agus cé a fhéadann íomhánna nua a chur amach.
Leagan PHP sa choimeádán a sheiceáil
Seiceáil an coimeádán atá ag rith, ní an Dockerfile amháin. Is léamh amháin iad na horduithe.
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.CreatedAt}}"
docker exec <container> php -v
docker exec <container> php -i | grep -E "^PHP Version|Server API"
docker image inspect <image> --format "{{.Created}}"
Má úsáideann an íomhá pacáistí dáilte in ionad tógálacha oifigiúla PHP, seiceáil staid na bpacáistí sa choimeádán. Athraíonn ainmneacha pacáistí de réir bhun-dháileacháin:
docker exec <container> sh -c "apt policy php8.3-fpm 2>/dev/null || apk info -v 2>/dev/null | grep php"
I gcás pacáistí dáilte d'fhéadfadh backport a bheith curtha isteach cé go bhfanann an uimhir leagain sean. Ansin cuireann changelog an phacáiste i gcuntas. Os a choinne sin, de ghnáth tagann PHP féin comhthiomsaithe leis na híomhánna oifigiúla PHP; ansin is é an uimhir leagain ó php -v an luach cinntitheach. Conas a aithníonn tú backports, féach Leagan PHP agus staid paiste a sheiceáil i gceart.
Íomhá Docker PHP a nuashonrú: tógáil as an nua agus cur amach
Íomhá féin bunaithe ar íomhá PHP: Tarraing an bunaíomhá as an nua agus tóg gan taisce.
docker build --pull --no-cache -t meine-app:2026-10-25 .
docker run --rm meine-app:2026-10-25 php -v # an leagan a sheiceáil sula gcuirtear amach é
Le Docker Compose: Tarraing nó tóg íomhánna agus cruthaigh coimeádáin as an nua.
docker compose pull
docker compose build --pull --no-cache
docker compose up -d --force-recreate
Seiceáil ina dhiaidh sin arís le docker exec <container> php -v an bhfuil an leagan nua ag rith. Má tá clib leagain sheasta ag an gcoimeádán sa Dockerfile, mar shampla FROM php:8.3.35-fpm, caithfidh tú an chlib a ardú. Faigheann clib ar bhrainse ar nós php:8.3-fpm staideanna paiste nua, ach amháin má tharraingíonn tú as an nua.
Coinnigh an íomhá roimhe seo réidh go mbeidh an leagan nua tástáilte. Má tharlaíonn earráid, is féidir leat filleadh gan an feidhmchlár a fhágáil as líne ar feadh i bhfad. Tá an PHP leochaileach sa seaníomhá arís, áfach; dá bhrí sin níl bealach ar ais inghlactha ach go gairid agus leis na bearta idirthréimhseacha.
An té a úsáideann Kubernetes, cuireann sé an íomhá nua amach tríd an imscaradh. Tá sonraí ag PHP i Kubernetes a phaistiú. I gcás íomhánna FrankenPHP tá an cur chuige céanna i bhfeidhm; tá nótaí ar an modh oibriúcháin ag FrankenPHP a chosaint.
Ná déan dearmad ar choimeádáin taobh: bíonn an íomhá PHP chéanna ag oibrithe cron agus scuaine, uirlisí riaracháin nó timpeallachtaí stáitse go minic, ach ritheann siad i gcoimeádáin féin. Caithfear gach ceann acu a chruthú as an nua.
Bearta idirthréimhseacha sa choimeádán
Mura bhfuil an nuashonrú indéanta fós, baineann bearta idirthréimhseacha php.net leis an gcoimeádán freisin. Ní cosaint iomlán iad. Baineann an teorainn chuimhne leis an gcoimeádán, mar go molann php.net í trí choimeádán nó cgroup, ní trí RLIMIT_AS ná RLIMIT_DATA:
; m.sh. mar chomhad san íomhá: /usr/local/etc/php/conf.d/zz-uebergang.ini
memory_limit = -1
post_max_size = 8M
upload_max_filesize = 6M
session.upload_progress.enabled = 0
docker run --memory=1g ... # nó in Compose: deploy.resources.limits.memory
Oiriúnaíonn tú an luach do d'fheidhmchlár. Cinntigh nach féidir leis an bhfeidhmchlár memory_limit a fhorscríobh é féin; le PHP-FPM leagann tú na luachanna síos sa linn le php_admin_value. Ní thagann cumraíocht nua i bhfeidhm go dtí go gcruthaítear nó go n-atosaítear an coimeádán as an nua; tá cúlra ar an atosú ag PHP-FPM agus gach oibrí a atosú.
Ionas go n-éireoidh níos tapúla an chéad uair eile
- Íomhánna a thógáil as an nua go rialta agus go huathoibríoch, ní nuair a athraíonn an cód amháin.
- Bunaíomhánna a úsáid le clib bhrainse agus an staid thógtha a leagan síos le dáta nó digest.
- Íomhánna a ligean a sheiceáil le haghaidh leochaileachtaí aitheanta sula gcuirtear amach iad agus coimeádáin a oibriú gan cearta root.
- Stoc a choinneáil cé na coimeádáin a úsáideann cén íomhá.
Conas a chabhraíonn PHP SOS go nithiúil?
- An stoc a thógáil: Seiceálaimid gach coimeádán atá ag rith, a n-íomhánna agus a leaganacha PHP, coimeádáin taobh agus stáitse san áireamh.
- Tógáil as an nua agus cur amach: Tríd an tseirbhís paistithe PHP tógaimid na híomhánna le leagan ceartaithe agus cruthaímid na coimeádáin as an nua ar bhealach rialaithe.
- An idirthréimhse a chosaint, nuair a bhraitheann an nuashonrú ar an bhfeidhmchlár: luachanna php.net, teorainn chuimhne ar an gcoimeádán.
- Monatóireacht bhuan: Leis an monatóireacht slándála coinnímid súil ar staideanna íomhánna agus ar iompar neamhghnách na gcoimeádán.
Ceisteanna coitianta
An leor docker restart tar éis an nuashonraithe?
Ní leor. Atosaíonn docker restart an coimeádán leis an seaníomhá céanna. Caithfidh tú an íomhá nua a thógáil nó a tharraingt agus an coimeádán a chruthú as an nua uaithi, mar shampla le docker compose up -d --force-recreate.
An bhfuil an leagan ceartaithe san íomhá oifigiúil PHP cheana?
Is fearr é sin a sheiceáil go díreach: tarraing an íomhá as an nua agus rith php -v inti. Is é 8.5.12, 8.4.27, 8.3.36 nó 8.2.35 an rud a bhfuiltear ag súil leis. Má thaispeánann an íomhá uimhir níos sine, níl sí nuashonraithe fós nó tagann sí ó thaisce.
An bhfuil PHP sa choimeádán faoi bhaol níos lú ná ar an óstríomhaire?
Oibríonn an leochaileacht féin díreach mar an gcéanna sa choimeádán. D'fhéadfadh coimeádán dea-thógtha iarmhairtí briseadh isteach a theorannú, mar shampla trí úsáideoir gan cearta root agus córas comhad cosanta ar scríobh. Ní thagann sé in ionad an phaiste.