Search code examples
cgishellexecutecgi-bin

How to execute a shell script in cgi-bin?


OK first of all, I am a PHP programmer but I have never done anything with CGI and don't know what it is. I know it stands for Common Gateway Interface, but I do not know what it does or what its for.

I was just told that I can upload a shell script to my cgi-bin folder and execute it.

I made a shell script myscript.sh and uploaded it to my cgi-bin folder. The first thing I noticed was my cgi-bin folder is a sibling to my root directory not a child. So I do not know how I would access it?

So I created a directory under my root called cgi-bin2 and put my script there (and chmod them to 755). Then I accessed it from my browser, and all it did was download the file.

Am I missing something?


Solution

  • CGI should send a Content-Type header:

    #!/bin/sh
    printf "Content-Type: text/plain\n\n"
    your_commands_here
    

    Save as anything.sh (extension does not matter) in your cgi-bin folder and chmod 755. cgi-bin does not have to be a child of your public html folder, it can be an alias.