Installer un serveur web sous Unix

Installation de LAMP

sudo -i
 apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql mysql-client libmysqlclient15-dev mysql-common phpmyadmin
 apt-get upgrade
 apt-get clean
 apt-get autoclean

Déplacement des dossiers WWW, LOG et MySQL vers /home

Dans le cas où /home est une partition différente de /. A faire absolument avant toute installation de site et de base.

Dossier WWW

sudo cp -rp /var/www /home/www
 sudo /etc/init.d/apache2 stop
 sudo mv /var/www /var/www.old
 sudo ln -s /home/www /var/www
 sudo /etc/init.d/apache2 start

Dossier Log

sudo cp -rp /var/log /home/log
 sudo mv /var/log /var/log.old
 sudo ln -s /home/log /var/log

Dossier MySQL

stop mysql
 mkdir /home/mysql
 cp -R /var/lib/mysql /home/mysql
 cp -R /var/lib/mysql/users /home/mysql
 cp /etc/mysql/my.cnf /root/my.cnf.backup
 chown -R mysql:mysql /home/mysql
 mv /var/lib/mysql /var/lib/mysql-old
 ln -s /home/mysql /var/lib/mysql
 echo "alias /var/lib/mysql/ -> /home/mysql/," >> /etc/apparmor.d/tunables/alias
 sudo /etc/init.d/apparmor reload
 start mysql

Rotation des logs

Sauvegarde régulière de la BDD + copie distante en FTP

Créer un script contenant ces lignes (à adapter)

HOST='ftp.host.com'
 USER='user'
 PASS='pass'
 TARGETFOLDER="/remote/path/$(date +%F-%H-%M)"
 SOURCEFOLDER='/local/path'

#liste des dossier
 LISTEBDD=$( echo 'show databases' | mysql -uuser -ppass )

#on boucle sur chaque dossier (for découpe automatiquement par l'espace)
 for SQL in $LISTEBDD

do

if [ $SQL != "information_schema" ] && [ $SQL != "mysql" ] && [ $SQL != "Database" ] && [ $SQL != "phpmyadmin" ] && [ $SQL != "performance_schema" ]; then

echo $SQL
 mysqldump -uuser -ppass $SQL | gzip > /local/path/$SQL.sql.gz

fi

done

#Récupération
 lftp -f "
 open $HOST
 user $USER $PASS
 mirror --reverse --verbose $SOURCEFOLDER $TARGETFOLDER
 bye
 "