javed has asked for the wisdom of the Perl Monks concerning the following question:

hello, i am new to ubuntu as well as apache2 this is my question, i have downloaded apache2, and after entering 127.0.0.1 or by typing localhost, i see a reply message on my browser like, 'it works!' this means my apache 2 is running properly. now,i want to make a form using perl script and after that i need the form to be uploaded on my local server by typing 127.0.0.1 before the path, how do i do it. also a little guidance will be useful.

Replies are listed 'Best First'.
Re: apache2 start up after installing
by moritz (Cardinal) on May 01, 2012 at 10:08 UTC
      thanx but uploads can be done by cgi as well as from perl, and i want to know about perl. and i know the upload script, i just want the form to be seen at localhost..

        marto has provided links in Re^3: apache2 start up after installing that may prove to be very helpful. It appears that you need to understand some of the basics of how web applications work. Perhaps even something at http://w3schools.com or similar would be helpful.

        The fact that a web script is written in perl is of no consequence. It is how the web script interacts with the web server that makes it CGI or mod_perl or plack. Modules like Apache2, CGI, and plack can help your script interface with the server, but until you grasp the basic architecture of what the httpd server, the CGI script, and the browser / client each do, it may be difficult to make use of those.

        --MidLifeXis

        You need to put your Perl scripts in the cgi-bin of the apache2 webserver. Google for "ubuntu cgi-bin location" and you will get all the answers you need. There is an apache configuration file, which specifies where the cgi-bin is, and what file extensions like .pl are recognized. Although it is possible to set it up so that cgi scripts can be run from the html root directory, it is very seldom done for security reasons. You can load an image or html page from html-root, but scripts are generally confined to a cgi-bin directory.

        I'm not really a human, but I play one on earth.
        Old Perl Programmer Haiku ................... flash japh
Re: apache2 start up after installing
by tobyink (Canon) on May 01, 2012 at 10:06 UTC

    I'm pretty sure that the default configuration for Ubuntu keeps its documents in "/var/www/". So if you just deposit a file in that directory, it will be available on your web server. No need to upload anything.

    For example, if you save an image as "/var/www/fluffy-kitten.jpeg" then you can view the image at http://localhost/fluffy-kitten.jpeg.

    Next step is probably to install the libapache2-mod-perl2 package for Ubuntu. It is possible to run Perl scripts using Apache CGI's support, but mod_perl is generally seen as a better bet, and will pretty much always result in faster page loading. (The slight disadvantage to mod_perl is that after making changes to your script you generally need to restart Apache. There are workarounds for this, but nothing I've found 100% satisfactory.)

    I'd also strongly suggest installing Plack from CPAN, which is a package that can act as "glue" between your Perl script and the web server.

    Once you have all that set up, then here's a little skeleton to get you started...

    ### This file is /var/www/plack-example/.htaccess ### Note the dot in the filename! SetHandler perl-script PerlResponseHandler Plack::Handler::Apache2 PerlSetVar psgi_app /var/www/plack-example/app.psgi
    ### This file is /var/www/plack-example/app.psgi use Data::Dumper; my $app = sub { my $env = shift; my $headers = ['Content-Type' => 'text/plain']; my $body = [Dumper($env)]; return [200, $headers, $body]; };
    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
      but when i try to save my perl upload script using the extension /var/www/fileupload.pl from the command line, then a message appears that writing is protected and also i cant dircctly place the file in that folder

        You don't have permissions to copy the file into this location:

        sudo cp fileupload.pl /var/www/fileupload.pl

        Since you're new to Ubuntu (Linux also?) and Apache, I'd suggest spending time learning the basics. I'm sure a web search will find you many Linux tutorials. The Apache documentation is worth reading also. I usually recommend Ovid's CGI Course to those learning CGI basics also. Tutorials has a Web Programming section.