# CGI agus FastCGI: na bunghnéithe

> CGI agus FastCGI le PHP mínithe: próiseas do gach iarratas nó oibrithe buana, ról php-cgi agus PHP-FPM, socruithe cgi agus rialacha slándála.

Foinse: https://phpsos.de/ga/php/cgi-und-fastcgi/  
Staid: 25/10/2026  
Soláthraí: PHP SOS, Cabhair éigeandála PHP agus slándáil freastalaí. Cabhair láithreach trí WhatsApp: https://wa.me/491736494914?text=Dia%20duit%2C%20a%20PHP%20SOS%2C%20t%C3%A1%20cabhair%20de%20dh%C3%ADth%20orainn%20len%C3%A1r%20bhfreastala%C3%AD%20PHP.%20Cuideachta%3A%20%E2%80%A6%20Su%C3%ADomh%20gr%C3%A9as%C3%A1in%3A%20%E2%80%A6

**Go achomair:** Is sean-chomhéadan é CGI (Common Gateway Interface) ina dtosaíonn an freastalaí gréasáin clár nua do gach iarratas, i gcás PHP an clár `php-cgi`. Is forbairt air é FastCGI: ritheann próisis PHP go buan agus glacann siad le go leor iarratas trí shoicéad. Is é PHP-FPM an chur i bhfeidhm FastCGI is tábhachtaí do PHP. Is iad na socruithe `cgi.*` agus an riail nach mór nasc FastCGI a bheith inrochtana go poiblí riamh na rudaí is tábhachtaí ó thaobh na slándála de.

## Cad is CGI ann?

Is ceann de na modhanna is sine é CGI trína ngineann freastalaithe gréasáin ábhar dinimiciúil. Tagraíonn lámhleabhar PHP don socrú `cgi.rfc2616_headers` do RFC 3875, sonraíocht an Common Gateway Interface. Chomh maith leis sin, ba chláir CGI a bhí i dtús PHP: scríobh Rasmus Lerdorf na chéad “Personal Home Page Tools” in 1994 mar chomhaid dhénártha CGI i C.

An prionsabal: do gach iarratas tosaíonn an freastalaí gréasáin próiseas nua, aistríonn sé sonraí an iarratais trí athróga timpeallachta agus an ionchur caighdeánach agus léann sé an freagra ón aschur caighdeánach. Ansin críochnaíonn an próiseas. De réir lámhleabhar PHP, léann PHP a php.ini as an nua le gach glao le CGI agus CLI, le modúil freastalaí ag an tús amháin.

Fágann sé sin CGI láidir, mar go dtosaíonn gach iarratas le próiseas úr. Ach fágann sé mall é freisin: cosnaíonn tosú próisis, cumraíocht a luchtú agus eisínteachtaí a thúsú am le gach iarratas.

## Cad is FastCGI ann?

Réitíonn FastCGI an fhadhb feidhmíochta trí phróisis a choinneáil beo. Nascann an freastalaí gréasáin trí shoicéad Unix nó calafort TCP le próiseas atá ag rith agus seolann sé an t-iarratas chuige sa phrótacal FastCGI. Próiseálann an próiseas é agus fanann sé leis an gcéad cheann eile.

| Gné | CGI | FastCGI le php-cgi | FastCGI le PHP-FPM |
|---|---|---|---|
| Próiseas do gach iarratas | tá | níl | níl |
| Ainm SAPI | `cgi-fcgi` | `cgi-fcgi` | `fpm-fcgi` |
| Linnte le húsáideoir dá gcuid féin | níl | níl | tá |
| Rialú próisis | freastalaí gréasáin | modúl freastalaí gréasáin, m.sh. mod_fcgid | príomhphróiseas dá chuid féin |
| Léitear `.user.ini` | tá | tá | tá |

De réir an lámhleabhair, is é PHP-FPM an príomhchur i bhfeidhm FastCGI de chuid PHP. Cuireann sé bainistiú próisis, linnte, leathanaigh stádais agus slowlog leis an bprótacal. Tá na mionsonraí ag [PHP-FPM mínithe](https://phpsos.de/ga/php/php-fpm-erklaert/).

## Na socruithe cgi i php.ini

Do oibriú CGI tá socruithe dá gcuid féin ag PHP. Tagann na luachanna agus na cur síos seo ó lámhleabhar PHP:

1. **`cgi.force_redirect`** (réamhshocrú 1, `INI_SYSTEM`): de réir an lámhleabhair, riachtanach chun PHP a oibriú go slán mar CGI faoin gcuid is mó de na freastalaithe gréasáin. Ná múch é ach “ar do riosca féin”; faoi IIS caithfidh sé a bheith as.
2. **`cgi.fix_pathinfo`** (réamhshocrú 1, `INI_SYSTEM`): cinntíonn sé luachanna ceart `PATH_INFO` agus `PATH_TRANSLATED`. Ba cheart do scripteanna `SCRIPT_FILENAME` a úsáid in ionad `PATH_TRANSLATED`.
3. **`cgi.discard_path`** (réamhshocrú 0, `INI_SYSTEM`): ceadaíonn sé an comhad dénártha CGI a chur go sábháilte lasmuigh den eolaire gréasáin, gan cosaint `.htaccess` a sheachbhóthar.
4. **`fastcgi.impersonate`** (réamhshocrú 0, `INI_SYSTEM`): ábhartha do IIS faoi Windows amháin.
5. **`user_ini.filename`** agus **`user_ini.cache_ttl`** (réamhshocrú `.user.ini` agus 300 soicind): rialaíonn siad an léann PHP comhaid `.user.ini` agus cé chomh minic.

I gcás Nginx, bíonn aistriú glan de chosán an script mar chuid de seo. Patrún bunúsach inléite, gan ráthaíocht do gach timpeallacht:

```nginx
location ~ \.php$ {
    try_files $uri =404;               # ná tabhair ach comhaid atá ann do PHP
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}
```

Cuireann an líne `try_files $uri =404;` cosc ar iarratais ar chosáin `.php` nach bhfuil ann a chur ar aghaidh chuig PHP.

## Cén fáth a bhfuil rochtain oscailte FastCGI contúirteach

Tugann lámhleabhar PHP rabhadh sainráite: tá cumraíocht an iarratais á rialú ag duine ar bith atá in ann nasc FastCGI le PHP a oscailt, mar shampla `auto_prepend_file`, agus is féidir leis cód ar bith a rith dá bharr. Is é an chúis go bhféadfaidh freastalaithe gréasáin socruithe PHP a sheoladh le paraiméadair FastCGI ar nós `PHP_VALUE` agus `PHP_ADMIN_VALUE`.

Leanann rialacha soiléire as sin:

- PHP-FPM nó php-cgi sa mhód FastCGI a cheangal trí shoicéad Unix amháin, má ritheann an freastalaí gréasáin ar an óstach céanna.
- Le TCP, `listen.allowed_clients` a leagan síos agus an calafort a bhlocáil sa bhalla dóiteáin; nótaí ag an alt [Balla dóiteáin do fhreastalaithe gréasáin](https://phpsos.de/ga/blog/firewall-fuer-webserver/).
- Cearta soicéid a choinneáil go docht le `listen.owner`, `listen.group` agus `listen.mode`.

> **Tábhachtach:**
> Seiceáil le `ss -lntp | grep -i php` an bhfuil próiseas PHP ag éisteacht ar sheoladh TCP. Is cás práinneach é ceangal le `0.0.0.0` nó le seoladh poiblí.

## CGI, FastCGI agus PHP2Shell

Bíonn tionchar ag PHP2Shell ar php-cgi agus ar PHP-FPM araon. Don dá cheann: nuashonrú go 8.5.12, 8.4.27, 8.3.36 nó 8.2.35 nó backport deimhnithe, ansin gach próiseas PHP atá ag rith a chríochnú agus a atosú. I socruithe FastCGI le php-cgi, is minic a leanann próisis ar aghaidh ag rith gan aird, mar nach bhfuil aon seirbhís ar leith á mbainistiú. Tá an chaoi chun an seanchóras seo a aimsiú agus a chur ar leataobh ag [php-cgi: seanchóras le riosca](https://phpsos.de/ga/server/php-cgi/). I Plesk tá ainmneacha eile ar na leaganacha; cabhraíonn [Plesk: láimhseálaithe PHP a thuiscint](https://phpsos.de/ga/blog/plesk-php-handler/).

## Conas a chabhraíonn PHP SOS go praiticiúil?

- **Láimhseálaithe a thaifeadadh:** Faighimid amach an ritheann do shuíomhanna gréasáin trí CGI, FastCGI le php-cgi nó PHP-FPM.
- **Rochtain a dhúnadh:** Seiceálaimid soicéid, calafoirt agus rialacha balla dóiteáin ionas nach bhfuil aon rochtain FastCGI inrochtana ón taobh amuigh.
- **Paistiú agus glanadh:** Nuashonraímid PHP agus críochnaímid gach seanphróiseas, cásanna tréigthe php-cgi san áireamh.
- **Cur ar leataobh:** Mar chuid de [chruatú freastalaí](https://phpsos.de/ga/leistungen/server-haertung/) cuirimid PHP-FPM le linnte dá gcuid féin in ionad seanchórais CGI.


## Ceisteanna coitianta

**An é FastCGI an rud céanna le PHP-FPM?**  
Ní hé. Is prótacal é FastCGI trína labhraíonn freastalaí gréasáin le próiseas feidhmchláir. Is clár é PHP-FPM a chuireann an prótacal seo i bhfeidhm do PHP agus a bhainistíonn na próisis. Is féidir le php-cgi FastCGI a labhairt freisin, ach ní thairgeann sé linnte.

**Cén fáth a measfar CGI glan a bheith as dáta?**  
Le CGI tosaíonn an freastalaí gréasáin próiseas nua do gach iarratas, agus léann PHP a chumraíocht gach uair. Cosnaíonn sé sin am agus acmhainní. Coinníonn FastCGI agus PHP-FPM próisis réidh go buan agus dá bhrí sin tá siad i bhfad níos éifeachtaí.

**Cad is .user.ini ann?**  
Is comhad beag cumraíochta é .user.ini in eolaire gréasáin. De réir lámhleabhar PHP, ní léann ach na SAPInna CGI agus FastCGI é, mar sin PHP-FPM freisin. Ní fhéadfaidh sé ach socruithe a bheith ann leis na modhanna INI_PERDIR, INI_USER nó INI_ALL.

**Conas a aithním an bhfuil php-cgi ag rith ar mo fhreastalaí?**  
Cuardaigh le horduithe léitheoireachta ar nós ps nó pgrep próisis darb ainm php-cgi agus féach i gcumraíocht an fhreastalaí gréasáin ar iontrálacha ar nós mod_fcgid, Action nó ScriptAlias le php-cgi. I bpainéil óstála, is minic CGI nó feidhmchlár FastCGI an t-ainm ar an mód oibriúcháin.

## Foinsí

- [Lámhleabhar PHP: Socruithe croí (cgi.*)](https://www.php.net/manual/en/ini.core.php)
- [Lámhleabhar PHP: Comhaid .user.ini](https://www.php.net/manual/en/configuration.file.per-user.php)
- [Lámhleabhar PHP: Cumraíocht FPM](https://www.php.net/manual/en/install.fpm.configuration.php)
- [Doiciméadú Nginx](https://nginx.org/en/docs/)
