So you want to have a real server, I mean REAL server right? ...
Okay, we gonna make one out of open source software FC13 - ISPConfig 3 ...
Well, first you will need is some hardware.Depending on your budget and your expected traffic, go and buy some. You can start small. ..
You probably don't need a good graphic card, but what you need is good cooling in a stable system. If you need raid, I suggest to use hardware raid, don't spare on memory, go with more then 4GB to the x64 platform. In my setup currently I use 2 SSD's and about 10 disks, on a quad core with 8GB ram.
You will have to place the server somewhere. Here again, for a real server I suggest you go to a server farm. The line there should be good enough, power, temperature, clean air, .. placing a server to a farm extends your and your server's life. 100Mbps Ethernet at least, on a good network to the world is a must. You will also need to have your own domain name, and access to it.
After the hardware is put together, ...
The first things you have to set up are bios and raid bios.
In the bios, set quick boot. Disable all controllers that you don't need, after you have verified that all disks are okay. Set up your RAID and disks. Keep in mind that you will need a certain level of speed and a certain level of redundancy. My personal opinion is that mirrored raid makes not too much sense. What if there is some sort of problem that's not on hardware level, ... You will need your backups complete, and 'delayed', so in case of a disaster you can go and recover for example the last day's state. ...
Boot your FC13 live CD or DVD or USB stick. On your desktop you will have the icon to start the final installation. I suggest to have some second computer, a notebook or something that you will use as client machine.
We will rely on the ISPConfig3 Documentation, which starts somewhere here.
Name your computer in your domain, use some good and easy to type and memorize but hard to guess user and root passwords.
I personally don't use LVM. When it comes to partitions, with 8GB or even more ram, SWAP partitions are not really needed.
To do the partitioning manually:
It is safe to delete all partitions, first inside the LVM, then the LVM itself, in your custom layout a boot partition is needed, 500MB ext3 file-system, mounted at /boot, a root file-system, ext4 mounted on / and your drives. I mounted my disks on a 'new system folder' called /srv so I have disks like /srv/www, /srv/vmail, /srv/ftp, /srv/mysql, .. for example, and this will 'come handy' later. You can align your disks to your services. A stripe for large FTP data, a single disk for logs, an SSD for mysql and another one for your seeds, and so on ...
As for log files, if you have a separate disk for it, you can remove /var/log and create a symbolic link to your log disk. Hint:
ln -s your_symbolic_link_target_path
If you did a live CD install, and the package manager or the network setup didn't show up, as in the ISPConfig guide, no problem. ..
After your installation is done, you log in as a user and have your desktop.
Put the terminal and the system monitor to the tray, we will need it frequently.
Start a terminal, In the menu Edit -> Profiles -> Edit [Default] -> Colors -> Built in Schemes ... select Green on black .. to get the matrix look. This is much better for your eye and your nerves then Black on White.
* Get the Network running
The network manager is damn good setting up the network, but as the guide suggests, we will likely have a very static network. You might do the setup in a different environment then your production. My suggestion is that you set up a static IP, even on your home LAN for this pc. In the terminal, grain root access ...
.. and then enter your root password. In future, "as root ..."
Linux commands are case sensitive, therefore, best is to copy-paste the following commands. :
service NetworkManager stop
chkconfig NetworkManager off
service network status
Most important: IPADDR, GATEWAY, NETMASK, DNS1 ONBOOT=on and "It is important that you add a line for server1.example.com and remove server1.example.com and server1 from the 127.0.0.1 line."
As the guide suggests, and I agree, SELinux is not needed, at least for now.
Reboot, and check if you have the network right.
I hope you have a firewall for your LAN, on a trusted network you can disable your firewall temporary too if you wish. For some reason, maybe a bug in FC13, the firewall Gui needs to be started from the console. As root
ISPConfig has its own Bastille-firewall, feel free to decide which one you want to use later.
* Update the system
* Install tools and software
The two most basic tools, 'yumex' the yum Gui, 'mc' the file manager, 'gparted' partition editor, and the webmin sysadmin interface.
yum -y install yumex mc gparted
Webmin is a great sysadmin tool. As root ...
paste this in:
name=Webmin Distribution Neutral
.. and save it.
rpm --import http://www.webmin.com/jcameron-key.asc
yum -y install webmin
Your webmin-panel is already accessible in the browser https://localhost:10000
* Remote desktop over ssh
Fedora has VNC built in. As root ...
having a small and a large virtual desktop looks config-wise like this
VNCSERVERARGS="-geometry 800x600 -nolisten tcp -localhost"
VNCSERVERARGS="-geometry 1600x1000 -nolisten tcp -localhost"
Each VNC server instance listens on port 5900 plus the display number on which the server runs. 5901, 5902, ... replace username with your username. Enter a good password for VNC. As root ..
service vncserver restart
chkconfig vncserver on
If you have Windows with VNC-Viewer and putty installed, start a putty session, and set the SSH Tunnel so that ports 5901, 5902, .. are in the tunnel.
If you need more help I suggest to check these VNC
* Install even more
As root ...
yum -y groupinstall 'Development Tools'
yum -y groupinstall 'Development Libraries'
yum install ntp httpd mysql-server php php-mysql php-mbstring php-mcrypt phpMyAdmin php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel quota dovecot dovecot-mysql postfix getmail pure-ftpd vsftpd filezilla squirrelmail bind bind-utils webalizer perl-DateTime-Format-HTTP perl-DateTime-Format-Builder fail2ban rkhunter amavisd-new spamassassin clamav clamav-data clamav-server clamav-update unzip bzip2 perl-DBD-mysql mod_suphp mod_geoip
.. I think, that's all needed. We install everything you need in one run, so you can go and drink a tea meanwhile.
* Configure services
8 Journaled Quota
and in another terminal eventually you can start gparted to see UUID's of partitions.
defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 1
where you want to enable quotas. You might need to replace vfsv0 with xfs if you have XFS partitions. "Then run" ...
Set some path's and addresses
touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
You might want to set datadir=/srv/mysql
10-11 Configure email
To use Postfix and dovecot:
rm -fr /usr/lib/dovecot/
ln -s /usr/lib64/dovecot/ /usr/lib/dovecot
chkconfig --levels 235 dovecot on
chkconfig --levels 235 mysqld on
chkconfig --levels 235 sendmail off
chkconfig --levels 235 postfix on
service dovecot start
service mysqld start
service sendmail stop
service postfix start
Again, Give a good root password for MySQL. Everywhere else, just press enter.
We don't need phpMyAdmin right now, but the httpd the Apache daemon can get started.
chkconfig --levels 235 httpd on
service httpd start
Comment out the FRESHCLAM_DELAY
line at the end.
Comment out the Example
* 15 Installing mod_php, mod_fcgi/PHP5, And suPHP
chkconfig --levels 235 amavisd on
chkconfig --levels 235 clamd.amavisd on
service amavisd start
service clamd.amavisd start
and add cgi.fix_pathinfo = 1
at the end of the file. If you wish change error_reporting = E_ALL & ~E_NOTICE
If you look at the guide, note that su_php is already installed with yum.
... we continue in the next post.