History / Status
Introduction
All of our servers will start with this install. This base server is based on Fedora Core 7.
Initial Install
Boot the install DVD or CD.
The graphical install loads and we're ready to go.
- Choose your language and keyboard.
- The first complaint it will have is about your hard drive. When it asks you about partitioning your drive select "Remove all partitions on selected drive and create default layout".
- Click the checkbox to review and modify the layout.
- Make changes if necessary.
- Rename the logical volumes if you like.
- At this point you can modify any other settings you like.
- Grub and networking should already be set.
- Choose your time zone.
- set the root password.
- We don't like their default installation selections. Uncheck the check boxes and select customize now. Place a check next to webserver.
- Under desktop env. uncheck everything.
- Under applications only leave checked text-based internet.
- Under servers uncheck printing support. Put check marks by 'DNS Name Server', 'FTP Server', and 'MySQL Database'.
- Under base system uncheck 'dialup networking', 'administrative tools', and 'x windows'.
- Click nesxt. Sit back and watch the install go.
First boot
Reboot the machine when the install finishes.
The OS will boot. Let the config screen time out. Then log in.
Now we need to disable selinux.
1. Edit /boot/grub/grub.conf and add selinux=0 to the kernel line. Here's an example grub file with the change.
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/xvda3
# initrd /initrd-version.img
#boot=/dev/xvda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.15-1.2054_FC5xenU)
root (hd0,0)
kernel /vmlinuz-2.6.15-1.2054_FC5xenU ro root=LABEL=/ selinux=0
initrd /initrd-2.6.15-1.2054_FC5xenU.img
2. Edit /etc/selinux/config and change SELINUX=enforcing to SELINUX=disabled
3. now reboot the server.
The Second Boot
Login and type:
> yum upgrade
Agree to what it wants to do then set back and wait. when done reboot.
Installing Additional Packages
- Now we'll load some php modules.
> yum install php-gd php-ncurses php-snmp php-mbstring
- Lets install postfix and get rid of sendmail.
> yum install postfix
> yum remove sendmail
- Some misc packages
> yum install createrepo ncftp
- I have some rpms that are not in the standard repos or they need to be recompiled. So we need setup a new repo. Here is the repo I created.
> cd /etc/yum.repos.d/
> wget http://www.campworld.net/repos/FC7/campworld.repo
- We need SSL support in perl. Setup is easier if you get this installed before webmin.
> yum -y install perl-Net-SSLeay
- Now lets install webmin.
> yum -y install webmin
- its time to get the webmin service going.
> service webmin start
- Now run setup and disable the firewall.
> setup
Webmin Configuration
- Connct to the webmin server. Use the ip assigned to your server. Currently SSL is not enabled. an example URL would be https://192.168.2.2:10000
- Now configure your server.
Installing phpMyAdmin
I perfer to phpMyAdmin to manage my MySQL databases. There is no rpm for this package. This package is easy to install.
- If you haven't already done so, start MySQL.
- Its time to set the root password.
> /usr/bin/mysqladmin -u root password 'thepassword'
> /usr/bin/mysqladmin -p -u root -h localhost.localdomain password 'thepassword'
- Download the latest version of phpMyAdmin from www.phpmyadmin.net
- unpack the package
> tar -xzvf phpMyAdmin.tar.gz
- Move it to the appropriate place.
> mv phpMyAdmin /usr/share/
- Create the apache config file for phpmyadmin and restart apache.
> echo "alias /webdb /usr/share/phpMyAdmin" > /etc/httpd/conf.d/phpMyAdmin.conf
> service httpd restart
- Configure phpMyAdmin
> cd /usr/share/phpMyAdmin
> cp libraries/config.default.php config.inc.php
> nano -w config.inc.php
- Locate each of the following lines and be sure each has the following settings.
$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (con$
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = ''; // MySQL password (only nee$
- Save the file.
- now test it out.
Getting root's and other's mail
You need to get some local system user's mail. We'll use postfix's virtual file to get the emails to the right place.
1. Add the following to /etc/postfix/virtual
root admin@yourdomain.com
postmaster admin@yourdomain.com
abuse admin@yourdomain.com
2. Now add the configuration option to main.cf
> postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"
3. Just a couple commands to wrap everything up.
> postmap /etc/postfix/virtual
> /etc/init.d/postfix restart
Conclusion
That's it for the basic server setup. This is an example of a standard linux server setup. See the other pages for info on configuring servers for virtual webhosting or virtual email hosting.
Comments