Perl draait op onze servers en is via CGI aan te roepen. Er zijn drie dingen die moeten kloppen, en als een daarvan mist krijgt u een foutmelding 500.
1. De eerste regel
Elk Perl-script begint met een verwijzing naar de Perl-interpreter, de zogeheten shebang-regel:
#!/usr/bin/perlDeze moet de allereerste regel zijn, zonder spaties of lege regels ervoor. Twijfelt u over het juiste pad, dan geeft het commando which perl via SSH het antwoord.
2. De bestandsrechten
Het script moet uitvoerbaar zijn. Zet de rechten op 755 via de bestandsbeheerder in DirectAdmin of via uw FTP-programma. Zonder uitvoerrecht weigert de server het te draaien.
3. De regeleinden
Dit is de meest verraderlijke. Schrijft u het script op Windows en uploadt u het in binaire modus, dan staan er onzichtbare Windows-regeleinden in. Perl struikelt daarover en meldt iets als “bad interpreter”.
Upload Perl-scripts daarom in ASCII-modus in plaats van binair. In FileZilla stelt u dat in bij de overdrachtsinstellingen. Is het al misgegaan, dan lost het commando dos2unix scriptnaam.pl via SSH het op.
De uitvoer
Een CGI-script moet eerst een contenttype meesturen voordat het iets anders uitprint:
print "Content-type: text/html\n\n";Vergeet u die regel of de dubbele witregel erachter, dan volgt opnieuw een foutmelding 500.
Fouten opsporen
Het foutlog in DirectAdmin vertelt precies wat er misging. Test uw script bij voorkeur eerst via SSH met perl -c scriptnaam.pl; dat controleert de syntaxis zonder het uit te voeren.