NB. Dette gjelder pr. omr?de innenfor en gitt Vortex-host. Dvs. at vi skrur p? kun for de omr?dene der det er behov, og vi beholder samtidig kontrollen med hvor det befinner seg PHP-applikasjoner. Hvis dette er aktuelt for dere, ta kontakt med oss. PHP-versjonen som kj?res er den til enhver tid st?ttede versjonen fra Seksjon for applikasjon- og integrasjonsplattformer, for tiden PHP 7.4.
Begrensninger
F?lgende tekniske begrensninger gjelder for kj?ring av PHP i Vortex
- Det er ikke mulig ? gj?re noen form for skriving til eller oppretting av filer fra PHP.
- Det er ikke mulig ? kj?re noen form for eksterne programmer/kommandoer fra PHP-skript.
- ?pning av filer fra PHP overstyres, slik at rettighetene som er satt i Vortex blir gjeldende.
PHP-applikasjoner
PHP-st?tten i Vortex er ment som en hjelp til migrering av eksisterende l?sninger og andre sm?-behov for PHP (enkle skript for mindre oppgaver o.l.). Vi tillater normalt ikke at st?rre PHP-applikasjoner legges i Vortex. Eksempler slike applikasjoner er bloggverkt?y som Wordpress, CMS-er og portalverkt?y (Drupal), diskusjonsforum (phpbb), osv. Vortex er ikke en Apache-server og er ikke laget for ? kj?re PHP, men er et selvstendig CMS i seg selv. Vi kan forel?pig ikke ta ansvar for sikkerhet og drift av slike PHP-applikasjoner og ?nsker ikke at de kj?rer p? serverene til Vortex.
Dersom du har behov for en PHP-applikasjon er det bedre ? legge denne p? en annen host. Kontakt Seksjon for applikasjon- og integrasjonsplattformer (www-drift@usit.uio.no) p? USIT dersom du har sp?rsm?l rundt dette.
Hvordan kj?re PHP-skript i Vortex
For at en fil skal gjenkjennes som et kj?rbart php-skript, m? filtype v?re satt til text/php p? Om-arkfanen. Hvis man laster opp filer med fil-endelsen .php, vil vi gjette denne filtypen hvis nettleseren ikke sier noe annet.
Les de p?f?lgende avsnittene for viktig informasjon rundt sikkerhet, rettigheter og annet i forbindelse med kj?ring av PHP-skript i Vortex.
Rettigheter p? php-filer
Vanligvis er det ikke noe behov for ? beskytte tilgangen til ? lese kildekoden til dokumenter i Vortex, men dette vil fort v?re annerledes for php-filer. Fordi php-filer fort kan inneholde sensitive data, anbefaler vi at man alltid s?rger for ? skru av leserett for disse, og istedet bruker rettigheten Kun lese transformert under "Avanserte rettigheter" p? Rettigheter-arkfanen, for ? gi brukerne tilgang.
Inkludering av filer fra php-skript
Det er mulig ? lese andre filer fra php. For at dette skal v?re sikkert, gjelder f?lgende begrensninger:
- Klienten autoriseres for kun lese transformert-rettighet (inkluderer ogs? lese-rettighet) mot filene.
I praksis betyr dette at alle filer som inkluderes, b?r ha samme rettigheter som php-skriptet. Dette gj?res enklest ved ? samle alle filene i en mappe og bare sette rettigheter p? mappa.
- Filer som inkluderes m? ha samme eier som skript-fila.
Dette kan fort v?re en litt slitsom begrensning hvis flere jobber sammen om ? lage en php-l?sning. I slike situasjoner kan det v?re viktig ? vite at administratorer p? ressurser har rett til ? ta eierskap.
Vi tillater ?pning av filer (og includes) med absolutte paths (alts? som begynner med '/') og relative paths.
For ? ?pne filer med absolutte paths m? f?lgende gj?res:
include($_SERVER["DOCUMENT_ROOT"] . "/path/til/fil");
PHP og tegnsett
N?r man jobber med PHP, er det en stor fordel ? bruke UTF-8 som tegnsett. PHP-motoren har satt utf-8 som standard tegnsett. Det betyr at hvis man ikke setter noe annet selv i skriptet, vil PHP rapportere "Content-Type: text/html;charset=utf-8" til nettleseren. I tillegg vil Vortex alltid gjette at php-filer har tegnsettet utf-8 (med mindre man overstyrer dette p? Om-arkfanen), og dette har betydning for eksempel hvis man redigerer skriptet p? Rediger kildekode-arkfanen.
Hvis man m?, er det er det fortsatt mulig ? bruke iso-8859 som tegnsett. Men da m? man sette Content-Type-headeren selv i php-skriptet (og overstyre tegnsettet til filen p? Om-arkfanen). I tillegg er det slik at eventuelle forms, som sender parametere til php, eksplisitt m? sende disse utf-8-kodet. Dette gj?res ved ? sette accept-charset="UTF-8" p? form-taggen (dette virker dessverre ikke p?litelig i alle nettlesere).
Dekorering og PHP
PHP script blir dekorert etter samme regler som HTML filer. Det vil si at markup og tekst som befinner seg utenfor <html>-taggen ikke vil bli vist. Det vil si at feilmeldinger fra PHP ikke vil bli vist hvis du kj?rer PHP utenfor <html>-taggen. S? derfor anbefaler vi at du kj?rer PHP slikt som vist i eksempelet under.
<html> <head> <?php $tittel = "En PHP side"; echo "<title>" . $tittel . "</title>"; ?> </head> <body> <?php $overskrift = "En PHP overskrift"; echo "<h1>" . $overskrift . "</h1>"; ?> </body> </html>
Hvis du jobber med et PHP script som ikke er pakket inn i en <html>-tag s? er en n?dl?sning ? skru av dekorering og parsing ved ? legge f?lgene parametre til URL-en:
?x-prevent-decorating&x-prevent-parsing
Da vil du f? det scriptet lager uten at dekoreringen til Vortex r?rer det.
Inkludering av php-skript i html-sider
Php-skript kan inkluderes i vanlige html-sider, ved ? bruke komponenten "include:file virtual".