banneer

Réducteur d'URL tinad:

Collez l'adresse du site:

Rechercher sur le blog du grouik:

Catégorie: Informatique › Serveurs http web et autres

Fil des billets - Fil des commentaires

Piwik http://piwik.org/ est un outil de statistiques de visites pour les sites web. Il fonctionne comme google Analitycs, c'est à dire un morceau de code javascript sur chaque page. Vos utilisateurs feront du coup une requête vers le site piwik que vous avez précédemment installé.

@madm4as m'a conseillé de le tester. Je ne suis pas déçu.

L'installation se présente comme l'installation de n'importe quel CMS. Créer une base de données, décompresser le code sur votre site, et suivre les indications. Pas grand chose à détailler là dessus. C'est simple.

Les types de statistiques de Piwik ressemblent à première vue, beaucoup à celles fournies par google analitycs. (sans fournir de données à un tiers).

Pour vous en rendre compte allez y jeter un coup d’œil à mes statistiques http://blog-du-grouik.tinad.fr/piwik. j'ai ouvert l'accès en prenant soins de masquer les IP préalablement). Mais soyez indulgents, je viens juste d'installer Piwik, et je n'ai pas été super actif sur ce blog dernièrement. J'ai finalement fermé l'accès, Il y a quelques infos que je ne souhaite pas publier (mon propre reverse DNS) et Piwik va plus loin que Analitycs, on peut mieux profiler les visiteurs, c'est un peu délicat de publier ça.

Quelques screens de l'interface:

Le tableau de bord

Il est composé de plugins déplaçables. tous ne sont pas actifs par défaut.

piwik-home.jpeg

Visite par heures locale.

Cela fait partie des données que ne fournit pas analitycs et que j'avais la curiosité de connaitre.

piwik-users-horaires.jpeg

Je viens juste d'installer piwik, spourssa qu'il n'y a que trois barres bleues.

Les pages du site:

piwik-pages.jpeg

Les logs visiteurs:

piwik-users-logs.jpeg (le second sur l'image, c'est moi)

Quelques fonctionnalités originales que j'ai noté:

  • La possibilité d'afficher un Iframe sur votre site contenant un lien pour vos visiteurs pour ne pas être suivis dans Piwik en installant un cookie de neutralisation dans leur navigateur.
  • Pouvoir donner l'accès à ses statistiques à des utilisateurs anonymes (je ne l'ai pas fait finalement).
  • La vue des visiteurs en temps réel.
  • La possibilité d'intégrer publiquement (ou non) des morceaux du tableau de bord sur son site web
  • La possibilité d'exclure des IP des statistiques (celle du webmestre par exemple)

Pour conclure, Piwik me parait plus complet qu'Analitycs (il faudrait pit etre que je creuse un peu plus ce dernier) et permet d'éviter d'envoyer des informations à la plus grosse base de données du monde... Cet argument peut etre mis à mal par le fait que piwik est beaucoup intrusif qu'analytics pour les visiteurs. Je n'aurai pas quelques années d'historique (et la gestion des adscence) chez google, je n'hésiterai pas.


wordpress-logo.jpgAprès avoir créé ses identifiants ftp et sa base mysql sur l'interface de Online, Il y a deux petits trucs à savoir si vous souhaitez héberger un wordpress.

Changer la version de php par défaut.

Votre serveur utilise la version 4.4.9-1.standard de PHP mais Wordpress 3.2 nécéssite au moins la version 5.2.4

Online a un php 4 et un 5 installés, sauf que par défaut les fichiers en .php sont traités avec php4 et les .php5 ouverts avec le 5. Pour changer ce comportement (tout avec php 5), créez un fichier .htaccess à la racine de votre site et mettez y ça:


AddType application/x-httpd-php5 .php

Les mises à jour quasi automatiques en ftp de wordpress.

L'organisation du mutualisé de Online fait que la partie publique (la racine du site web) se trouve dans le dossier /www/ du repertoire accessible en ftp.

Pas moyen de préciser ça à wordpress dans l'interface des mises à jour.

La solution [1], c'est d'insérer les lignes suivantes au fichier wp-config.php

  1. define('FTP_HOST', 'ftp.online.net');
  2. define('ftp_user', 'votre_user');
  3. define('FTP_PASS', 'votre_password');
  4. define('FTP_BASE','/www');
  5. define('FS_METHOD', 'direct');

Retentez la mise à jour, ça marchera comme sous des roulettes!



Reseau4.jpg

On va tenter l'installation d'un contrôleur de domaine (terme windowsien) sous une débian 6. Car oui, depuis pas mal de temps déjà, samba sait aller au delà du partage de fichiers et d'imprimantes.

Pour le moment je reste basique. C'est à dire authentification des utilisateurs avec quelques mappages de dossiers. J'essaierai d'aller au delà dans un autre billet.

On verra le paramétrage, puis un test sur windows7.

Quelques documents

Il y a pleins de tutoriels là dessus, je ne suis pas original mais perso, j'ai du en croiser plusieurs pour faire ce que je voulais.

Serveur

Un serveur débian propre, sans rien de plus.

Samba!

Installation

  1. apt-get install samba

Actuellement dans les paquets de débian Lenny, c'est la version 3.5 de samba qui est installée.

Configuration.

Explication. / synoptique

  • Chaque utilisateur aura un dossier personnel, une tête de lecteur réseau H sur leur poste de travail, qui pointe en fait vers le homedir de l'user linux correspondant.
  • Les profils itinérants sont stockés sur le serveur dans /home/samba/profiles/username. Le partage réseau quand à lui est //serveur/profiles/username
  • Netlogon (/home/samba/netlogon sur le serveur; //serveur/netlogon en chemin UnC) Sert aux scripts de démarrage et de directives qui s'appliquent aux ordinateurs, ou lors de la connexion des utilisateurs. Cependant Dans cette version de samba, il n'y a pas besoin de créer à la mano les fichiers batch pour monter des dossiers. Il va les générer tout seul comme un grand à partir des directives mises dans son fichier de configuration.

Le fichier de configuration /etc/samba/smb.conf est divisé en plusieurs parties: [global] et une mini partie par partage. Voyons le Global.

Configuration générale

Je liste dans un premier temps quelques directives du fichier sur lesquelles je pense utile de faire un petit commentaire.

Le nom du domaine ou workgroup:

workgroup = dom_grouik

Le nom du serveur sur le réseau sera son nom d'installation:

server string = %h

Pour le moment je laisse WINS désactivé. WINS assure (assurait, ça parait obsolète) un service de noms netbios, Un équivalent du DNS quoi, mais à plus petite échelle. A cette étape du tuto, je ne sais pas encore si je vais retenir cette solution, ou me baser sur un bind ou autre.

# wins support = no

Je laisse interfaces commentée car par défaut, samba répondra à toutes les requêtes. Mais si vous souhaitiez limiter à un VLAN particulier, c'est là qu'il faut le mettre:

; interfaces = 127.0.0.0/8 eth0

security = user

Les mots de passe unix et samba seront synchronisés. Cette commande active l’exécution du programme externe défini à la directive passwd program, lors du changement de mot de passe samba

unix password sync = yes

C'est le maitre (par opposition à contrôleur de domaine secondaire):

domain master = yes

Mouais, je n'ai pas trop saisi le but de la directive suivante:

L'OS level si je me souviens bien c'est lorsqu'il y a plusieurs controleur de domaine celui qui aura l'OS le plus eleve sera choisi.

Explication de zilozi dans les commentaires... Un peu comme le champs MX dans les DNS quoi

os level = 33

Pour insister sur le fait que c'est le maitre (surtout en cas de conflit):

preferred master = yes

C'est le partage où sera placé le profil de l'user (son "documents and settings" quoi)

logon path = \\%N\profiles\%U

Samba permet de monter directement (sans faire à la main un script batch) le home_dir de l'user unix sur une tête de lecteur. Il aura besoin de placer les scripts dans un partage "netlogon" (plus bas):

logon drive = H:
logon home = \\%N\%U

scripts lors de l'ajout d'users ou de machines depuis un pc client:

add user script = /usr/sbin/adduser -g dom_users -c Utilisateur -d /dev/null -s /bin/false '%u'
add machine script = /usr/sbin/useradd -g dom_pc -c "%u machine account" -d /dev/null -s /bin/false '%u'
add group script = /usr/sbin/groupadd '%g'
delete user script = /usr/sbin/userdel -r '%u'
delete group script = /usr/sbin/groupdel '%g'
delete user from group script = /usr/bin/gpasswd -d '%u' '%g'
set primary group script = /usr/sbin/usermod -g '%g' '%u'

En retirant toutes les lignes commentées ça donne:

[global]


   workgroup = dom_grouik
   server string = %h
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   security = user
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   domain master = yes
   os level = 33
   preferred master = yes
   domain logons = yes
   logon path = \\%N\profiles\%U
   logon drive = H:
   logon home = \\%N\%U
   add user script = /usr/sbin/adduser -g dom_users -c Utilisateur -d /dev/null -s /bin/false '%u'
   add machine script  = /usr/sbin/useradd -g dom_pc -c "%u machine account" -d /dev/null -s /bin/false '%u'
   add group script = /usr/sbin/groupadd '%g'
   delete user script = /usr/sbin/userdel -r '%u'
   delete group script = /usr/sbin/groupdel '%g'
   delete user from group script = /usr/bin/gpasswd -d '%u' '%g'
   set primary group script = /usr/sbin/usermod -g '%g' '%u' 

Partages

Vu la config au dessus, il faut trois partages: homes netlogon et profiles Suffit de décommenter. Même si je n'aborde pas ici les imprimantes, je laisse les valeurs par défaut

[homes]
   comment = Home Directories
   browseable = no
   read only = no
   create mask = 0700
   directory mask = 0700
   valid users = %S

[netlogon]
   comment = Network Logon Service
   path = /home/samba/netlogon
   guest ok = yes
   read only = yes

[profiles]
   comment = Users profiles
   path = /home/samba/profiles
   create mask = 0600
   directory mask = 0700
   writeable = yes
   create mode = 0700

[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700

[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no

Mise en place.

C'est là que j'ai honte, cette partie est quasiment un copier coller de tux-planet (hormis le changement de dossiers, j'ai ajouté un mappage entre les Noms NT des groupes et les groupes unix)

  1. #La première étape consiste à créer le compte administrateur.
  2. #le mot de passe SAMBA doit être identique au mot de passe UNIX.
  3. smbpasswd -a root
  4. #La création des groupes servira plus loin, mais pas dans l'immédiat pour un simple partage de dossier
  5. #Création du groupe des administrateurs du domaine
  6. groupadd dom_admin
  7. #Création du groupe des utilisateurs du domaine
  8. groupadd dom_users
  9. #Création du groupe des machines
  10. groupadd -g 515 dom_pc
  11. #Attribuons ensuite les bons RIDs aux trois groupes :
  12. net groupmap add rid=515 unixgroup=dom_pc ntgroup="Domain Computers"
  13. net groupmap set "Domain Admins" dom_admin
  14. net groupmap set "Domain Users" dom_users
  15. #creer les dossiers
  16. mkdir /home/samba/
  17. mkdir /home/samba/profiles
  18. mkdir /home/samba/netlogon
  19. cd /home/samba/
  20. chgrp -R dom_users *
  21. chmod -R 755 netlogon
  22. chmod -R 770 profiles/
  23. #Créer un user:
  24. useradd -G dom_users -m -c "utilisateur test" -s /bin/false test
  25. #Ajout de l'utilisateur à samba
  26. smbpasswd -a test

Vérifiez la configuration avec la commande:

  1. testparmc

Vérifiez le mapping des groupes par la commande:

  1. net groupmap list

Puis lancez samba:

  1. /etc/init.d/samba start

Test sous windows:

Sous Windows XP, c'est passé sans problème.

Pour seven, préalablement. Vous pouvez au choix demander le correctif à microsoft (ils le transmettent par e-mail) http://support.microsoft.com/kb/2171571

Ou à la mano, vous ajoutez les valeurs de registres suivantes

        HKLM\System\CCS\Services\LanmanWorkstation\Parameters
            DWORD  DomainCompatibilityMode = 1
            DWORD  DNSNameResolutionRequired = 0

En quelques screens, l'ajout d'un ordinateur dans le domaine se fait par les propriétés du poste de travail, puis Modification du nom de l'ordinateur. Lors de l'ajout, on utilise un compte administrateur (root) qu'on mettra plus loin administrateur de la machine au passage. Par la suite, il sera possible de s'authentifier sur l'ordinateur à partir de n'importe quel compte du domaine. Les droits sur la machine seront ceux d'un utilisateur standard.

En quelques screens 1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

C'est comment un AD Windows?

Je me permet une petite digression, explication de ce qu'est un contrôleur de domaine Windows 2003. Le temps d'aller sur la passerelle avec ma clé ssh et de faire une redirection du port rdp sur le serveur du travail. Je fermerai juste après les ports évidemment. Un active directory, pas obligatoire, mais en général, ce sont tout d'abord des ordinateurs qui sont intégrés dans le domaine.

win2003-computers.jpg

Ce sont aussi des utilisateurs et des groupes: win2003-users.jpg

Pour lesquels, on peut choisir plein de paramètres, là c'est l'utilisateur accueil: le script batch à exécuter au démarrage (montage de répertoires distants principalement) et le dossier dans lequel sera dupliqué son dossier documents and settings (profils itinérants)

win2003-profils.jpg

Pour cela, un contrôleur de domaine partage plein de trucs en plus des dossiers à partager aux utilisateurs.

win2003-localhost.jpg

Les scripts .bat à l'ouverture et les GPO par exemple. win2003-sysvol.jpg

Conclusion

C'est pas mal, j'ai réussi à remplacer pas mal de fonctions du win2003 déja. Je ferai surement des ajouts à ce billet si je prends le temps de faire quelques tests (impression, DNS couplé à samba etc...)


illustration-serveur.jpg

Deux petits tips, suite à une migration debian 5 Lenny vers la 6 squeeze: le fichier de config php.ini et le débogage.

Le fichier de configuration de php5 pour apache sous Débian5 était:

/etc/php5/apache2/php5.ini

Suite à la migration (j'ai pas compris pourquoi, je suis peut être passé un peu vite dessus lors de la migration), c'est devenu:

/etc/php5/apache2/php.ini

Je me suis énervé un moment sur le php5.ini avant de piger le truc, et le fichier php.ini n'existant pas, il prenait les valeurs par défaut.

Ayant bidouillé mon installation de php pour résoudre le premier problème Le mode "debug" est devenu off. Vous savez, d'habitude en cas d'erreur dans un script, il vous indique la ligne de l'erreur et le nom du fichier concerné. Pratique pour du dev, mais sur un site en fonctionnement, un pirate ayant trouvé un moyen d'injecter du code, ça va bien l'aider aussi. Du coup, maintenant par défaut, C'est une page blanche qui sort.

Pour activer le débogage sur un site, au début du script (genre dans le fichier config.php), insérez les deux lignes php suivantes:

  1. ini_set('display_errors','On');

apt-get install vlc

Diffuser un film sur le net, VLC le permet, et ça fonctionne même avec un serveur sans interface graphique.

  1. vi /etc/vlc/http/.hosts

Rajoutez votre ip pour pouvoir accéder à la version web. Pour lancer vlc en mode silencieux (le terminal rend la main):

  1. su -c "vlc -I http" gnieark >/dev/null 2>/dev/null &

pour le lancer normalement (juste le daemon web), de façon à voir les logs:

  1. vlc -I http

.

Ouvrir son navigateur à l'adresse du serveur sur le port 8080 (paramètre par défaut); genre http://XXX.XXX.XXX.XXX:8080

vlc-stream-output.jpg

Ouvrez un fichier video, puis allez sur le bouton stream output. vlc-stream2.jpg Alors là c'est un peu la galère, choisir le bon encodage (ou non) en fonction de la vidéo source et des greffons installés sur le serveur. Bref, quand vous avez trouvé la bonne solution

"save" au niveau du gui pour les options de diffusion puis play pour diffuser.

En local, dans le player vlc; fichier ouvrir un flux réseau.

vlc-final.jpg

Voila. Un billet facile de ma part, mais qui a le mérite de préciser que c'est possible. Au fait, il y a moyen de gérer des playlists, et ce n'est pas obligatoirement un fichier en entrée. (un autre flux ou un périphérique). Bon dans les essais que j'ai fait, il cassait le flux entre deux titres. Mais je suis presque sur que c'est gérable. Pour une radio amateur par exemple.

- page 1 de 5


Propulsé par Dotclear