Installing a new webserver
apt-get install mysql-server openssh-server proftpd apache2 libapache2-mod-perl2 libapache2-mod-php5 php5 php5-cli php5-ffmpeg php5-gd php5-imagick php5-mcrypt php5-mhash php5-mysql php5-xmlrpc php5-xsl php5-curl snmpd iotop mtop apachetop iptstate atsar postfix popa3d shorewall vim awstats bmon nscd sshfs mc zip unzip bzip2 arj spamassassin pyzor razor ncftp rsync phpmyadmin quota ntpdate ntp vacation pdnsd pdnsd - use resolvconf configuration Set up networking in /etc/network/interfaces <pre> # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 #auto eth0 iface eth0 inet static address 192.168.0.112 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 # gateway 192.168.0.1 dns-nameservers 213.75.63.36 213.75.63.70 192.168.0.1 # dns-nameservers 192.168.0.1 192.168.0.2 # dns-search tripnet.int internal.tripnet.int ops.tripnet.int auto eth1 iface eth1 inet static address 188.204.140.195 netmask 255.255.255.224 network 188.204.140.192 broadcast 188.204.140.223 gateway 188.204.140.193 dns-nameservers 213.75.63.36 213.75.63.70 192.168.0.1
SNMP
/etc/default/snmpd get rid of 127.0.0.1
/etc/snmp/snmpd.conf change community names
Proftpd
/etc/proftpd/proftpd.conf add
DefaultRoot ~/../../
For AWStats
LogFormat awstats "%t %h %u %m %f %s %b" ExtendedLog /var/log/xferlog read,write awstats TransferLog none RequireValidShell off
Hosting scripts and directories
mkdir /home/adm_usr/webserveradmin/ -p mkdir /opt/triphost/ -p mkdir /opt/weblog/etc -p mkdir /opt/weblog/src -p
copy the stuff from another webserver into these dirs and find and replace the servername in these directories.
mkdir /home/sites/servername.tripany.com/site/sitestats/ -p mkdir /home/sites/USGP.tripany.com/logs/ mkdir /home/sites/USGP.tripany.com/sites/ftpstats chown razor /home/sites/servername.tripany.com/site -R
Apache2
log rotation
/etc/logrotate.d/apache2
/var/log/statistics { daily missingok rotate 8 compress } /var/log/apache2/*.log { prerotate # Run the central statistics before rotating the logs /opt/triphost/statisticstripwraithweb.sh # Should run this in the xferlog rotate but can't find it /opt/triphost/statisticstripwraithftp.sh # Then we split the logs for the virtual hosts /opt/triphost/apachelogsplit.sh # Run the individual site stats /opt/triphost/sitestatistics.sh echo "All done for the day" >> /var/log/statistics date >> /var/log/statistics endscript daily missingok rotate 7 compress delaycompress notifempty create 640 root adm sharedscripts postrotate if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript }
touch /var/log/statistics mkdir /var/log/apache2/virts mkdir /var/log/apache2/awstats
apache2 conf
/etc/apache2/apache2.conf change LogFormat and add %v to the beginning of the the combined format
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
/etc/apache2/sites-available/default
change
DocumentRoot /home/sites/servername.tripany.com/site
and add
Redirect /stats http://servername.tripany.com/sitestats/tripwraith.tripany.com/index.php Redirect /livestats http://servername.tripany.com/cgi-bin/awstats.pl?config=tripwraith # AliasMatch ^/mailstats(.*) /home/sites/servername.tripany.com/mailstats/awstats.servername.mail.html AliasMatch ^/ftpstats(.*) /home/sites/servername.tripany.com/ftpstats/awstats.servername.ftp.html <Directory /home/sites/servername.tripany.com/> Options Indexes FollowSymLinks MultiViews AllowOverride Options Authconfig Order allow,deny allow from all # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place </Directory>
to the bottom
listvirts
/etc/apache2/listvirts (NB has to start at group 100!)
# nb make sure first site after the original starts at 100! tripwraith.tripany.com - site0 some.site.com - site100
create /etc/apache2/sites-available/82.95.91.75 with DocumentRoot /home/sites by hand!
link it in in sites-enabled
check both sites to see if they go to different indexes.
a2enmod rewrite (or a2enmod for options list)
vi /etc/apache2/conf.d/awstats
Alias /awstatsicon/ /usr/share/awstats/icon/
touch /var/log/statistics copy /etc/awstats/model.conf copy /etc/awstats/awstats.servername* (ftp / mail / web) <pre> run the statisticsrun in /etc/logrotate.d/apache2 by hand to see how it all goes! <pre> cp /opt/weblog/src/weblog_files/graphs/ /home/sites/USGP.tripany.com/site/webloggraphs/ -R
Post configuration
shorewall (see knowledgebase page)
postfix edits (knowledgebase)
postmap virtual
postmap transport
vi /etc/procmailrc
#Procmailrc modified by RazoR # MAILDIR=/var/spool/mail LOGFILE=/var/log/mail/procmail LOGABSTRACT=all VERBOSE=off LOG=$date
touch /var/log/mail/procmail
logrotate procmail in the /etc/logrotate.d/rsyslog file
ln -s /home/spool/mail/ /var/mail
edit /etc/syslogd.conf to log stuff to /var/log/mail
mail.info -/var/log/mail/mail.info mail.warn -/var/log/mail/mail.warn mail.err /var/log/mail/mail.err
FOR OLD SYSLOG BEHAVIOUR
!popa3d *.* /var/log/mail/popa3d.log
FOR RSYSLOG
in /etc/rsyslog.d/popa3d.conf if $programname == 'popa3d' and $syslogseverity <= '6' then /var/log/mail/popa3d.log if $programname == 'popa3d' and $syslogseverity <= '6' then ~
spamassassin (knowledgebase page)
webmail (knowledgebase)
change the mysql password
set up disk quotas
backup scripts