Forleden aften, sad jeg og lagde en administrations del på et website. Egentlig kopierede jeg noget eksisterende kode fra et af mine andre sites, og tilpassede så de enkelte php filer til det nye site. Efter af have låst for adgangen med .htaccess og .htpassword, skete der nu det at når jeg forsøgte at hente index.php ind i browseren, skete der absolut ingenting - det var værre end at møde det absolut sidste punkt på internettet, det var blankt - ingenting.

Jeg gik dels igang med at søge på internettet, samt dobbeltchecke at alle filer fra tidligere site nu også var overført. Ligeledes løb jeg koden igennem, var de de rigtige klasser, var der stadig noget eksisterende fra tidligere. I mine log filer fandt jeg dog fejl ala. PHP Warning:  main(): SAFE MODE Restriction in effect.

Via google fandt jeg følgende.

  • lav en .htaccess fil tilføj til toppen php_value register_globals 0 eller php_flag register_globals on
  • En fuldstændig guide til .htaccess kan iøvrigt findes her.

I mit tilfælde løste det ikke problemmet, tilgengæld fik jeg følgende i error.log filen:

  • [Fri Oct 26 13:04:41 2007] [alert] [client 10.10.10.10] /home/site_name/administration/.htaccess: php_value not allowed here, referer: http://www.site_name.dk/

Ovenstående direktiver virker kun hvis PHP kører som et Apache modul under Apache. Det virker ikke som CGI. PHPSuExec kører under CGI og register_globals i .htaccess filen vil ikke virke, præsis som i mit tilfælde, hvor jeg kører under Interworx.

Hmmm tilbage til den første fejl. Ved et tilfælde lavede jeg lige en ls -ltr at kataloget hvor filerne befandt sig. Hov! Ok ovenstående fejl kan altså også fremprovokeres, når filerne er kopieret som root.

En chown siteejer:siteejer * løser problemmet ... ak!