Axude

PHP, MySQL, Apache, Debian, et bien d'autres!
  • scissors

    Nginx permet tout un tas de choses compliquées, et notamment utiliser des server_name dynamiques contenant des variables
    Voici un exemple pour rediriger vers un sous-répertoire un sous-domaine:

    server {
    listen 80 default_server;
    server_name ~^(?.+)\.mondomaine\.com$;
    root /home/web/www/$subdomain;
    index index.html index.htm index.php;
    }

    Grâce à cela, si votre root est /home/web/www et que vous vous rendez à l’url toto.mondomaine.com, alors le root sera automatiquement /home/web/www/toto

    Magique!

    Tags: , , ,
  • scissors

    La question de la sauvegarde est toujours un sujet un peu tendu lorsque l’on gère ses serveurs. il existe beaucoup de solutions plus ou moins complexes à mettre en oeuvre, et puis on se rabat souvent sur la solution de facilité: le petit script fait maison qui va bien. Pourtant il existe une solution très simple qui gère tout un tas de choses pour vous: backup-manager!

    Voici donc la procédure d’installation de backup-manager pour sauvegarder quelques répertoires et toute votre base MySQL! Un seul mot d’ordre: SIM-PLI-CI-TE !

    apt-get install backup-manager
    mkdir -p /home/backup
    Archives location:
    /home/backup
    Owner user of the repository:
    root
    Owner group of the repository:
    root
    Directories to backup: (listez ici, séparés par un espace, l'ensemble des répertoires que vous souhaitez sauvegarder)
    /etc /home/web /var/www

    Par défaut backup-manager ne fait qu’une sauvegarde en local
    Nous allons éditer le fichier de config pour que backup-manager fasse tous les jours une sauvegarde complète par FTP
    vi /etc/backup-manager.conf
    Nous faisons le choix de sauvegarder les fichiers sous forme d’archives tarball, et se sauvegarder également le mysql
    BM_ARCHIVE_METHOD="tarball mysql"
    Changez le nombre d’archives que vous souhaitez garder (ici 10 jours, par défaut 5)
    BM_ARCHIVE_TTL=10
    Si vous voulez exclure des répertoires (des logs par exemple), editez la variable
    BM_TARBALL_BLACKLIST="/var/archives"
    Définissez les login/pass de l’utilisateur mysql qui vous permettra de faire la sauvegarde (Créez un utilisateur dédié)
    BM_MYSQL_ADMINLOGIN="backup"
    BM_MYSQL_ADMINPASS="backuppassword"

    Maintenant les modifications pour envoyez les archives par FTP:
    BM_UPLOAD_METHOD="ftp"
    BM_UPLOAD_HOSTS="ftp.domaine.com"
    BM_UPLOAD_DESTINATION="/"
    BM_UPLOAD_FTP_USER="ftpuser"
    BM_UPLOAD_FTP_USER="ftppassword"
    BM_UPLOAD_FTP_HOSTS="ftp.domaine.com"

    On crée ensuite uns script qui va vérifier le backup après le process pour être sur que tout est ok (vous recevrez un petit mail de confirmation à chaque backup)
    BM_POST_BACKUP_COMMAND="/etc/backup-manager-post"

    On sauvegarde le fichier puis on crée le script post-backup
    vi /etc/backup-manager-post
    Et on met dedans:

    #!/usr/bin/php

    <?php

    $dest = array('VOTRE@EMAIL.COM');
    $archives = '/home/backup';

    $host = trim(file_get_contents('/etc/hostname'));

    clearstatcache();

    $dir = opendir($archives);
    if($dir) {
    while(false !== ($filename = readdir($dir))) {
    if($filename[0]!='.' && preg_match('/'.date('Ymd').'/',$filename)) {
    $thefile = $archives.'/'.$filename;
    $size = exec("ls -l '".$thefile."' | awk '{print $5}'");
    if($size>0) {
    $pagetext.= $filename." (".round($size/1000000000,2)." Go)n";
    } else {
    $pagetext.= $filename." (? Go)n";
    }
    $totalsize += $size;
    }
    }
    $pagetext .= "nTotal : ".round($totalsize/1000000000,2)." Gon";
    }

    foreach($dest as $d) {
    mail($d,'['.$host.'] Backup OK',$pagetext);
    }

    ?>

     

    Et voilà backup-manager va automatiquement tout sauvegarder tous les jours, et en plus vous envoyer un mail de confirmation!

    Tags: , , , , ,
  • scissors

    On sait tous comment installer PHP5 et Apache2, mais moins souvent comment purement et simplement ne pas installer Apache2 et mettre Nginx à la place. Voici la solution!

    Par défaut le paquet php5-fpm n’est pas inclu dans les paquets par défaut de la distrib Debian Squeeze, on va utiliser le depot de DotDeb
    echo "deb http://packages.dotdeb.org stable all" >> /etc/apt/sources.list
    echo "deb-src http://packages.dotdeb.org stable all" >> /etc/apt/sources.list
    wget http://www.dotdeb.org/dotdeb.gpg
    cat dotdeb.gpg | apt-key add -
    rm dotdeb.gpg
    apt-get update
    apt-get install nginx php5-fpm

    cd /etc/nginx/sites-enabled
    rm default
    vi localhost
    server {
    listen 80;
    server_name localhost;
    root /var/www/localhost;
    index index.html index.htm index.php;
    location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
    }
    }

    /etc/init.d/php5-fpm start
    /etc/init.d/nginx start

    Tags: , , , ,
  • scissors

    Ntop est un outil qui vous permettra d’en savoir énormément sur le trafic de vos serveurs. Il peut être très utile pour diagnostiquer une attaque ou un problème réseau. Seulement, si vous tentez d’installer ntop depuis une installation standard de Debian, avec apt-get install ntop, vous risquez d’obtenir le message: « Package ‘ntop’ has no installation candidate ».

    Malheureusement, ntop n’est plus inclus par défaut dans la distribution. Il fait en revanche partie des paquets backports.

    Voici donc la marche à suivre pour installer ntop:

    vi /etc/apt/sources.list

    #ajouter la ligne suivante à la fin du fichier

    deb http://backports.debian.org/debian-backports squeeze-backports main

    apt-get update

    apt-get install ntop

    Répondez O ou Y à l’installateur

    Saisissez votre mot de passe ntop administrateur  lorsqu’il vous est demandé

    Saisissez le une seconde fois pour confirmer

    L’installation est finie, et ntop sera démarré automatiquement.

    Vous pouvez vous rendre sur http://IP.IP.IP.IP:3000 (ou IP.IP.IP.IP est l’adresse IP de votre serveur)

    Maintenant, pour arrêter ntop

    /etc/init.d/ntop stop

    Pour démarrer ntop

    /etc/init.d/ntop start

    Login administrateur: admin

    Tags: , , ,
  • scissors
    cat /var/log/apache2/access.log | awk '{print $1}' | sort | uniq -c | sort -n |tail
    Va renvoyer par ordre croissant le nombre de hits par IP. Magique!
    Le | tail à la fin permet de limiter la liste aux dix plus grosses entrées. Enlevez le pour avoir la liste complète.
    Tags: , , , ,
  • scissors
    mars 7th, 2012neriqueDéveloppement, Informatique

    Voilà une info astucieuse pour les flémards qui ne veulent pas passer leur temps à récupérer les infos de partout! Parce qu’un dev flémard, c’est le meilleur!

    Vous pouvez récupérer la liste dans de nombreux formats, tels que

    • Text
    • JSON
    • YAML
    • XML
    • HTML
    • CSV
    • SQL
    • PHP
    • MySQL
    • SQLite
    • SQL Server

    Rien que ça!!

    A trouver sur  Umpirsky Software development blog

    Tags: , , , , ,
  • scissors
    mars 7th, 2012neriqueDéveloppement, Informatique, Langages, PHP

    Voici quelques fonctions qui vont retourner la date de la veille en PHP. Et dans la foulée, une fonction qui retourne une date à plus ou moins X jours!

    1. function getYesterday() {
    2.  
    3. return date('Y-m-d', time() - (60*60*24));
    4.  
    5. }
    6.  
    7. function getYesterday() {
    8.  
    9. return date('Y-m-d', strtotime('yesterday'));
    10.  
    11. }
    12.  
    13. function getYesterday() {
    14.  
    15. return date('Y-m-d', strtotime('-1 day'));
    16.  
    17. }

    Voici la fonction qui retourne une date à plus ou moins x jours (par défaut, la veille)

    1. function getDayDiff($diff = '-1') {
    2.  
    3. //$diff doit être au format +X ou -X, X étant un entier
    4.  
    5. return date('Y-m-d', strtotime($diff.' day'));
    6.  
    7. }
    Tags: , ,
  • scissors
    mars 1st, 2012neriqueDéveloppement, Informatique, Langages, PHP

    Parlons un peu de ce que l’on peut trouver sur le net en terme d’optimisation PHP, quelques articles TRES utiles:

    • Un HOW-TO à base de benchmark, de conf Apache, et de bonnes idées en tous genres chez PHPLens
    • Une liste des meilleures pratiques (les meilleures façons d’utiliser echo, quelle fonction pour calculer la taille d’une chaîne, etc..) chez Chazzuza
    • En français cette fois, chez Vulgarisation-Informatique un benchmark des différentes fonctions de base de PHP, pour choisir la meilleure!
    Tags: , , ,
  • scissors
    février 25th, 2012neriqueCSS, Développement, Informatique, Langages

    Lorsque l’on utilisa la propriété opacity en CSS, tous les enfants de l’élément courant seront impactés par le changement d’opacité.

    Au lieu donc d’utiliser la propriété opacity, il faut utiliser la propriété background-color avec une valeur en rgba où a représente le degré de transparence.

    Exemple: background-color:rgba(41, 191, 214, 0.5);

     

    Tags: , , , ,
  • scissors
    février 7th, 2012neriqueDebian

    Lors d’une mise à jour de Debian Squeeze, j’ai rencontré l’erreur suivante, qui bloque ensuite toutes les tentatives de mise à jour:

     Errors were encountered while processing:

     nfs-common

    Pour régler ce problème, voici la solution:

    Taper la commande:

    insserv portmap

    Puis

    apt-get update; apt-get upgrade;

    Le problème devrait être réglé
    Tags: , , , ,
  • « Older Entries