Ecrit par:  DAVID
Date création:  04-11-2014
Nombre de vues:  3963
Catégorie:  ovh
Note: 
Tutoriel N° 27d - Release 3 OVH Guide des problèmes et bugs corrigés : informatique > gestion > ovh

Passage Release 2 OVH à Release 3 OVH


Nous allons voir dans ce tutoriel comment passer d'un serveur OVH release 2 à un serveur OVH release 3.

Changement sur la Realease 3:

Passage PHP 5 à 5.3 (pas de choix possible pour ceux qui étaient en version 4 ou 5)
Passage de QMAIL à POSTFIX comme serveur de mail
Nouvelle interface WEBMIN (Nous ne traiterons pas de ce sujet)


Ce tutoriel vous propose :

[# Passage PHP 5 à 5.3 - Adaptation de quelques fonctions php(include,$HTTP_POST_VARS)
# SPF PASS / DKIM OK dans les signatures des emails PHP envoyés avec un exemple
# La correction des bugs de charsets (caractères accentués)
# Configuration PHP.INI
# La correction de la fonction mail PHP qui ne fonctionne pas
# La migration de vos sites, bases mysql, emails
# Quelques fonctions POSTFIX utiles
# Migration des DNS
# Eviter de recevoir des mails de ANACRON et de CRON
# Suppression des logs via CRON
# Activer Alias de siteweb du type http://vpsxxxxxx.ovh.net/~siteweb

Des connaissances de base pour se connecter en SSH sont nécessaires à ce tutoriel.
Pour rappel sous windows il y a le logiciel Putty, sous mac osx il suffit de lancer l'application Term
et de saisir:

ssh -l root XX.XX.XX.XX

avec XX.XX.XX.XX l'ip de votre serveur vps ou kimsufi


# Passage PHP 5 à 5.3

Certaines fonctionnalités peuvent ne plus être compatibles dans vos scripts du au passage de PHP 4,5 à PHP 5.3 dans cette release 3 OVH.

- La fonction PHP INCLUDE(URL?VAR=$VAR...) ne fonctionne plus

voici une alternative compatible PHP 5.3

Remplacer
include("http://www.domaine.com/file.php?var=$VAR&var2=$VAR2...");

par

$fichier=file_get_contents("http://www.domaine.com/file.php?var=$VAR&var2=$VAR2...");
echo $fichier;


Pour les paiements en ligne de type ATOS
Remplacer $HTTP_POST_VARS[DATA] par $_POST[DATA]



# SPF PASS / DKIM OK dans les signatures des emails PHP envoyés

La signature DKIM est automatiquement ajouté dans vos mails expédiés, vous pouvez cependant la désactiver en ssh avec la commande (stop/start)

/etc/init.d/opendkim stop


Voici le code php 5.3 pour envoyer un email avec la signature SPF/DKIM sous postfix

$mailto="noreply@domaine.com";
$subject="sujet de l'email";
$message="ceci est un message test";
$spam_sender="spam_sender@domaine.com";
$from = "From:exemple<spam_sender@domaine.com>\r\n";
$from .= "Return-Path:$spam_sender\r\n";
$from .= "Reply-To: $spam_sender\r\n";
$from .= "MIME-version: 1.0\n";
$from .= "Content-type: text/html; charset= iso-8859-1\n";

mail($mailto, $subject, $message, $from, "-fspam_sender@domaine.com");


Pour ajouter la signature SPF, rendez vous sur webmin (basculer sur la nouvelle interface OVH)
https://vpsxxxxxx.ovh.net:10000/

Menu Serveurs sur la gauche > Serveur de noms de domaines BIND > Zones DNS existantes (en bas à droite) > Sélectionner le domaine > Modifier le fichier d'enregistrements

Modifier la ligne contenant ip6 par une ligne de cette forme, puis sauvegarder, appliquer les changements et redemarrer BIND


domaine.com. IN TXT "v=spf1 a ip4:XX.XX.XX.XX mx ~all"


Exemple (*):

$ttl 86400
shareannonce.com. IN SOA shareannonce.com. postmaster.shareannonce.com. (
2014112702
21600
3600
604800
86400 )
IN NS XX.ip-XX-XX-XXX.eu.
IN NS sdns2.ovh.net.
IN MX 10 mail.shareannonce.com.
IN A XX.XX.XX.XX
www IN A XX.XX.XX.XX
mail IN A XX.XX.XX.XX
smtp IN A XX.XX.XX.XX
pop IN A XX.XX.XX.XX
pop3 IN A XX.XX.XX.XX
imap IN A XX.XX.XX.XX
sql IN A XX.XX.XX.XX
mysql IN A XX.XX.XX.XX
ftp IN A XX.XX.XX.XX
ownercheck IN TXT "xxxxxxxxx"
shareannonce.com. IN TXT "v=spf1 a ip4: XX.XX.XX.XX mx ~all"
default._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=M..................................................................AB" ) ; ----- DKIM key default for shareannonce.com



# La correction des bugs de charsets (caractères accentués)

Editer le fichier httpd.conf,

#nano /etc/httpd/conf/httpd.conf


commenter la ligne avec un #
#AddDefaultCharset UTF-8

ajouter les lignes en dessous

AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
# For russian, more than one charset is used (depends on client, mostly):
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8


commenter les lignes avec un # pour éviter les logs

#ErrorLog logs/error_log
#CustomLog logs/access_log combined


Redémarrer apache

/etc/init.d/httpd restart



# Configuration PHP.INI

nano /etc/php.ini


Modifier pour supprimer l'affichage des messages d'erreurs et enregistrements des logs

register_globals = On
display_errors = Off
log_errors = Off

; Add X-PHP-Originaiting-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off


Ajouter pour autoriser les INCLUDE PHP

allow_url_include = 1


Redémarrer apache

#/etc/init.d/httpd restart



# La correction de la fonction mail PHP qui ne fonctionne pas

nano /etc/postfix/main.cf
on remplace
inet_protocols = all
par
inet_protocols = ipv4


==> lancer smptp
chown postfix.postfix -R /var/lib/postfix
/etc/init.d/postfix restart
service postfix start



# La migration de vos sites, bases mysql, emails

Pour les emails, vous devez recréer vos boites mails sur

https://vpsxxxxxx.ovh.net/postfixadmin/login.php

Pour la migration de vos sites et de vos bases mysql:

Sur l'ancien SERVEUR (RELEASE 2 OVH) on se logue
On se place dans /
cd /
mysqldump -u root -pMOT_DE_PASSE_MYSQL --databases base1 base2 base3 > base.sql


ATTENTION: Prendre uniquement vos bases et surtout pas les bases par defaut comme test, mail, et mysql dans la liste des bases base1 base2 base3 ...

On se place dans /
cd /
tar -cf home.tar --exclude=icons --exclude=log --exclude=mail --exclude=mysql --exclude=ovh --exclude=usage home


On doit ensuite créer les domaines via WEBMIN sur le serveur RELEASE 3 OVH avec OVHM

On peut maintenant envoyer les bases et les sites avec les commandes suivantes:
XX.XX.XX.XX étant l'ip (serveur OVH RELEASE 3)

rsync -avz home.tar root@XX.XX.XX.XX:/
rsync -avz base.sql root@XX.XX.XX.XX:/

le mot de passe root (serveur OVH RELEASE 3) sera demandé


On se logue ensuite en ssh sur (serveur OVH RELEASE 3)

on importe les bases mysql:
cd /
mysql -u root -pMOT_DE_PASSE_MYSQL < base.sql

cd /home
on efface les répertoire créer avec WEBMIN qui se trouve dans /home
avec la commande rm -rf login-domain (ceci pour chaque site)

on se remet à la racine et on déverse les sites avec la commande

tar XVF home.tar


fini


# Quelques fonctions POSTFIX utiles

Voici quelques commandes utiles POSTFIX
checker queue postfix
postqueue -p

Supprimer tous les messages en Queue :
postsuper -d ALL

version postfix
postconf -d | grep mail_version

Supprimer Mailer daemon
mailq | grep MAILER-DAEMON | awk '{print $1}' | tr -d '*'| postsuper -d -

lire un message avec id
sudo postcat -q 8913E2F64DFD
sudo postcat -q MESSAGE_ID | head -n 100
sudo postcat -q 8913E2F64DFD | head -n 100



# Migration des DNS

Supprimer les DNS secondaire de l'ancien manager du serveur OVH RELEASE 2
Modidier les DNS chez votre registrar

Ajouter DNS secondaire sur OVH release 3

il est necessaire d'ajouter la ligne de commande OWNERCHECK dans le bind de chaque domaine
de cette façon avec le code qu'OVH vous donnera xxxxxxxxx. Redemarage de bind.
Il se peut que vous deviez attendre 30min avant qu'OVH accepte le DNS.

ownercheck IN TXT "xxxxxxxxx"


(voir exemple (*) ci dessus)

Cette étape peut être assez fastidieuse à cause des refus d'OVH, il suffit de patienter et de renouveler l'opération

# Eviter de recevoir des mails de ANACRON et de CRON

nano /etc/crontab
remplacer
MAILTO=ROOT par MAILTO=""
sauvegarder puis faire
/etc/init.d/crond restart



# Suppression des logs via CRON

On commence par créer le script qui efface les logs, on se place où l'on souhaite sur le serveur.
Je choisis par exemple un domaine et un emplacement arbitraire et je crée le script purglog.sh
Remplacer domain par l'un des répertoires de site web sur votre serveur.

Ce script effacera les logs qui s'inscrivent sur votre serveur malgré les directives apache déjà supprimées.

cd /home/domain/www
nano purglog.sh



#!/bin/bash

# Pour chaque domaine dans /var/log/httpd ajouter ces 2 lignes ci dessous
cat /dev/null > /var/log/httpd/domain-access_log
cat /dev/null > /var/log/httpd/domain-error_log


cat /dev/null > /var/log/httpd/access_ssl_log
cat /dev/null > /var/log/httpd/access_log
cat /dev/null > /var/log/httpd/error_log
cat /dev/null > /var/log/httpd/error_ssl_log
cat /dev/null > /var/log/httpd/ovh-access_log
cat /dev/null > /var/log/httpd/ovh-access_ssl_log
cat /dev/null > /var/log/httpd/ovh-error_ssl_log
cat /dev/null > /var/log/httpd/ovh-ssl_request_log
cat /dev/null > /var/log/httpd/ssl_request_log
cat /dev/null > /var/log/httpd/suphp_log
cat /dev/null > /var/log/cron
cat /dev/null > /var/log/maillog
cat /dev/null > /var/log/mysqld.log
cat /dev/null > /var/log/cron.log
cat /dev/null > /var/log/daemon.log
cat /dev/null > /var/log/kern.log
cat /dev/null > /var/log/messages
cat /dev/null > /var/log/debug

# vide la queue postfix de mails
postsuper -d ALL


Rendre éxécutable ce script

chmod 777 /home/domain/www/purglog.sh


Ajouter dans CRON l'éxécution automatique de ce script toutes les 15 minutes par exemple

nano /etc/crontab

15 * * * * root /bin/sh /home/domain/www/purglog.sh;



Pour finir nous allons supprimer les dernières directives de log encore présentes:

cd /etc/httpd/vhosts/

Editer chaque fichier de ce répertoire puis,
pour chaque fichier que l'on édite via nano mettre un # devant ces 2 lignes

#CustomLog logs/alertfin-access_log combined
#ErrorLog logs/alertfin-error_log



# Activer Alias de siteweb du type http://vpsxxxxxx.ovh.net/~siteweb

Cette fonction bien pratique qui permet de visualiser son site avant la propagation DNS n'est plus activée par défaut, pour l'activer procéder comme suit:

nano /etc/httpd/vhosts/default.conf
cocher
#suPHP_UserGroup ovh users


nano /etc/httpd/conf/httpd.conf
decocher
LoadModule userdir_module modules/mod_userdir.so


puis redémarrer apache
/etc/init.d/httpd restart


Je reste à votre disposition par email pour vous aider

Veuillez me contacter par skype sur gregore2112 ou par email souanypro@gmail.com si vous avez des questions relatives à ce tutoriel.


Autres fiches (news, tutoriaux ou petites annonces) de David de la même catégorie >
Stop a ddos attack with iptables
Ecrit par DAVID
Saisir la mini description de votre tutoriel
Ecrit par DAVID
How to check if TLS 2.1 is installed ovh
Ecrit par DAVID
Contrer une attaque ddos
Ecrit par DAVID
Nettoyer serveur vps release3 hack rootkit
Ecrit par DAVID
Bounces - Mailer-Daemon avec POSTFIX
Ecrit par DAVID
Sécuriser serveur OVH release 3 avec un firewall
Ecrit par DAVID
Migration installation vps kimsufi release3 OVH
Ecrit par DAVID
Serveur OVH hacké gentoo release 2
Ecrit par DAVID
 
ShareAnnonce version 1.0 Tous droits reserves. | Condition d'utilisation | Qui sommes nous ? | Contact