PHP-CGI

Mureakuha

Loikkaa: valikkoon, hakuun

PHP ja tiedostonkäsittely on hankalaa, jos php on säädetty ns. safe mode päälle. Safemodissa php-tulkki tarkistaa, onko tiedoston omistaja sama kuin käsittelijä. Vaikka PHP käynnistyykin aina samaan tunnukseen, yleisimmin www-data, niin silti sillä on joka kerta eri UID, jolloinka Linux sanoo että ei ole sen tiedosto. Tämä onglma ratkotaan ajamalla PHP-tulkkia CGI-modissa. CGI-modissa tiedoston pääte on .cgi ja tiedoston alkuun tarvitaan php-tulkin osoite. Koska CGi-ohjelma on skripti, tiedostolle tarvitaan suoritusoikeudet, yleisemmin '755'. PHP:tä ajatessa CGI-modissa sitä ajetaan sen käyttäjätunnuksen tunnuksella, jolla php-skripti sijaitsee.

Perinteisen Hello world -skriptin muuttaminen cgi:ksi:

helloworld.php

<?php
  echo "Hello World!";
?>

Selvitetään php-tulkin osoite:

linux:~$ which php
/usr/bin/php
linux:~$ mv helloworld.php helloworld.cgi
linux:~$ chmod 755 helloworld.cgi

Lisätään rivi helloworld.cgi:hin:

#!/usr/bin/php
<?php
  echo "Hello World!";
?>
Henkilökohtaiset työkalut