The Perfect Server - Ubuntu Lucid Lynx (Ubuntu 10.04) [ISPConfig 2] - Page 7

19 Webalizer

To install webalizer, just run

aptitude install webalizer geoip-database


20 Synchronize the System Clock

It is a good idea to synchronize the system clock with an NTP (network time protocol) server over the internet. Simply run

aptitude install ntp ntpdate

and your system time will always be in sync.


21 Install Some Perl Modules Needed By SpamAssassin (Comes With ISPConfig)


aptitude install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl libnetaddr-ip-perl libarchive-tar-perl


22 ISPConfig

The configuration of the server is now finished, and if you wish you can now install ISPConfig on it. Please check out the ISPConfig installation manual:

Before you install ISPConfig, there's one important thing you must do. Open /usr/include/stdio.h and replace getline with parseline in line 651:

vi /usr/include/stdio.h

   This function is not part of POSIX and therefore no official
   cancellation point.  But due to similarity with an POSIX interface
   or due to the implementation it is a cancellation point and
   therefore not marked with __THROW.  */
extern _IO_ssize_t parseline (char **__restrict __lineptr,
                            size_t *__restrict __n,
                            FILE *__restrict __stream) __wur;

If you don't do this, the installation will fail because of the following error:

htpasswd.c:101: error: conflicting types for 'getline'
/usr/include/stdio.h:651: note: previous declaration of 'getline' was here
make[2]: *** [htpasswd.o] Error 1
make[2]: Leaving directory `/home/ISPConfig-2.2.stable/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]: *** [build-support] Error 1
make[1]: Leaving directory `/home/ISPConfig-2.2.stable/install_ispconfig/compile_aps/apache_1.3.41'
make: *** [build] Error 2
ERROR: Could not make Apache

You can undo the change to /usr/include/stdio.h after the successful ISPConfig installation (but don't forget to change it back whenever you want to update ISPConfig!).


22.1 A Note On SuExec

If you want to run CGI scripts under suExec, you should specify /var/www as the home directory for websites created by ISPConfig as Ubuntu's suExec is compiled with /var/www as Doc_Root. Run

/usr/lib/apache2/suexec -V

and the output should look like this:

root@server1:~# /usr/lib/apache2/suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"

So if you want to use suExec with ISPconfig, don't change the default web root (which is /var/www) if you use expert mode during the ISPConfig installation (in standard mode you can't change the web root anyway so you'll be able to use suExec in any case).


23 Links

Share this page:

11 Comment(s)

Add comment


From: scristi at: 2010-04-30 13:31:08

do you have any idea how i could install php 5.2 instead of 5.3 (because some of the software i run doesn't work on php 5.3), i could probably compile it from source, but i'm afraid of the incompatibilities, so i would like to use the previous version of php, that karmic koala used, that is in the repositories

From: Taarik at: 2010-05-15 11:16:17

Hi, You can try the script posted at  The script works fine (I think)...the only problem is that PHP is not automatically added-back to Apache. When I do  ls /etc/apache2/mods-enabled/, PHP doesn't appear.

From: Anonymous at: 2010-05-21 17:23:49

The screenshots are fine, but can't you make them optional (you know, a button or something?) and put in a Table of Contents? It is hard to find the actual information I need without viewing all the fluff.

From: Anonymous at: 2011-07-18 20:23:53

Can we have a button that only shows screenshots?  It's hard to get to the good stuff without all that annoying text in the way.

From: Anonymous at: 2010-09-08 10:02:02

Thank you for taking the time to write this out!

From: Anonymous at: 2012-04-19 00:44:12

Thank you for the screenshots. And for the person whining about getting through the fluff, you should be thanking the person who took time out to post screenshots. If you disagree I would like to see you do a better job before being critical of someone else efforts.

From: Anonymous at: 2010-05-12 16:01:18

Just want to give you the right address to Putty:

(The www was missing).


From: at: 2010-07-15 12:24:21

sudo su - (su dash) assumes roots' homedir rather than the users'.

From: Heidi Munksgaard at: 2010-12-06 21:03:50

Hi Falko!

Have been struggeling with setting up my Ubuntu server untill I came across this fantastic tutorial.

Just wanted to point out a little typo in the line:

"openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt"

in the section for making TLS certificates. 

the " -in smtpd.csr -signkey smtpd.key -out smtpd.crt" part will give an error of:

"smtpd.csr; No such file or directory."

You need to change the name from "smtpd.csr" to "smtpd.crt" in the "-in smtpd.csr" part in order to avoid this error.


Heidi Munksgaard

From: DaGeek247 at: 2010-12-31 20:02:31

i love the tutorial, but i also now understand why programs like xampp  are out there. making your own server is tough.

I am wondering, is there like a shell script (for ubuntu users) that would do all this on its own? The user would have to watch the screen and whatnot, but it would help me alot. i frequently run into types and other problems.

From: Pete Gross at: 2010-05-26 00:25:02

After I did your howto  I tried to connect to https://localhost and got an error of " Error code: ssl_error_rx_record_too_long"


I figured the problem out, I just had to run: sudo a2ensite default-ssl 


I'd suggest adding this into your howto, so others don't have the same problem.


Thanks the howto was great!