Changes between Initial Version and Version 1 of configure_new_server


Ignore:
Timestamp:
Aug 23, 2007, 1:22:38 AM (17 years ago)
Author:
Jamie McClelland
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • configure_new_server

    v1 v1  
     1=Purchase an ssl certificate=
     2
     3Generate a private key and certificate signing request.
     4
     5{{{
     6openssl genrsa -out server.mayfirst.org.key 4096
     7openssl req -new -key server.mayfirst.org.key -out server.mayfirst.org.csr
     8}}}
     9
     10Change the domain@mayfirst.org email alias to point to your address.
     11
     12Go to Dotster (which is a thawte reseller) for server.mayfirst.org (from Dotster home page click Other Products -> ssl, get the 123 certificate)
     13
     14This will take a day or so to be generated.
     15
     16Once generated, login to Dotster using the mayfirst username. Click on My Services. You should see the new ssl Cert listed.
     17
     18Click Manage services.
     19
     20Copy the CRT into a file called:
     21
     22server.mayfirst.org.pem
     23
     24(replace server with the name of the server being setup)
     25
     26then add dh paramaters with:
     27
     28{{{
     29openssl gendh >> server.mayfirst.org.pem
     30}}}
     31
     32This file will be used by courier
     33
     34Now, put each one in a separate file called:
     35
     36server.mayfirst.org.key
     37
     38server.mayfirst.org.crt
     39
     40These will be used by apache
     41
     42=Use volatile for SA and clamav=
     43
     44
     45 * Edit /etc/apt/sources.list. Add the following:
     46{{{
     47# clamav (volatile) and spam assassin (volatile-sloppy)
     48deb http://debian.domainmail.org/debian-volatile etch/volatile-sloppy main
     49deb http://debian.domainmail.org/debian-volatile etch/volatile main
     50}}}
     51 * Edit (or add) /etc/apt/preferences. Add the following
     52{{{
     53Package: spamassassin
     54Pin: release a=etch-sloppy
     55Pin-Priority: 991
     56
     57Package: spamc
     58Pin: release a=etch-sloppy
     59Pin-Priority: 991
     60}}}
     61
     62
     63=Install debian packages=
     64
     65{{{
     66$ sudo apt-get install apache2 libapache2-mod-suphp cvs amavisd-new clamav clamav-daemon spamassassin maildrop courier-imap-ssl courier-pop-ssl scponly logcheck logcheck-database cron-apt awstats razor libnet-dns-perl dcc-client phpmyadmin php5-mysql php5-imap php5-gd mysql-server-5.0 mysql-client-5.0 squirrelmail php-mail php-db fail2ban aspell aspell-en aspell-es php5-mcrypt php-auth iproute  bzip2
     67}}}
     68
     69Now, install php-pear and php-log. You must install these before installing imp4 or else imp4 will try to pull in un-needed php4 packages.
     70
     71{{{
     72sudo apt-get install php-pear php-log
     73}}}
     74
     75And now, imp4:
     76
     77{{{
     78sudo apt-get install imp4 turba2 ingo1
     79}}}
     80
     81Add the pear file package so that Turba (address book) can import address books. First try apt - but don't do it if it still tries to pull in php4 (which it is trying as of April 11, 2007)
     82
     83{{{
     84sudo apt-get install php-file
     85}}}
     86
     87If it is trying to pull in php4, then install it via pear:
     88
     89{{{
     90sudo pear install -o File
     91}}}
     92
     93=Configure HE routes=
     94
     95In order to route traffic directly from computer to computer (across different subnetworks) we need to add the different routes
     96
     97Create a file called add-he-routes with the following contents:
     98
     99{{{
     100#!/bin/bash
     101# add routes for alternate blocks in rack
     102#ip route add 209.51.172.0/28 dev eth0
     103ip route add 209.51.169.80/28 dev eth0
     104#ip route add 209.51.163.192/28 dev eth0
     105ip route add 209.51.180.16/28 dev eth0
     106}}}
     107
     108Comment out the line representing the network this server is on
     109
     110Save the file in /etc/network/if-up.d
     111chmod it to 755
     112
     113And add a corresponding file:
     114
     115{{{
     116
     117#!/bin/bash
     118# remove routes for alternate blocks in rack
     119ip route del 209.51.172.0/28
     120ip route del 209.51.169.80/28
     121ip route del 209.51.163.192/28
     122#ip route del 209.51.180.16/28
     123}}}
     124
     125Save the file in /etc/network/if-down.d
     126chmod it to 755
     127
     128=Configure suPHP=
     129
     130
     131 * Use dpkg-statoverride to change the ownership of our common php web programs (horde, phpmyadmin, and squirrelmail). This script will do it all for you:
     132{{{
     133#!/bin/bash -e
     134
     135#
     136# phpmyadmin
     137#
     138# use /var/lib/phpmyadmin as home dir because it already exists
     139
     140if [ -z $(getent passwd|grep phpmyadmin) ]; then
     141adduser --system --disabled-login --quiet --home /var/lib/phpmyadmin --shell /bin/false -gid 65534 phpmyadmin
     142fi
     143#userdel phpmyadmin
     144phpmyadmin_files=`dpkg -L phpmyadmin | grep '\.php'`
     145
     146for file in $phpmyadmin_files; do
     147dpkg-statoverride --add --update --force --quiet phpmyadmin nogroup 444 $file
     148# #dpkg-statoverride --remove $file
     149done
     150
     151#
     152# horde: share one user between horde and imp and any other horde apps
     153#
     154# use /var/log/horde as home directory because it already exists
     155if [ -z $(getent passwd|grep horde) ]; then
     156adduser --system --disabled-login --quiet --home /var/log/horde --shell /bin/false -gid 65534 horde
     157fi
     158#userdel horde
     159
     160# chown the directory recursively to get existing logs
     161# it is written to by the web process
     162chown -R horde /var/log/horde
     163chown horde /etc/horde/horde3/conf.php
     164#chmod 600 /etc/horde/horde3/conf.php
     165
     166# add it to the mix
     167dpkg-statoverride --add --update --force --quiet  horde nogroup 644 /var/log/horde
     168#dpkg-statoverride --remove /var/log/horde
     169
     170# ack - this is not mainainable!
     171perl -pi -e 's/www-data www-data/horde nogroup/g' /etc/logrotate.d/horde3
     172
     173horde_files=`dpkg -L horde3 | grep '\.php'`
     174imp_files=`dpkg -L imp4 | grep '\.php'`
     175turba_files=`dpkg -L turba2 | grep '\.php'`
     176ingo_files=`dpkg -L ingo1 | grep '\.php'`
     177all_horde_files="$horde_files $imp_files $turba_files $ingo_files"
     178
     179for file in $all_horde_files; do
     180dpkg-statoverride --add --update --force --quiet horde nogroup 444 $file
     181#dpkg-statoverride --remove $file
     182done
     183
     184if [ -z $(getent passwd|grep squirrelmail) ]; then
     185adduser --system --disabled-login --quiet --home /var/lib/squirrelmail/data --shell /bin/false -gid 65534 squirrelmail
     186fi
     187#userdel squirrelmail
     188sm_files=`dpkg -L squirrelmail | grep '\.php'`
     189
     190chown -R squirrelmail:nogroup /var/lib/squirrelmail/data
     191dpkg-statoverride --add --update --force --quiet squirrelmail nogroup 700 /var/lib/squirrelmail/data
     192
     193#dpkg-statoverride --remove /var/lib/squirrelmail/data
     194
     195for file in $sm_files; do
     196dpkg-statoverride --update --add --force squirrelmail nogroup 444 $file
     197#dpkg-statoverride --remove $file
     198done
     199}}}
     200 * Edit /etc/suphp/suphp.conf
     201{{{
     202[global]
     203;Path to logfile
     204logfile=/var/log/suphp/suphp.log
     205
     206;Loglevel
     207loglevel=info
     208
     209;User Apache is running as
     210webserver_user=www-data
     211
     212;Path all scripts have to be in
     213docroot=/
     214
     215;Path to chroot() to before executing script
     216;chroot=/mychroot
     217
     218; Security options
     219;allow_file_group_writeable=false
     220allow_file_group_writeable=true
     221;allow_file_others_writeable=false
     222allow_file_others_writeable=true
     223;allow_directory_group_writeable=false
     224allow_directory_group_writeable=true
     225;allow_directory_others_writeable=false
     226allow_directory_others_writeable=true
     227
     228;Check wheter script is within DOCUMENT_ROOT
     229;check_vhost_docroot=true
     230check_vhost_docroot=false
     231
     232;Send minor error messages to browser
     233errors_to_browser=false
     234
     235;PATH environment variable
     236env_path=/bin:/usr/bin
     237
     238;Umask to set, specify in octal notation
     239;umask=0077
     240umask=0022
     241
     242; Minimum UID
     243min_uid=100
     244
     245; Minimum GID
     246min_gid=100
     247
     248
     249[handlers]
     250;Handler for php-scripts
     251x-httpd-php=php:/usr/bin/php-cgi
     252
     253;Handler for CGI-scripts
     254x-suphp-cgi=execute:!self
     255}}}
     256
     257
     258=Configure fail2ban=
     259
     260Create /etc/fail2ban/jail.local. Modify the following lines, by adding them to the jail.local file that you just created:
     261{{{
     262[DEFAULT]
     263bantime  = 200
     264
     265action = iptables[name=%(__name__)s, port=%(port)s]
     266mail-whois[name=%(__name__)s, dest=%(destemail)s]
     267
     268}}}
     269
     270=Install Red=
     271
     272
     273 * Edit /etc/apt/sources.list - make sure non-free is there, e.g.:
     274deb http://http.us.debian.org/debian stable main contrib non-free. If you are adding anything to this line, run sudo apt-get update afterwards.
     275{{{
     276$ sudo apt-get install ucspi-tcp-src
     277$ sudo build-ucspi-tcp
     278}}}
     279
     280 * Create a user in the red database with (change sylvia to name of server):
     281
     282{{{
     283GRANT SELECT on seso.* to 'red-sylvia'@'sylvia.mayfirst.org' identified by 'secret';
     284GRANT UPDATE on seso.red_item to 'red-sylvia'@'sylvia.mayfirst.org';
     285GRANT INSERT on seso.red_error_log to 'red-sylvia'@'sylvia.mayfirst.org';
     286}}}
     287
     288 * Download the source from cvs
     289
     290copy and paste the following commands
     291
     292{{{
     293$ cd /usr/local/share
     294$ sudo cvs -d:ext:mayfirst@mayfirst.org:/srv/cvsroot co red
     295$ sudo ln -s /usr/local/share/red/server/sbin/red_server_cli /usr/local/sbin/
     296$ sudo ln -s /usr/local/share/red/server/sbin/pinky /usr/local/sbin/
     297$ sudo chmod 755 /usr/local/share/red/server/sbin/red_server_cli
     298$ sudo chmod 755 /usr/local/share/red/server/sbin/pinky
     299$ sudo mkdir /usr/local/etc
     300$ sudo mkdir /usr/local/etc/red
     301$ cd /usr/local/share/red/server/etc/red
     302$ sudo cp /usr/local/share/red/server/etc/red/* /usr/local/etc/red/
     303$ cd /usr/local/etc/red
     304$ for file in `ls *.sample`; do sudo cp $file /usr/local/etc/red/${file%.sample}; done;
     305}}}
     306
     307this last one, in case you are interested, copies all the files that end in .sample in this directory to files that strip the .sample part out.
     308
     309 * Edit the file called pinky. Change ip address to machine's real ip address. also edit red_server.conf, to add the database user and password.
     310 * Launch pinky with:
     311{{{
     312$ sudo /usr/local/sbin/pinky &
     313}}}
     314
     315
     316=Postfix setup=
     317
     318
     319
     320 * Create aliases in /etc/aliases
     321
     322{{{
     323www: www-data
     324www-data: apache@mayfirst.org
     325root: root@mayfirst.org
     326}}}
     327
     328Don't forget to run newaliases!
     329
     330 * Create empty access, virtual_alias_maps and virtual_alias_domains files in
     331/etc/postfix
     332
     333{{{
     334sudo touch virtual_alias_maps virtual_alias_domains access
     335}}}
     336
     337Create an empty access database (later we can add entries in access to restrict or allow senders):
     338
     339{{{
     340sudo postmap access
     341}}}
     342
     343 * Add the following to the bottom of the /etc/postfix/main.cf file:
     344
     345{{{
     346# May First custom config
     347# file based virtual hosting configuration
     348
     349# List of virtual domain names
     350virtual_alias_domains = hash:/etc/postfix/virtual_alias_domains
     351
     352# list of email address -> unix account mappings
     353virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
     354
     355# use maildir
     356home_mailbox = Maildir/
     357
     358# Added for maildrop
     359mailbox_command = /usr/bin/maildrop
     360maildrop_destination_recipient_limit = 1
     361
     362# Added by jamie 6/10/04 to try to stem the tide of spam
     363smtpd_sender_restrictions =
     364hash:/etc/postfix/access,
     365reject_non_fqdn_sender,
     366reject_unknown_sender_domain,
     367permit
     368
     369# Added for amavisd-new
     370content_filter=smtp-amavis:[127.0.0.1]:10024
     371}}}
     372
     373 * Copy the /etc/postfix/master.cf file from chavez to get the amavis settings.
     374
     375
     376 * Postfix as secure mail relay setup
     377
     378 * Install the sasl packages
     379{{{
     380sudo apt-get install sasl2-bin libsasl2-modules ca-certificates
     381}}}
     382
     383 * Configure sasl
     384{{{
     385sudo vim /etc/default/saslauthd
     386}}}
     387
     388Uncomment START=yes
     389Change MECHANISMS to read:
     390MECHANISMS="shadow"
     391
     392 * Add postfix to the sasl group
     393{{{
     394sudo addgroup postfix sasl
     395}}}
     396
     397 * Make the /etc/postfix/ssl directory and copy the pem files there
     398{{{
     399sudo mkdir /etc/postfix/ssl
     400sudo cp /whereever/server.pem /etc/postfix/ssl/
     401}}}
     402
     403 * Edit main.cf
     404{{{
     405# to enable authentication for sending email
     406smtpd_sasl_auth_enable = yes
     407smtpd_sasl_security_options = noanonymous
     408smtpd_sasl_local_domain = $myhostname
     409broken_sasl_auth_clients = yes
     410smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
     411
     412# TLS Stuff here:
     413smtpd_use_tls = yes
     414# force people who want to authenticate to use tls - you can't authenticate
     415# otherwise. This is important because passwords are sent in the clear
     416smtpd_tls_auth_only = yes
     417smtpd_tls_key_file = /etc/postfix/ssl/your-server-key-here.pem
     418smtpd_tls_cert_file = /etc/postfix/ssl/your-server-key-here.pem
     419smtpd_tls_received_header = yes
     420smtpd_tls_session_cache_timeout = 3600s
     421tls_random_source = dev:/dev/urandom
     422}}}
     423
     424 * Edit master.cf - uncomment the smtps and submission lines. In both lines change the chroot variable from "-" to "n"
     425
     426 * Create /etc/postfix/sasl/smtpd.conf
     427
     428{{{
     429sudo mkdir /etc/postfix/sasl
     430sudo vim /etc/postfix/sasl/smtpd.conf
     431# add these lines:
     432pwcheck_method: saslauthd
     433mech_list: plain login
     434}}}
     435
     436
     437=Setup Postgrey=
     438
     439Postgrey defers all mail for 5 minutes the first time it receives a message with a never before seen sender and recipient. This results in a lot of spam not being delivered.
     440
     441 * Install Postgrey
     442{{{
     443sudo apt-get install postgrey
     444}}}
     445 * Edit /etc/default/postgrey adding the following line:
     446{{{
     447POSTGREY_TEXT="Greylisted, see http://mayfirst.org/greylist"
     448}}}
     449 * Restart postgrey
     450{{{
     451/etc/init.d/postgrey restart
     452}}}
     453 * Edit /etc/postfix/main.cf, add the following to the end of the smtpd_recipient_restrictions stanza:
     454{{{
     455check_policy_service inet:127.0.0.1:60000
     456}}}
     457
     458
     459check_policy_service inet:127.0.0.1:60000
     460
     461=Setup Courier=
     462
     463
     464 * Create a shared/index file that is empty (to avoid getting error messages in the log)
     465{{{
     466mkdir /etc/courier/shared
     467touch /etc/courier/index
     468}}}
     469 * Setup ssl - copy the server pem file (which you got from dotster) to the /etc/courier directories:
     470{{{
     471cp server.mayfirst.org.pem /etc/courier/imapd.pem
     472cp server.mayfirst.org.pem /etc/courier/pop3d.pem
     473}}}
     474
     475=Setup amavis=
     476
     477
     478
     479 * Edit /etc/amavis/conf.d/50-user
     480
     481Add the following lines
     482@bypass_virus_checks_maps = (
     483\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
     484$final_banned_destiny     = D_PASS;   # D_REJECT when front-end MTA
     485$final_spam_destiny       = D_PASS;
     486$final_bad_header_destiny = D_PASS;
     487
     488 * Add clamav to the amavis group with:
     489{{{
     490sudo addgroup clamav amavis
     491}}}
     492
     493 * Add AllowSupplementaryGroups to /etc/clamav/clamd.conf
     494 * Add a cron job to clean out viruses and spam collected by amavis in /etc/cron.d called clean-up-virus with the contents:
     495# Find and delete all emails older than 14 days
     4962 4 * * *       amavis  find /var/lib/amavis/virusmails -mtime +14  -exec rm '{}' \;
     497
     498
     499
     500=Configure Spamassassin=
     501
     502
     503 * Install helper packages
     504{{{
     505sudo apt-get install razor dcc-client
     506}}}
     507
     508 * Add a new rule for spamassassin (debian etch or above only!)
     509
     510<ul>
     511 * Create /usr/local/share/spamassassin/plugins
     512{{{
     513sudo mkdir /usr/local/share/spamassassin; sudo mkdir /usr/local/share/spamassassin/plugins
     514}}}
     515
     516 * Download the ImageInfo plugin to that directory
     517{{{
     518cd /usr/local/share/spamassassin/plugins
     519sudo wget http://www.rulesemporium.com/plugins/ImageInfo.pm
     520}}}
     521 * Add rule to /etc/spamassassin
     522{{{
     523cd /etc/spamassassin
     524sudo wget http://www.rulesemporium.com/plugins/imageinfo.cf
     525}}}
     526 * Edit /etc/spamassassin/init.pre. Add the following line:
     527{{{
     528loadplugin Mail::SpamAssassin::Plugin::ImageInfo /usr/local/share/spamassassin/plugins/ImageInfo.pm
     529}}}
     530</ul>
     531
     532 * Enable dcc - uncomment line in /etc/spamassassin/v310.pre the refers to dcc
     533
     534 * Turn on subject munging (uncomment line in /etc/spamassassin/local.cf)
     535 * Add temporary work around to get spamassassin to properly tag messages sent to us via tls by adding this line to /etc/spamassassin/local.cf:
     536{{{
     537header LOCAL_AUTH_RCVD    Received =~ /\(using TLS.*\) by chavez\.mayfirst\.org /
     538score LOCAL_AUTH_RCVD -20
     539}}}
     540(edit the host name)
     541See: http://wiki.apache.org/spamassassin/DynablockIssues
     542 * Turn off report safe (in /etc/spamassassin/local.cf set: report_safe 0
     543 * Edit /etc/default/spamassassin - enable spamassassin
     544 * Setup sa-update
     545{{{
     546sudo apt-get install gnupg libnet-dns-perl libnet-ssleay-perl libnet-ident-perl
     547# test with:
     548sudo sa-update -D
     549# make sure the above command exited cleanly
     550# Create a file in /etc/cron.daily called "mfpl-sa-update" with:
     551#!/bin/bash
     552sa-update && /etc/init.d/spamassassin restart
     553# always exit with 0 - sa-update will exit with 1 if no update is available
     554# and we don't want cron to report that to us
     555exit 0
     556}}}
     557
     558
     559
     560=Maildrop=
     561
     562Edit /etc/maildroprc and add the following lines:
     563
     564{{{
     565DEFAULT="$HOME/Maildir"
     566# spamassassin
     567xfilter "/usr/bin/spamc -u $LOGNAME"
     568}}}
     569
     570=Webmail setup=
     571
     572
     573
     574 * Symlink the squirrelmail apache conf file:
     575
     576{{{
     577$ ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf
     578}}}
     579
     580 * Edit the /etc/apache2/conf.d/horde.conf file. Add:
     581{{{
     582Redirect /webmail https://servername.mayfirst.org/horde3
     583}}}
     584 * Copy the various /etc/horde/*/conf.conf files from chavez
     585 * Edit /etc/horde/imp4/servers.php (see chavez for details)
     586 * Run sudo /etc/squirrelmail/conf.pl
     587
     588 * Change 1: organizational preferences (org name, provider link, provider name)
     589 * Change 2: server settings: A IMAP Settings (port: 993, secure imap: true,
     590server software: courier
     591 * Plugins: install: delete_move_next,squirrelspell,
     592filters,abook_take,listcommands,mail_fetch,gpg (you will need to download
     593this one from www.squirrelmail.org into the /usr/share/squirrelmail/plugins
     594
     595 * Gunzip/usr/share/doc/horde3/examples/scripts/sql/create.mysql.sql.gz into your home directory
     596 * Edit - change the password to a good password
     597 * Import into mysql
     598 * Directly import /usr/share/doc/turba2/examples/scripts/sql/turba_objects.mysql.sql with:
     599{{{
     600mysql -u root -p horde <  /usr/share/doc/turba2/examples/scripts/sql/turba_objects.mysql.sql
     601}}}
     602
     603
     604=Install Drupal=
     605
     606
     607 * Download from drupal.org into: /usr/local/share/
     608
     609 * Name the drupal directory after the version (i.e. drupal-4.7.3)
     610
     611 * Create a soft link to the version (i.e. sudo ln -s drupal-4.7.3 drupal-4.7)
     612
     613 * Tar up and copy all the files from wiwa /usr/local/share/drupal-modules-4.7
     614and place into the /usr/local/share/drupal-modules-4.7 on the target server.
     615
     616
     617
     618=Configure Apache=
     619
     620
     621
     622 * In /etc/apache2/site-available/default change NameVirtualHost * to: NameVirtualHost *:80
     623
     624 * Change:
     625<VirtualHost *> to: <VirtualHost *:80>
     626ServerAdmin apache@mayfirst.org
     627DocumentRoot /srv/apache/web (create this directory and index.html file)
     628
     629
     630=Configure logrotate=
     631
     632Create a file called apache2-red in the /etc/logrotate.d directory with:
     633
     634{{{
     635/home/members/*/sites/*/logs/*.log {
     636weekly
     637missingok
     638rotate 12
     639compress
     640delaycompress
     641notifempty
     642create 644 root root
     643sharedscripts
     644postrotate
     645if [ -f /var/run/apache2.pid ]; then
     646/etc/init.d/apache2 restart > /dev/null
     647fi
     648endscript
     649}
     650}}}
     651
     652=Configure logcheck=
     653
     654Copy from Wiwa to the server:
     655/etc/logcheck/logcheck.conf
     656/etc/logcheck/ignore.d.server/local-*
     657
     658=Configure cron-apt=
     659
     660Edit /etc/cron-apt
     661Change line MAILON to MAILON="upgrade"
     662
     663=Configure Awstats=
     664
     665
     666 * Copy /etc/awstats/awstats.conf.local from chavez to the target server's /etc/awstats directory
     667 * Copy /usr/local/sbin/mf-awstats-create, /usr/local/sbin/mf-awstats-build-staticpages, and /usr/local/etc/awstats-create from
     668chavez to the target server.
     669 * Copy /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl to /usr/local/sbin/
     670 * Copy /usr/share/doc/awstats/examples/apache.conf to /etc/apache2/conf.d/awstats
     671
     672
     673=Configure Mutt=
     674
     675Create /etc/Muttrc.d and put a file named maildir.rc with
     676
     677{{{
     678set mbox_type=Maildir
     679set mbox=~/Maildir
     680set spoolfile=~/Maildir
     681set folder=~/Maildir
     682}}}
     683
     684=Change ssh=
     685
     686Make sure the following settings are set:
     687{{{
     688PermitRootLogin no
     689AllowGroups sshusers
     690# Required for Contribute. Grr.
     691PasswordAuthentication yes
     692}}}
     693
     694=Congifure phpmyadmin=
     695
     696Copy the apache conf file from /etc/phpmyadmin to /etc/apach2/conf.d
     697
     698{{{
     699cp /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin
     700}}}
     701
     702Add the phpmyadmin alias:
     703
     704{{{
     705echo "Alias /phpmyadmin /usr/share/phpmyadmin" >> /etc/apache2/conf.d/phpmyadmin
     706}}}
     707
     708=Setup Backup=
     709
     710 * Copy the /usr/local/sbin/mf-backup and /etc/mf-backup.xml files from another server
     711 * Edit /etc/mf-backup.xml as needed
     712 * Be sure to grant the mysql backup user the proper permissions with:
     713{{{
     714GRANT SELECT,SHOW VIEW,LOCK TABLES ON *.* TO 'backup'@'localhost' identified by 'secret'
     715}}}
     716