Php vides mainīgie. CGI vides mainīgie

10.08.2022

Vides mainīgie

Vides mainīgie PHP

Tieši pirms skripta palaišanas serveris tam nodod dažus vides mainīgos ar informāciju. Daži mainīgie satur dažas galvenes, bet ne visas (jūs nevarat iegūt visas galvenes). Tālāk es sniegšu svarīgāko vides mainīgo sarakstu.

HTTP_ACCEPT

Šajā mainīgajā ir uzskaitīti visi MIME datu veidi, ko var interpretēt pārlūkprogramma. Līnija */* nozīmē, ka pārlūkprogramma saprot jebkuru veidu.

HTTP_ACCEPT= attēls/gif, attēls/x-xbitmap, attēls/jpeg, attēls/pjpeg, lietojumprogramma/x-shockwave-flash, lietojumprogramma/vnd.ms-excel, lietojumprogramma/msword, */*

HTTP_REFERER

Šis mainīgais apzīmē informāciju par lapu, no kuras lietotājs nokļuva šajā lapā. Varat izmantot šo mainīgo, piemēram, lai izsekotu lietotāja pārvietošanos jūsu vietnē un pēc tam skatītu populārākos maršrutus.

HTTP_REFERER= http://www.spravkaweb.ru/php/pril/

HTTP_COOKIE

Šis mainīgais saglabā visus URL kodētos sīkfailus.

HTTP_COOKIE= hotlog=1; ZDEDebuggerPresent=php,phtml,php3; b=b; PHPSESSID=16805922a9258cda274316e60f649cf8

HTTP_USER_AGENT

Identificē lietotāja pārlūkprogrammu. Lai noteiktu pārlūkprogrammas veidu, šajā rindiņā ir jāatzīmē vārdi: ja pārlūkprogramma ir - Internet Explorer, tad būs MSIE apakšvirkne, un, ja ir tikai vārds Mozilla, tad tas ir Netscape.

Piemēram:

HTTP_USER_AGENT= Mozilla/4.0 (saderīgs; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; Maxthon)

HTTP_HOST

Satur tā tīmekļa servera domēna nosaukumu, kurā darbojās skripts. Šo mainīgo ir diezgan ērti izmantot, piemēram, lai ģenerētu pilnu ceļu, kas ir nepieciešams Location galvenē, lai nebūtu piesaistīts konkrētam serverim.

HTTP_HOST= www.spravkaweb.ru

HTTP_FROM

Adrese e-pasts lietotājs, kurš nosūtīja pieprasījumu.

SERVER_NAME

Domēna vārds vai servera IP adrese.

SERVER_NAME= www.spravkaweb.ru

SERVER_PROGRAMMATŪRA

Servera programmas nosaukums un versija, kas atbild uz klienta pieprasījumu.

SERVER_PORT

Šis mainīgais satur servera portu, kuram piekļuva lietotāja pārlūkprogramma. Parasti tas ir 80. Mainīgo var izmantot arī, lai izveidotu Location galvenes parametru.

SERVER_PROTOCOL

Mainīgais satur pieprasījumam izmantotā informācijas protokola nosaukumu un versiju.

SERVER_PROTOCOL = HTTP/1.1

REMOTE_ADDR

Šis mainīgais satur tā lietotāja resursdatora IP adresi (vai domēna nosaukumu), kurā tika palaists pārlūks.

REMOTE_PORT

Ports, kas ir piešķirts lietotāja pārlūkprogrammai, lai saņemtu servera atbildi.

REMOTE_USER

Pieprasījuma iesniedzēja lietotāja identifikācijas vārds.

SCRIPT_NAME

Satur tā faila nosaukumu, kurā ir šis skripts. Šis mainīgais ir ērti lietojams, veidojot galveni Atrašanās vieta, pāradresējot uz sevi (pašnovirzīšana), kā arī lai aizstātu taga darbības atribūta vērtību

lapā, kuru skripts izsauc, kad tas tiek palaists bez parametriem (lai netiktu piesaistīts konkrētam skripta nosaukumam).

DOCUMENT_ROOT

Web dokumentu koka saknes direktorijs.

REQUEST_METHOD

Metode, ko lietotājs izmanto datu pārsūtīšanai. Jāņem vērā, ka labi uzrakstītam skriptam pašam, pamatojoties uz šo mainīgo, jānosaka, kuru metodi lietotājs izmanto, un jāsaņem dati no atbilstošā avota, nevis jāgaida, ka pārsūtīšanu veiks, piemēram, tikai POST metode.

QUERY_STRING

Ietver parametrus, kas URL parādās aiz jautājuma zīmes. Atgādināsim, ka tie ir pieejami gan ar GET, gan POST metodi (ja pēdējā gadījumā tie tika definēti taga darbības atribūtā ).

PATH_INFO

Satur papildu informāciju par ceļu.

PATH_TRANSLATED

Tāda pati informācija kā mainīgajā PATH_INFO ar prefiksu, kas norāda ceļu uz Web dokumentu koka saknes direktoriju.

CONTENT_TYPE

Pieprasījuma multivides datu tips.

CONTENT_LENGTH

Atgriež lietotāja nosūtīto datu baitu skaitu. Šis mainīgais ir jāanalizē, ja pieņemat un apstrādājat POST veidlapu.

GATEWAY_INTERFACE

CGI versija, ko izmanto serveris.

Vides mainīgo izmantošanas piemērs

Vides mainīgie

Vides mainīgie:

echo "Jūs nācāt no: ".getenv("HTTP_REFERER")."
";

$br=getenv("HTTP_USER_AGENT");

if(strpos($br,"MSIE")!==false) echo "Jums ir Internet Explorer
";

else echo "Jums ir Netscape vai citi.
";

echo "Jūsu IP: ".getenv("REMOTE_ADDR")."
";

echo "Šeit ir parametri pārlūkprogrammas rindā: ".getenv("QUERY_STRING");

No grāmatas Programmēšanas māksla priekš Unix autors Raimonds Ēriks Stīvens

No grāmatas Programmēšanas māksla priekš Unix autors Raimonds Ēriks Stīvens

No grāmatas Programmēšana rubīnā [Valodas ideoloģija, pielietojuma teorija un prakse] autors Fultons Hals

No grāmatas HTML 5, CSS 3 un Web 2.0. Mūsdienīgu tīmekļa vietņu izstrāde. autors Dronovs Vladimirs

No grāmatas Lietojumprogrammu izstrāde in Linux vide. Otrais izdevums autors Džonsons Maikls K.

10.4. Vides mainīgie Kad Unix programma darbojas, tai pieejamajā vidē ir iekļauta nosaukuma un vērtības attiecību kopa (gan nosaukumi, gan vērtības ir virknes). Dažus no tiem lietotājs instalē manuāli, citus instalē sistēma laikā

No grāmatas Firebird DATU BĀZES IZSTRĀDĀTĀJA CEĻVEDIS autors Bori Helēna

10.4.1. Sistēmas vides mainīgie Ir daudzi labi zināmi vides mainīgie, ko programma var iegūt, palaižot to no Unix čaulas. Šie mainīgie (īpaši HOME) bieži ir jānovērtē pirms lokālā faila lasīšanas

No grāmatas Linux programmēšana piemēros autors Robins Arnolds

10.4.2. Pielāgoti vides mainīgie Lai gan lietojumprogrammas var brīvi interpretēt vides mainīgos ārpus sistēmas noteiktās kopas, šādas funkcijas faktiskā izmantošana pašlaik ir diezgan neparasta.

No autora grāmatas

10.4.3. Kad lietot vides mainīgos Lietotāju un sistēmas vides mainīgajiem ir kopīgs fakts, ka tie satur datus, kas tiek glabāti lielos daudzumos konfigurācijas faili tas būtu garlaicīgi. Un ārkārtīgi nogurdinoši

No autora grāmatas

14.4. Vides mainīgie Dažkārt ir nepieciešams piekļūt vides mainīgajiem, kas ir saikne starp programmu un ārpasauli. Vides mainīgie ir vienkārši etiķetes, kas saistītas ar kādu tekstu (parasti mazs); viņi glabā, piemēram, ceļus uz

No autora grāmatas

Funkcijas un mainīgie. Vietējie mainīgie Iepriekš deklarētās funkcijas savā ķermenī izveido savus mainīgos. Tie ir tā sauktie vietējie mainīgie. Šādi mainīgie ir pieejami tikai tajā funkcijas pamattekstā, kurā tie ir deklarēti. Kad izpilde ir pabeigta

No autora grāmatas

22.3.3. Vides mainīgie Programmās, kurās tiek izmantotas setuid vai setgid iespējas, īpaša uzmanība jāpievērš vides iestatījumiem. Šos mainīgos nosaka lietotājs, kurš aktivizējis programmu, tādējādi atverot durvis uzbrukumiem. Acīmredzamākais uzbrukums

No autora grāmatas

Vides mainīgie Vides mainīgie ir globāli sistēmas iestatījumi, kas tiek izmantoti sākotnējās sāknēšanas laikā. operētājsistēma. Operētājsistēmās Windows, Linux un lielākajā daļā UNIX sistēmas Firebird serveris atpazīst un izmanto dažus vides mainīgos, ja tādi ir

No autora grāmatas

Kur ir iestatīti Windows vides mainīgie Vides mainīgo veids un to iestatīšanas veids atšķiras? Windows versijas uz citu. Tabulā Tabulā 3.1 ir parādīti vides mainīgo vērtību veidi (ja tādi ir) un metodes 3.1. tabulā. Vides mainīgā iestatījumi priekš

No autora grāmatas

2. nodaļa Argumenti, opcijas un vides mainīgie Jebkuras programmas pirmais uzdevums parasti ir interpretēt komandrindas opcijas un argumentus. Šajā nodaļā ir apskatīts, kā C (un C++) programmas saņem komandrindas argumentus, aprakstot standartu

Šis ir īss norādījums par PHP pakalpojuma konfigurācijas ieviešanu atkarībā no vides, kurā tas darbojas. Priecāšos, ja kāds ieteiks kādu elegantāku risinājumu vai labos sīkumos.

galvenā ideja

Palaidiet pakalpojumu, mikropakalpojumus un atkarīgās lietojumprogrammas tajā pašā ekosistēmā, kas konfigurēta, izmantojot vides mainīgos.
Problēma
Šajā rakstā pārāk daudz reižu tiek atkārtots "vides mainīgie".
No kastes php-fpm ignorē globālos vides mainīgos (funkcija getenv), savukārt php cli var tos saņemt.
Fons
Varat izlaist šo sadaļu, ja jau esat strādājis ar .env

IN šobrīd Es strādāju pie projekta, kas rakstīts ZF2. Lai konfigurētu projektu, tika izmantoti konfigurācijas faili dažādām vidēm. Tas rada liels skaits dublēt konfigurācijas projekta repozitorijā, piemēram:
  • session.global.php
  • session.local.php.dist
  • session.unittest.php.dist
  • db.global.php
  • db.local.php.dist
  • db.unittest.php.dist
Šie dublikāti ir pastāvīgi jāsinhronizē viens ar otru. Turklāt viņi sevī glabā noteiktu PHP loģiku, kas rada koda dublēšanos.

Tātad projektā tagad ir ņemta vērā vide, bet...

Kamēr izstrāde tika veikta uz darba mašīnām, projekts nolasīja .env failu un viss strādāja. Bet, kad es izvietoju testa vidi, izrādījās, ka, iestatot reālus sistēmas vides mainīgos, php-fpm tos ignorē. Dažādas Google un StackOverflow receptes ir saistītas ar vienu vai otru divu labi zināmu metožu izmantošanas automatizāciju:

1. Mainīgo nodošana caur nginx, izmantojot fastcgi_param parametru SOMEENV testu;
2. Mainīgo iestatīšana env formātā php-fpm darbinieka procesa pūla konfigurācijā.

Gan pirmā, gan otrā iespēja ir ērta dažām īpašām situācijām. Bet, ja domājat pēc paradigmas "vides, nevis lietojumprogrammas konfigurēšana", tad šādas metodes izrādās daudz grūtākas nekā, piemēram, vienkārši ievietot .env failu projekta mapē. Bet orķestrētājs, CI sistēma vai vienkārši sistēmas administrators nevajadzētu zināt projekta īstenošanas detaļas, tas nav eleganti.

Ieteiktais risinājums
Apvienojot dažādas receptes no interneta, atradu šādu darba risinājumu.
Pārbaudīts ar Centos 7, PHP 5.6.14.

1. Atveriet /etc/php.ini - Replace variables_order = "GPCS" ar variables_order = "EGPCS" # Pēc tam PHP pievienos vides mainīgos globālajai telpai # http://php.net/manual/ru/ini. core.php #ini.variables-order 2. Atveriet /etc/php-fpm.d/www.conf, ko nedrīkst sajaukt ar /etc/php-fpm.conf (in dažādas sistēmas var atrasties dažādās vietās, šī ir www procesa pūla konfigurācija php-fpm. - Pievienot (vai aizstāt, ja ir): clear_env = nē # atspējot globālo mainīgo notīrīšanu palaistajiem darbiniekiem 3. Iestatiet nepieciešamos vides mainīgos mapē /etc/environment (standarta sintakse A=B) 4. ln -fs /etc/environment / etc/sysconfig/php-fpm # tagad php-fpm pakalpojuma vides mainīgais config vienkārši būs saite uz globālo konfigurāciju 5. systemctl daemon-reload && service php-fpm restart

Tāda pati pieeja ar simbolisku saiti teorētiski ir piemērojama citiem pakalpojumiem.

Piedāvātā risinājuma priekšrocības:
- /etc/environment saglabātie mainīgie ir pieejami dažādām lietojumprogrammām. Varat izsaukt echo $MYSQL_HOST čaulā vai getenv ("MYSQL_HOST") php.
- Vides mainīgie, kas nav skaidri iestatīti mapē /etc/environment, nenonāks php-fpm. Tas ļauj orķestrim kontrolēt vidi ārpus izolētas sistēmas, kurā darbojas pakalpojums.

Mīnusi:
- Diemžēl es neatradu php-fpm darbojošos komandu pārlādēšanai, līdzīgi kā nginx, tāpēc, ja maināt /etc/environment, jums tas jādara systemctl daemon-reload && service php-fpm restart.

Svarīgi: ja jūsu lietojumprogramma nedarbojas izolētā vidē (serveris, virtuālā mašīna, konteiners), vides mainīgo definēšana var neparedzami ietekmēt blakus esošos pakalpojumus sistēmā, jo nosaukums atbilst globālajā telpā.

Konfigurācijā izmantotie vides mainīgie mūsdienās ir galvenā lietojumprogrammas iestatījumu iestatīšanas metode, piemēram, datu bāzes akreditācijas dati, API atslēgas, slepenās atslēgas un viss pārējais. atšķiras atkarībā no lietojumprogrammas izvietošanas vietas. Tagad šādi iestatījumi nokļūst kodā caur vidi, nevis tiešā veidā tiek ierakstīti konfigurācijas failos vai, vēl ļaunāk, iekodēti tieši kodā.

Apskatīsim tuvāk:

  • Kā tas darbojas?
  • vai tā tiešām ir laba ideja?
  • kā ar tiem strādāt PHP?
  • un visbeidzot, daži ieteikumi un izplatītas kļūdas, no kurām jāizvairās – slazds, uz kurām mēs nejauši uzdūrāmies reālajā pasaulē!

Mēs neapspriedīsim, kā iestatīt vides mainīgos jūsu tīmekļa serverī/Docker/crontabs... jo tas ir atkarīgs no sistēmas, programmatūra, un mēs vēlamies koncentrēties uz pašiem vides mainīgajiem.

Ja jūsu mitināšana izmanto Docker Swarm vai AWS, lietas būs nedaudz atšķirīgas, piemēram, jo ​​viņi ir izvēlējušies ievietot failus jūsu konteinera failu sistēmā, lai ievadītu jūsu slepenās atslēgas, nevis izmantotu vides mainīgos. Tas ir ļoti specifisks šīm platformām, un tas nav izplatīts risinājums ikvienam.

Env vars 101

Kad programma darbojas, tā pārmanto visus vides mainīgos no saviem vecākiem. Tātad, ja iestatīsit YOLO mainīgo uz covfefe programmā bash un pēc tam palaidīsit komandu, jūs varēsit lasīt YOLO jebkurā pakārtotajā procesā.

$ YOLO=covfefe php -r "echo getenv("YOLO");" covfefe

Tā kā šis mainīgais ir definēts tikai lokāli, mēs nevaram to nolasīt no cita termināļa (cita vecāka). Ideja ir nodrošināt, lai jūsu lietojumprogramma vienmēr mantotu pareizos mainīgos.

Varat skatīt visus vides mainīgos komandrinda palaižot šo komandu, bet jūs neredzēsit YOLO mainīgo, jo tas tika nodots komandai php tikai lidojuma laikā un nav iestatīts pašreizējā procesā:

Vides mainīgo var iestatīt, izmantojot eksportēšanu<имя>=<значение> :

$ eksportēt YOLO=covfefe

Mainīgo nosaukumos ir reģistrjutīgi, un nosaukumi tiek lietoti tikai angļu valodā ar lielajiem burtiem, ar _ kā atdalītāju (tā sauktais "čūskas" stils ar lielajiem burtiem). Jūs droši vien jau zināt dažus mainīgos, piemēram, PATH, DISPLAY, HTTP_PROXY...

Šodienas labākā prakse

josegonzalez/dotenv, uz drošību orientēts:

Šī bibliotēka pēc noklusējuma neaizpildīs superglobālus:

$Loader = jauns josegonzalez\Dotenv\Loader("ceļš/uz/.env"); // Parsēt failu.env: $Loader->parse(); // Nosūtiet parsēšanas rezultātu.env mainīgajam $_ENV: $Loader->toEnv();

Tas atbalsta nepieciešamos mainīgos, filtrēšanu un var radīt izņēmumus, kad mainīgais tiek pārrakstīts.

symfony/dotenv, jauns bērns blokā:

Pieejams kopš Symfony 3.3. Šis komponents rūpējas par .env failu tāpat kā citi, kā arī aizpilda superglobālos masīvus:

$dotenv = jauns Symfony\Component\Dotenv\Dotenv(); $dotenv->load(__DIR__."/.env"); $dbUser = getenv("DB_USER"); $dbUser = $_ENV["DB_USER"]; $dbUser = $_SERVER["DB_LIETOTĀJS"];

Jums nevajadzētu to izmantot, lai iegūtu savas vērtības, tāpēc es iesaku izsaukt $_SERVER — turklāt pastāv neliela veiktspējas atšķirība starp masīva izsaukšanu un funkcijas izsaukšanu par labu masīviem.

Vides mainīgie vienmēr ir virknes

Viena no galvenajām problēmām ir tā, ka pašlaik PHP ir veidi, un mūsu iestatījumi ne vienmēr tiek ievadīti pareizi.

Db klase (publiskā funkcija connect(virknes saimniekdatora nosaukums, int ports) ( ) ) // Tas nedarbosies: $db->connect($_SERVER["DATABASE_HOSTNAME"], $_SERVER["DATABASE_PORT"]);

Programmā Symfony tagad varat konvertēt mainīgos un vēl vairāk - lasīt failu, dekodēt json...

Vides mainīgie visur vai ne

Pašlaik notiek daudz diskusiju par vides mainīgo, failu vai abu kombinācijas izmantošanu: vides mainīgais attiecas uz konfigurācijas failu. Lieta ir tāda, ka, lai gan tā tiek uzskatīta par labāko praksi, vides mainīgie nesniedz lielu labumu...

Bet, ja to lieto pareizi, piemēram, Symfony lietojumprogrammā, vides mainīgos var mainīt lidojuma laikā - netīrot kešatmiņu, nepiekļūstot failu sistēma, neizvietojot kodu: piemēram, vienkārši restartējiet procesu.

Tendence, ka ir tikai viens mainīgais, piemēram, APP_CONFIG_PATH, un tas tiek lasīts, izmantojot "%env(json:file:APP_CONFIG_PATH)%", man šķiet kā veco labo parametru.yml izgudrošana, ja vien failu automātiski nepārvalda uzticams rīks (piemēram, AWS Secret Store). ). Un ir arī envkey.com, kas ļauj pārvaldīt vides mainīgos vienuviet, pašam nekratoties ar failiem. Man patīk šī pieeja, jo tā ir daudz vienkāršāka!

Vides mainīgie

Vides mainīgie PHP

Tieši pirms skripta palaišanas serveris tam nodod dažus vides mainīgos ar informāciju. Daži mainīgie satur dažas galvenes, bet ne visas (jūs nevarat iegūt visas galvenes). Tālāk es sniegšu svarīgāko vides mainīgo sarakstu.

HTTP_ACCEPT

Šajā mainīgajā ir uzskaitīti visi MIME datu veidi, ko var interpretēt pārlūkprogramma. Līnija */* nozīmē, ka pārlūkprogramma saprot jebkuru veidu.

HTTP_ACCEPT= attēls/gif, attēls/x-xbitmap, attēls/jpeg, attēls/pjpeg, lietojumprogramma/x-shockwave-flash, lietojumprogramma/vnd.ms-excel, lietojumprogramma/msword, */*

HTTP_REFERER

Šis mainīgais apzīmē informāciju par lapu, no kuras lietotājs nokļuva šajā lapā. Varat izmantot šo mainīgo, piemēram, lai izsekotu lietotāja pārvietošanos jūsu vietnē un pēc tam skatītu populārākos maršrutus.

HTTP_REFERER= http://www.spravkaweb.ru/php/pril/

HTTP_COOKIE

Šis mainīgais saglabā visus URL kodētos sīkfailus.

HTTP_COOKIE= hotlog=1; ZDEDebuggerPresent=php,phtml,php3; b=b; PHPSESSID=16805922a9258cda274316e60f649cf8

HTTP_USER_AGENT

Identificē lietotāja pārlūkprogrammu. Lai noteiktu pārlūkprogrammas veidu, šajā rindā ir jāpārbauda vārdu klātbūtne: ja pārlūkprogramma ir Internet Explorer, tad būs MSIE apakšvirkne, un, ja ir tikai vārds Mozilla, tad tas ir Netscape.

Piemēram:

HTTP_USER_AGENT= Mozilla/4.0 (saderīgs; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; Maxthon)

HTTP_HOST

Satur tā tīmekļa servera domēna nosaukumu, kurā darbojās skripts. Šo mainīgo ir diezgan ērti izmantot, piemēram, lai ģenerētu pilnu ceļu, kas ir nepieciešams Location galvenē, lai nebūtu piesaistīts konkrētam serverim.

HTTP_HOST= www.spravkaweb.ru

HTTP_FROM

Tā lietotāja e-pasta adrese, kurš nosūtīja pieprasījumu.

SERVER_NAME

Domēna vārds vai servera IP adrese.

SERVER_NAME= www.spravkaweb.ru

SERVER_PROGRAMMATŪRA

Servera programmas nosaukums un versija, kas atbild uz klienta pieprasījumu.

SERVER_PORT

Šis mainīgais satur servera portu, kuram piekļuva lietotāja pārlūkprogramma. Parasti tas ir 80. Mainīgo var izmantot arī, lai izveidotu Location galvenes parametru.

SERVER_PROTOCOL

Mainīgais satur pieprasījumam izmantotā informācijas protokola nosaukumu un versiju.

SERVER_PROTOCOL = HTTP/1.1

REMOTE_ADDR

Šis mainīgais satur tā lietotāja resursdatora IP adresi (vai domēna nosaukumu), kurā tika palaists pārlūks.

REMOTE_PORT

Ports, kas ir piešķirts lietotāja pārlūkprogrammai, lai saņemtu servera atbildi.

REMOTE_USER

Pieprasījuma iesniedzēja lietotāja identifikācijas vārds.

SCRIPT_NAME

Satur tā faila nosaukumu, kurā ir šis skripts. Šis mainīgais ir ērti lietojams, veidojot galveni Atrašanās vieta, pāradresējot uz sevi (pašnovirzīšana), kā arī lai aizstātu taga darbības atribūta vērtību lapā, kuru skripts izsauc, kad tas tiek palaists bez parametriem (lai netiktu piesaistīts konkrētam skripta nosaukumam).

DOCUMENT_ROOT

Web dokumentu koka saknes direktorijs.

REQUEST_METHOD

Metode, ko lietotājs izmanto datu pārsūtīšanai. Jāņem vērā, ka labi uzrakstītam skriptam pašam, pamatojoties uz šo mainīgo, jānosaka, kuru metodi lietotājs izmanto, un jāsaņem dati no atbilstošā avota, nevis jāgaida, ka pārsūtīšanu veiks, piemēram, tikai POST metode.

QUERY_STRING

Ietver parametrus, kas URL parādās aiz jautājuma zīmes. Atgādināsim, ka tie ir pieejami gan ar GET, gan POST metodi (ja pēdējā gadījumā tie tika definēti taga darbības atribūtā ).

PATH_INFO

Satur papildu informāciju par ceļu.

PATH_TRANSLATED

Tāda pati informācija kā mainīgajā PATH_INFO ar prefiksu, kas norāda ceļu uz Web dokumentu koka saknes direktoriju.

CONTENT_TYPE

Pieprasījuma multivides datu tips.

CONTENT_LENGTH

Atgriež lietotāja nosūtīto datu baitu skaitu. Šis mainīgais ir jāanalizē, ja pieņemat un apstrādājat POST veidlapu.

GATEWAY_INTERFACE

CGI versija, ko izmanto serveris.

Vides mainīgo izmantošanas piemērs

Uzmanību! Raksts tika rakstīts operētājsistēmā Windows 7, taču nav būtisku atšķirību PHP pievienošanā vides mainīgajiem citās versijās (Windows XP, Windows Vista, Windows 8, ...).

Informācija! Visi ceļi iestatījumos tiks norādīti, pamatojoties uz faktu, ka Denwer ir instalēts mapē D:/web. Izmantojot raksta datus, neaizmirstiet mainīt šo ceļu uz savu.

Ērtības labad izmantojot PHP Windows konsolē ir jākonfigurē vides mainīgie. Pretējā gadījumā, strādājot ar PHP caur konsoli, php komandas vietā jums būs jāieraksta pilns ceļš uz failu php.exe.

Pieņemsim, ka Denwer ir instalēts mapē D:/web.

Ar peles labo pogu noklikšķiniet uz ikonas "Dators" Properties:

Sistēmas papildu parametri:

Cilne "Papildu", poga "Vides iestatījumi...":

Sistēmas iestatījumu grupu, iezīmējiet mainīgo Ceļš un noklikšķiniet uz pogas Rediģēt:

Pievienojiet rindiņu D:\web\usr\local\php5; un noklikšķiniet uz "Labi":

Restartējiet Denwer. Tagad varat atvērt konsoli (Win + R un ievadīt cmd) un pārbaudīt PHP darbību, ievadiet komandu:

Lai labotu šīs kļūdas, atveriet failu D:/web/usr/local/php5/php.ini. Atrodiet mainīgos extension_dir, zend_extension, session.save_path un iestatiet tiem tālāk norādītās vērtības.