PHP-CGI
Mureakuha
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!"; ?>
