Nejprve si do našeho adresáře /home/xlogin/public_html vytvoříme soubor .htaccess (musí mít povolen "r" přístup pro ostatní). Do něho uvedeme, že soubory s příponou .php jsou skripty a že se jako skripty mají spouštět:

DirectoryIndex index.php
AddHandler cgi-script .php
AddType application/x-httpd-php .php

Aby bylo možné PHP skript spustit, musí mít povolen "x" přístup pro vlastníka a jeho úplně prvním řádkem musí být řetězec #!/packages/run/php/bin/php. Tento řetězec není potřebné vkládat do souborů, které se nespouštějí přímo, ale například se jenom vkládají pomocí include. Příklad PHP skriptu:

#!/packages/run/php/bin/php
<html>
<?php
  echo strftime("%H:%M:%S\n");
?>
</html>

Pokud chcete použít FastCGI, může soubor .htaccess vypadat následovně:

DirectoryIndex index.php
AddHandler fastcgi-script .php
AddType application/x-httpd-php .php

FastCGI skripty nejsou nově spouštěny při každém požadavku, ale obsluhují jich více. To může způsobit zrychlenou odezvu aplikace, ale na druhou stranu ne všechny aplikace jsou na tento způsob používání připraveny.

Jak postupovat v případě problémů

Užitečným zdrojem bližších informací o chybách jsou logy Apache. Lze je nalézt na serveru Aisa umístěné ve /var/log/httpd/, konkrétně error.log, případně suexec.apachefi.log.

Při ladění chyb je také výhodnější použít CGI místo FastCGI. Chybové logy jsou pak přehlednější a spouštění skriptu přes web je responzivnější.

PHP skript by také měl být přímo spustitelný v příkazové řádce. Příklad korektního výstupu:

aisa:/home/xlogin/public_html>$ ./index.php
X-Powered-By: PHP/5.3.16
Content-type: text/html

<html>
10:04:01
</html>
Příklady možných chyb v případe neúspěšného spuštění index.php:
  • -bash: ./index.php: Permission denied
    PHP skript zřejmě nemá povolen "x" přístup pro vlastníka.
  • -bash: ./index.php: /packages/run/php/bin/php^M: bad interpreter: No such file or directory
    PHP skript má DOSová ukončení řádků. Na unixová ukončení řádků je ho možné konvertovat utilitou dos2unix.

Verze PHP

Aktuálně je na serveru www.fi.muni.cz instalována verze PHP 5.3. Pro účely testování přechodu na verzi 5.4 je možno použít v prvním řádku skriptu řetězec #!/packages/run/php/bin/php54. Rozdíly mezi těmito verzemi jsou shrnuty v dokumentu Migrating from PHP 5.3.x to PHP 5.4.x.

Vzhledem k tomu, že verze PHP 5.3 již nebude dále vyvíjena, počítáme v dohledné době s ukončením podpory PHP 5.3 a změnou fakultní PHP (#!/packages/run/php/bin/php) na verzi 5.4.