PHP i Vortex

Vortex støtter kjøring av PHP-skript. Foreløpig ønsker vi ikke å skru på dette annet enn ved konkrete behov. 

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".

Publisert 31. mai 2007 09:57 - Sist endret 17. mars 2022 09:44