Skip to content

More about the internal server

Harry Kakoulidis edited this page Feb 16, 2020 · 1 revision

The shebang line

The shebang line is the first line of the script that calls perl. It looks something like

#!/bin/perl

On all servers, it is required that it points to a valid path to perl. You should check out with your web host to see what the exact path is, since it will be required when uploading.

icon_idea But you don't need to change it on each script; OptiPerl will do it automatically when uploading if this is setup in the remote transfer sessions.

However when using the internal server, this line can point to anything, because it is not used. The internal server knows when to load perl by the file extension, and this can be setup if needed from "server associations".

Strange headers and 500 errors

On a production server, if you upload and something is wrong with your script, you get a "500 error" page when running it. If you are lucky enough to have access to the servers error logs then you can see what was wrong. Another issue is when warnings occur before the header is printed. They are not shown anywhere, but they might pose a security risk.

OptiPerl's internal server on the other hand never gives a 500 error, and never swallows a warning message in the header. Actually it will try to analyze the output and tell you what is wrong. You can identify this easily when running, from the yellow box that appears on top of the output:

InternalServer

If the error is fatal, then this will be the only output. You may also get the full output, plus a warning box about a strange field in the header. This will probably be a warning message from one of the modules the script uses.

Remote debugging via loopback

The internal server is optimized for this work. Read more about Remote debugging.

Access and error logs

The internal server does not generate access and error logs, like most servers do. Instead it prints every request and response plus details of what it does in the "server talk" tab of the web browser.

Clone this wiki locally