Perl and cgi script installation

Discussion in 'General' started by linuxuser1, Mar 22, 2006.

  1. linuxuser1

    linuxuser1 New Member

    Dear all,

    I am trying trying to install a cgi script that provides free e-mail on my debian
    server. I need to install some perl modules to get this to work. I have already installed ISPConfig, mysql and phpMyAdmin on my server as described in perfect setup debian and this is working quite fine.

    I have also already installed ActivePerl on the server. It installed in /opt/Perl.
    Going through the setup documentation,"Install some Perl Modules needed by SpamAssassin (comes with ISPConfig)

    Installation using the Perl Shell

    Login to your command line as root and run the following command to start the Perl shell:

    perl -MCPAN -e shell"
    . It seems that Perl is already installed on my server

    How i can

    (1) install DBI
    (2) install DBD-Mysql
    (3) How do i set /opt/Perl as a path on the server. I understand i need to set the
    system path for Perl so that it can be easily used by all users.
    (4) How do i set Perl as path on the server
    (5) What do i need to do so that my server can run cgi scripts for myself and for
    others
    (6) Can i upgrade my php4 to the latest release.

    By the way am running the 2.02 of ISPConfig

    Thanks for your kind help
     
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    First, i recommend to uninstall active perl. ActivePerl is not needed at all because Debian has its own perl packages.

    If you followed the howto, perl is already installed and configured on your server. Install the additional perl module with the apt-get command.

    To install DBI and DBD-Mysql:

    apt-get install libdbi-perl libdbd-mysql-perl

    6) run:

    apt-get update
    apt-get -u upgrade

    to update your server.
     
  3. linuxuser1

    linuxuser1 New Member

    Thanks Till,

    Will do that.

    One other thing I want to confirm is that is my server now configured to run cgi and pl scripts? Can my customers (when i have one ) - also run cgi scripts securely as it is. The server is installed as par the perfect set up documents.

    2) What do you think I should do to make my Debian server more secure now that am going to be allowing scripts to be run on it.

    I am newbie to linux so your ISPConfig and this forum has gone a long way to help me to learn a lot. So thank you and Falko so much.



    Thanks as always.
     
  4. falko

    falko Super Moderator Howtoforge Staff

    Yes, if you followed the "Perfect Setup". Also have a look at the test files: http://www.howtoforge.com/forums/showthread.php?t=171

    You can use suExec if you're using /var/www as web root for web sites created with ISPConfig. To do so, you must enable suExec under Management -> Server -> Setting -> Web.
     
  5. linuxuser1

    linuxuser1 New Member

    Dear Falko,

    Thanks for your response.

    I have tried to test with the test script at http://www.howtoforge.com/forums/showthread.php?t=171 and am getting 500 error - Internal Server Error!. You can see the url at http://www.alpharadiotv.org.uk/cgi-bin/hello_world.pl. I have enabled "Suexec" and I used this to build my server. - http://www.falkotimme.com/howtos/perfect_setup_debian_sarge/index.php.

    I have also tried this http://www.alpharadiotv.org.uk/cgi-bin/messenger/messenger.cgi?Change_Setings. I also got Error 500.

    The only thing I have done outside the setup documentation is that I installed - apt-get install libdbi-perl libdbd-mysql-perl

    6) run:

    apt-get update

    Thanks for your kind help.
     
  6. falko

    falko Super Moderator Howtoforge Staff

    Can you post the full path to the hello_world.pl script? Can you also post
    Code:
    ls -la /path/to/hello_world.pl
    ?
    Might be a permissions problem. The script must be owned by the site admin and the web group.
     
  7. linuxuser1

    linuxuser1 New Member

    Hi Falko,

    Here we go

    Can you post the full path to the hello_world.pl script? - /var/www/web1/cgi-bin/hello_world.pl
    ls output -rwxr-xr-x 1 root root 379 2004-06-04 18:11 /var/www/web1/cgi-bin/hello_world.pl l

    Another script out put is :
    -rwxr-xr-x 1 root root 91358 2006-03-26 23:29 /var/www/web1/cgi-bin/messenger/messenger.cgi

    Thanks.
     
  8. falko

    falko Super Moderator Howtoforge Staff

    The problem is your scripts belong to root:root instead of the owner and group of the web. You must change this because you have enabled suExec.

    Please post the output of
    Code:
    ls -la /var/www/web1
     
  9. linuxuser1

    linuxuser1 New Member

    Hi Falko,

    Many thanks as always.

    How do i change this permission. I am using WinSCP. When I looked at the properties of the script, I saw that is owed by root but I can only change the chmod numbers. The place to change the owner is greyed out. I will come back to you about the output of ls -la /var/www/web1

    Thanks.
     
  10. falko

    falko Super Moderator Howtoforge Staff

    You should try an SSH client like PuTTY so that you can work on the command line.
    The command to change a file's ownership is
    Code:
    chown <user>:<group> /path/to/file
     
  11. linuxuser1

    linuxuser1 New Member

    Hi falko,

    This is the output of ls -la /var/www/web1
    total 40
    drwxr-xr-x 8 web1_alpharadio web1 4096 2006-03-27 21:12 .
    drwxr-xr-x 6 root root 4096 2006-03-27 00:00 ..
    drwxrwxr-x 3 web1_alpharadio web1 4096 2006-03-27 22:51 cgi-bin
    -rw------- 1 web1_alpharadio web1 24 2006-03-27 21:12 .forward
    drwxr-xr-x 2 web1_alpharadio web1 4096 2006-03-27 00:00 log
    lrwxrwxrwx 1 root root 42 2006-03-27 21:12 Maildir -> /var/www/web 1/user/web1_alpharadio/Maildir
    drwxrwxrwx 2 web1_alpharadio web1 4096 2006-03-28 09:20 phptmp
    -rw-r--r-- 1 root root 486 2006-03-27 21:12 .procmailrc
    drwxr-xr-x 2 web1_alpharadio web1 4096 2006-03-27 00:00 ssl
    drwxr-xr-x 3 web1_alpharadio web1 4096 2006-03-27 00:00 user
    lrwxrwxrwx 1 root root 50 2006-03-27 21:12 .vacation.cache -> /var /www/web1/user/web1_alpharadio/.vacation.cache
    drwxrwxr-x 7 web1_alpharadio web1 4096 2006-03-27 22:19 web


    Thanks.
     
  12. linuxuser1

    linuxuser1 New Member

    Hi Falko,

    I have done the chown command as you said here is how the permission now looks:

    debian:~#ls -la /var/www/web1/cgi-bin/messenger/messenger.cgi
    -rwxr-xr-x 1 web1_alpharadio web1 91355 2006-03-27 21:13 /var/www/web1/cgi-bin/




    debian:~# ls -la /var/www/web1 total 40
    drwxr-xr-x 8 web1_alpharadio web1 4096 2006-03-27 21:12 .
    drwxr-xr-x 6 root root 4096 2006-03-27 00:00 ..
    drwxrwxr-x 3 web1_alpharadio web1 4096 2006-03-27 22:51 cgi-bin
    -rw------- 1 web1_alpharadio web1 24 2006-03-27 21:12 .forward
    drwxr-xr-x 2 web1_alpharadio web1 4096 2006-03-27 00:00 log
    lrwxrwxrwx 1 root root 42 2006-03-27 21:12 Maildir -> /var/www/web1/user/web1_alpharadio/Maildir
    drwxrwxrwx 2 web1_alpharadio web1 4096 2006-03-28 09:20 phptmp
    -rw-r--r-- 1 root root 486 2006-03-27 21:12 .procmailrc
    drwxr-xr-x 2 web1_alpharadio web1 4096 2006-03-27 00:00 ssl
    drwxr-xr-x 3 web1_alpharadio web1 4096 2006-03-27 00:00 user
    lrwxrwxrwx 1 root root 50 2006-03-27 21:12 .vacation.cache -> /var/www/web1/user/web1_alpharadio/.vacation.cache
    drwxrwxr-x 7 web1_alpharadio web1 4096 2006-03-27 22:19 web


    debian:~# ls -la /var/www/web1/cgi-bin/hello_world.pl
    -rwxr-xr-x 1 web1_alpharadio web1 379 2004-06-04 18:11 /var/www/web1/cgi-bin/hello_world.pl


    Thanks.
     
  13. falko

    falko Super Moderator Howtoforge Staff

    Looks good. Did you test it?
     
  14. linuxuser1

    linuxuser1 New Member

  15. falko

    falko Super Moderator Howtoforge Staff

    Do you see anything in the Apache error log when you try to access these Perl scripts?
     
  16. linuxuser1

    linuxuser1 New Member

    Hi Falko,

    The problem turned out to be with suexec. I install another debian server as per your perfect setup without suexec and this is now working quite well.

    But I can I resolve the suexec problem because I will like to use this as am thinking it will be more secure.

    Any thoughts.

    Thanks as always.
     
  17. till

    till Super Moderator Staff Member ISPConfig Developer

    Is your web root /home/www or /var/www ?
     
  18. linuxuser1

    linuxuser1 New Member

    Hi Till,

    Using suexec my web root is /var/www ?. But because I could not get this to work, like i said i now set up another new server and the web root = /home/www and things are now working. Ut i will really love to use suexec if it will work.

    Can i also ask please. How do i now set up my server to act as an smtp server because the script am running on the server needs the name/ip address of my smtp server. I put localhost in the script and it does not send any e-mail so am wondering what i need to do to enable smtp usage.
     
  19. falko

    falko Super Moderator Howtoforge Staff

    Please post the output of
    Code:
    updatedb
    locate suexec
    Have a look at the Postfix section in the Debian tutorial: http://www.howtoforge.com/perfect_setup_debian_sarge_p4
     
  20. linuxuser1

    linuxuser1 New Member

    Hi,

    The postfix section has alredy been implemented in my initial setup because i followed the perfect set up letter by letter and got the exact result expected as per the setup document.

    Thanks.
     

Share This Page