Installation Dedibox

Sommaire

But de ce document et prérequis: Configuration d’un serveur Dedibox à partir d’une Fedora Core 4. A noter que ce document est loin d’être exhaustif, qu’il n’est là qu’à titre d’exemple et que vous pouvez l’adapter à votre guise. Ce document ne prend pas en compte l’installation automatisée de la fedora depuis la console d’administration des dedibox.
Il est à noter que depuis la réalisation de ce document, dedibox permet d’installer la FC5 directement, ce qui vous permet de sauter la première étape.

Passage en FC5

# yum update
# yum -y update yum
# yum -y install kernel
# reboot
# uname -a
# rpm -qa | grep kernel

on efface le kernel précédent pour des pb de dép?:
# rpm -e kernel-2.6.11-1.1369_FC4

On remplace « 4 » par « 5 » dans les repo :
# cd /etc/yum.repos.d
# vi fedora.repo
# vi fedora-updates.repo
# vi fedora.repo
# vi fedora-extras.repo

# rpm -Uvh http://download.fedora.redhat.com/pub/fedora/linux/core/5/i386/os/Fedora/RPMS/fedora-release-5-5.noarch.rpm
# yum clean all
# yum -y update
# reboot
# yum -y update

Haut de page

pb d’accents dans le term

[root@pussycat ~]# more /etc/sysconfig/i18n

Code:

#LANG="fr_FR.UTF-8"
#LANG="fr_FR at euro"
LANG="fr_FR"
SUPPORTED="fr_FR.ISO885915:fr_FR at euro:fr_FR.UTF-8:fr_FR:fr"
SYSFONT="latarcyrheb-sun16"

Haut de page

Install des repo

[root@pussycat yum.repos.d]# more dag.repo

Code:

[dag]
name=Dag RPM Repository for Fedora Core
baseurl= http://apt.sw.be/fedora/$releasever/en/$basearch/dag/
enabled=0
gpgcheck=0

[root@pussycat yum.repos.d]# more livna*

Code:


::::::::::::::
livna-devel.repo
::::::::::::::
[livna-development]
name=Livna for Fedora Core $releasever - $basearch - Development Tree
baseurl=
        http://rpm.livna.org/fedora/development/$basearch/
        http://livna.cat.pdx.edu/fedora/development/$basearch/
        http://wftp.tu-chemnitz.de/pub/linux/livna/fedora/development/$basearch/
        http://ftp-stud.fht-esslingen.de/pub/Mirrors/rpm.livna.org/fedora/development/$basearch/
        http://mirror.atrpms.net/livna/fedora/development/$basearch/
        ftp://mirrors.tummy.com/pub/rpm.livna.org/fedora/development/$basearch/
failovermethod=priority
#mirrorlist= http://rpm.livna.org/mirrorlist-development
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna

[livna-development-debuginfo]
name=Livna for Fedora Core $releasever - $basearch - Development Tree - Debug
baseurl=
        http://rpm.livna.org/fedora/development/$basearch/debug/
        http://livna.cat.pdx.edu/fedora/development/$basearch/debug/
        http://wftp.tu-chemnitz.de/pub/linux/livna/fedora/development/$basearch/debug/
        http://ftp-stud.fht-esslingen.de/pub/Mirrors/rpm.livna.org/fedora/development/$basearch/debug/
        http://mirror.atrpms.net/livna/fedora/development/$basearch/debug/
        ftp://mirrors.tummy.com/pub/rpm.livna.org/fedora/development/$basearch/debug/
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
gpgcheck=1

[livna-development-source]
name=Livna for Fedora Core $releasever - $basearch - Development Tree - Source
baseurl=
        http://rpm.livna.org/fedora/development/SRPMS/
        http://livna.cat.pdx.edu/fedora/development/SRPMS/
        http://wftp.tu-chemnitz.de/pub/linux/livna/fedora/development/SRPMS/
        http://ftp-stud.fht-esslingen.de/pub/Mirrors/rpm.livna.org/fedora/development/SRPMS/
        http://mirror.atrpms.net/livna/fedora/development/SRPMS/
        ftp://mirrors.tummy.com/pub/rpm.livna.org/fedora/development/SRPMS/
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
gpgcheck=1
::::::::::::::
livna.repo
::::::::::::::
[livna]
name=Livna for Fedora Core $releasever - $basearch - Base
baseurl=
        http://rpm.livna.org/fedora/$releasever/$basearch/
        http://livna.cat.pdx.edu/fedora/$releasever/$basearch/
        http://wftp.tu-chemnitz.de/pub/linux/livna/fedora/$releasever/$basearch/
        http://ftp-stud.fht-esslingen.de/pub/Mirrors/rpm.livna.org/fedora/$releasever/$basearch/
        http://mirror.atrpms.net/livna/fedora/$releasever/$basearch/
        ftp://mirrors.tummy.com/pub/rpm.livna.org/fedora/$releasever/$basearch/
failovermethod=priority
#mirrorlist= http://rpm.livna.org/mirrorlist-5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna

[livna-debuginfo]
name=Livna for Fedora Core $releasever - $basearch - Debug
baseurl=
        http://rpm.livna.org/fedora/$releasever/$basearch/debug/
        http://livna.cat.pdx.edu/fedora/$releasever/$basearch/debug/
        http://wftp.tu-chemnitz.de/pub/linux/livna/fedora/$releasever/$basearch/debug/
        http://ftp-stud.fht-esslingen.de/pub/Mirrors/rpm.livna.org/fedora/$releasever/$basearch/debug/
        http://mirror.atrpms.net/livna/fedora/$releasever/$basearch/debug/
        ftp://mirrors.tummy.com/pub/rpm.livna.org/fedora/$releasever/$basearch/debug/
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
gpgcheck=1

[livna-source]
name=Livna for Fedora Core $releasever - $basearch - Source
baseurl=
        http://rpm.livna.org/fedora/$releasever/SRPMS/
        http://livna.cat.pdx.edu/fedora/$releasever/SRPMS/
        http://wftp.tu-chemnitz.de/pub/linux/livna/fedora/$releasever/SRPMS/
        http://ftp-stud.fht-esslingen.de/pub/Mirrors/rpm.livna.org/fedora/$releasever/SRPMS/
        http://mirror.atrpms.net/livna/fedora/$releasever/SRPMS/
        ftp://mirrors.tummy.com/pub/rpm.livna.org/fedora/$releasever/SRPMS/
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
gpgcheck=1

[root@pussycat yum.repos.d]# more rpmforge.repo

Code:


# Name: RPMforge RPM Repository for Fedora Core 5 - i386
# URL: http://rpmforge.net/
[rpmforge]
name = Fedora Core 5 - i386 - RPMforge.net - dries
#baseurl = http://apt.sw.be/dries/fedora/fc5/$basearch/dries/RPMS
mirrorlist = http://apt.sw.be/dries/fedora/fc5/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dries
gpgcheck = 1

Haut de page

Synchronisation Serveur de temps (ntp)

[root@pussycat proftpd]# emacs /etc/ntp.conf
Vérif que server 0.fedora.pool.ntp.org présent
Mise à jour temps:

[root@pussycat proftpd]# ntpdate 0.fedora.pool.ntp.org

Automatisation :
[root@pussycat proftpd]# emacs /etc/crontab

Code:

#syncronisation ntpdate journalier a 5h24 du matin. Attention ne pas utiliser une heure pleine pour ne pas surcharger les serveurs de temps.
24 5 * * * root /usr/sbin/ntpdate -su 0.fedora.pool.ntp.org >/dev/null

(-s : log dans /var/log/message, -u sortir par un port autre que 123)

Haut de page

Installation webmin

# yum install webmin –enablerepo=rpmforge

On modifie le port par défaut pour ne pas laisser 10000:
# emacs /etc/webmin/miniserv.conf
# /etc/init.d/webmin restart

L’idéal également est de créer un nouvel user (Administrator par exemple), de se logguer avec sur webmin, et de supprimer le user root.

modif du port d’écoute de SSH

# emacs /etc/ssh/sshd_config
# /etc/init.d/sshd restart

firewall_pussycat.JPG

Haut de page

Installation apache, mysql, php

# yum install mysql-server
# yum search apache
# yum install httpd
# yum install httpd php php-mysql

Il est possible de changer le storage engine.
Précision de Caliméro :

Innodb est sans doute un peu plus lent que myisam, mais pour une application un tant soit peu sérieuse, innodb s’impose (on ne peut pas faire du transactionnel en myISAM).
D’autre part, chaque table peut avoir son propre storage engine. Donc pour les applications peu critiques tu peux très bien utiliser du myISAM (qui est le défaut, normalement) tout en gardant la possibilité d’utiliser innodb sur les applications sérieuses. Seules les tables InnoDB seront éventuellement pénalisées par les fonctions avancées.
Après, on peut évidemment désactiver innodb, mais faut le faire en connaissance de cause

InnoDB est obligatoire dès que l’on doit travailler avec les transactions (type ACID) et les clés étrangères. En revanche, toutes les mises à jour doivent se faire par transaction, ce qui peut ralentir le système. Autre handicap, il n’y est pas possible d’utiliser d’appel fulltext, ce qui ralentit d’autant plus le travail. InnoDB dispose d’un système de récupération automatique en cas de crash, et fait un gros usage de l’espace disque et mémoire.

Pour désactiver InnoDB
# emacs /etc/my.cnf

on ajoute

Code:

skip-innodb

# /usr/bin/mysqladmin -u root password ‘nouveaupass’
# mysql -u root -p

Code:

select user, host, password, select_priv, update_priv, delete_priv, insert_priv from mysql.user;

On doit avoir qqchose qui ressemble à ça :

Code:

+------+------------------------+----------+-------------+-------------+-------------+-------------+
| user | host                   | password | select_priv | update_priv | delete_priv | insert_priv |
+------+------------------------+----------+-------------+-------------+-------------+-------------+
| root | localhost              |          | Y           | Y           | Y           | Y           |
| root | pussycat               |          | Y           | Y           | Y           | Y           |
|      | localhost              |          | N           | N           | N           | N           |
|      | pussycat               |          | N           | N           | N           | N           |
+------+------------------------+----------+-------------+-------------+-------------+-------------+
4 rows in set (0.17 sec)
mysql>

On tape :

Code:

set password for 'root'@'pussycat' = password ('newpassword');

Ensuite on crée un page index pour apache:
# echo « Coming soon » > /var/www/html/index.html

Haut de page

Configuration via webmin

– Lancement au démarrage de mysql / apache / webmin :
on se connecte sur https://ton_ip:7745/ ou 7745 est le port définit dans le miniserv.conf ci dessus.
On va sur
System / bootup and shutdown

On check httpd, mysql, webmin puis clique sur  » start now and on boot  »

– configuration firewall
tjrs dans webmin :
Networking/ linux firewall
A la question on répond :
block all exept SSH and IDENT
ensuite il faut autoriser le port ouvert pour webmin (cf screenshot) + port 80 + icmp (pour la réponse au ping)

Haut de page

Configuration de proftpd + Mysql + Quota

La version de proftpd fournit par défaut sous fedora ne me convient pas car elle n’est pas compilée avec les packages « quota ».
Par conséquent j’ai décidé de la recompiler et d’installer le package recompilé. (comme ça au passage ça vous permet de comprendre comment recompiler un package fc rapidement et presque sans douleur).

[root@pussycat SPECS]# yum install pam-devel ncurses-devel openssl-devel krb5-devel libacl-devel openldap-devel mysql-devel zlib-devel gcc-c++
[root@pussycat SPECS]# yum install gcc make kernel-header glibc-kernelheaders
[root@pussycat SPECS]# yum install rpm-build
[root@pussycat SPECS]# wget http://download.fedora.redhat.com/pub/fedora/linux/extras/5/SRPMS/proftpd-1.3.0-5.fc5.src.rpm
[root@pussycat SPECS]# mkdir /usr/src/redhat/
[root@pussycat SPECS]# mkdir /usr/src/redhat/SOURCES
[root@pussycat SPECS]# rpm -iv proftpd-1.3.0-5.fc5.src.rpm
[root@pussycat SPECS]# cd /usr/src/redhat/SPECS/
[root@pussycat SPECS]# emacs proftpd.spec

Code:

...
BuildRequires: openssl-devel, krb5-devel, libacl-devel
BuildRequires: openldap-devel, mysql-devel, zlib-devel
Provides: ftpserver
...
   --with-includes="%{_includedir}/mysql" \
    --with-modules=mod_quotatab:mod_quotatab_sql:mod_readme:mod_auth_pam:mod_tls \
    --with-shared=mod_ldap:mod_sql:mod_sql_mysql
...

#%files postgresql
#%defattr(-, root, root, 0755)
#%dir %{_libexecdir}/proftpd/
#%{_libexecdir}/proftpd/mod_sql_postgres.so

On compile proftpd :
[root@pussycat SPECS]# rpmbuild -bb -with mysql –without ldap proftpd.spec
coffe time…

Et on l’install :
[root@pussycat SPECS]# rpm -Uvh /usr/src/redhat/RPMS/i386/proftpd-1.3.0-5.i386.rpm
Préparation… ########################################### [100%]
1:proftpd ########################################### [100%]
[root@pussycat SPECS]# rpm -Uvh /usr/src/redhat/RPMS/i386/proftpd-mysql-1.3.0-5.i386.rpm
Préparation… ########################################### [100%]
1:proftpd-mysql ########################################### [100%]

astuce pour débugger
# proftpd -nd5 2>&1 >&/root/tmp/proftpd_debug

Maintenant, nous créons une database « ftp » qui contiendra toutes les informations pour proftpd :
[root@pussycat SPECS]# mysql -u root -p

Code:

create database ftp;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost.localdomain' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

gid smallint(6) NOT NULL default '5500',
 members varchar(16) NOT NULL default '',
 KEY groupname (groupname)
 ) TYPE=MyISAM COMMENT='ProFTP group table';
CREATE TABLE ftpquotalimits (
 name varchar(30) default NULL,
 quota_type enum('user','group','class','all') NOT NULL default 'user',
 per_session enum('false','true') NOT NULL default 'false',
 limit_type enum('soft','hard') NOT NULL default 'soft',
 bytes_in_avail int(10) unsigned NOT NULL default '0',
 bytes_out_avail int(10) unsigned NOT NULL default '0',
 bytes_xfer_avail int(10) unsigned NOT NULL default '0',
 files_in_avail int(10) unsigned NOT NULL default '0',
 files_out_avail int(10) unsigned NOT NULL default '0',
 files_xfer_avail int(10) unsigned NOT NULL default '0'
 ) TYPE=MyISAM;
CREATE TABLE ftpquotatallies (
 name varchar(30) NOT NULL default '',
 quota_type enum('user','group','class','all') NOT NULL default 'user',
 bytes_in_used int(10) unsigned NOT NULL default '0',
 bytes_out_used int(10) unsigned NOT NULL default '0',
 bytes_xfer_used int(10) unsigned NOT NULL default '0',
 files_in_used int(10) unsigned NOT NULL default '0',
 files_out_used int(10) unsigned NOT NULL default '0',
 files_xfer_used int(10) unsigned NOT NULL default '0'
 ) TYPE=MyISAM;
CREATE TABLE ftpuser (
 id int(10) unsigned NOT NULL auto_increment,
 userid varchar(32) NOT NULL default '',
 passwd varchar(32) NOT NULL default '',
 uid smallint(6) NOT NULL default '5500',
 gid smallint(6) NOT NULL default '5500',
 homedir varchar(255) NOT NULL default '',
 shell varchar(16) NOT NULL default '/sbin/nologin',
 count int(11) NOT NULL default '0',
 accessed datetime NOT NULL default '0000-00-00 00:00:00',
 modified datetime NOT NULL default '0000-00-00 00:00:00',
 PRIMARY KEY (id),
 UNIQUE KEY userid (userid)
 ) TYPE=MyISAM COMMENT='ProFTP user table';
quit;

On modifie le fichier /etc/proftpd/proftpd.conf comme suit :
(Ne pas oublier de changer le « password » SQL pour se connecter à mysql)

Code:

# This is the ProFTPD configuration file
# $Id: proftpd.conf,v 1.1 2004/02/26 17:54:30 thias Exp $

ServerName			"Crapules FTP Server"
ServerIdent			on "FTP Server ready."
ServerAdmin
emmanuel.vargas@gmail.com
ServerType			standalone
#ServerType			inetd
DefaultServer			on
AccessGrantMsg			"User %u logged in."
#DisplayConnect			/etc/ftpissue

DisplayLogin			/etc/ftpmotd
#DisplayGoAway			/etc/ftpgoaway
DeferWelcome			off

# Use this to excude users from the chroot
DefaultRoot			~ !adm

# Use pam to authenticate (default) and be authoritative

#AuthPAMConfig			proftpd
#AuthOrder			mod_auth_pam.c* mod_auth_unix.c

# Do not perform ident nor DNS lookups (hangs when the port is filtered)
IdentLookups			off
UseReverseDNS			off

# Port 21 is the standard FTP port.

Port				21

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask				022

# For the passive mode
MasqueradeAddress
88.191.11.118
PassivePorts 			60000 60200

# Default to show dot files in directory listings
ListOptions			"-a"

# See Configuration.html for these (here are the default values)
MultilineRFC2228		off

#RootLogin			off
#LoginPasswordPrompt		on
MaxLoginAttempts		33
#MaxClientsPerHost		none
AllowForeignAddress		off	# For FXP

# Allow to resume not only the downloads but the uploads too
AllowRetrieveRestart		on

AllowStoreRestart		on

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works

# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances			20

# Set the user and group that the server normally runs at.

User				nobody
Group				nobody

# Disable sendfile by default since it breaks displaying the download speeds in
# ftptop and ftpwho
UseSendfile			no

# This is where we want to put the pid file

ScoreboardFile			/var/run/proftpd.score

# Normally, we want users to do a few things.
<global>
  AllowOverwrite		yes
  <limit ALL SITE_CHMOD>
    AllowAll
  </limit>
</global>


# Define the log formats
LogFormat			default	"%h %l %u %t \"%r\" %s %b"
LogFormat			auth	"%v [%P] %h %t \"%r\" %s"
LogFormat 			write 	"%h %l %u %t \"%r\" %s %b"


# Autre logs, utilisant en partie, un format sp?cial.
ExtendedLog /var/log/proftpd/access.log READ,WRITE write
ExtendedLog /var/log/proftpd/auth.log AUTH auth
ExtendedLog /var/log/proftpd/ftp_auth.log AUTH

ExtendedLog /var/log/proftpd/cmd_info.log INFO
ExtendedLog /var/log/proftpd/cmd_dir.log DIRS
ExtendedLog /var/log/proftpd/all.log ALL

# Log syst?me.
SystemLog /var/log/proftpd/system.log

SyslogFacility AUTH


# TLS
# Explained at http://www.castaglia.org/proftpd/modules/mod_tls.html
#TLSEngine			on
#TLSRequired			on
#TLSRSACertificateFile		/etc/pki/tls/certs/proftpd.pem

#TLSRSACertificateKeyFile	/etc/pki/tls/certs/proftpd.pem
#TLSCipherSuite			ALL:!ADH:!DES
#TLSOptions			NoCertRequest
#TLSVerifyClient		off
##TLSRenegotiate		ctrl 3600 data 512000 required off timeout 300

#TLSLog				/var/log/proftpd/tls.log



# SQL authentication Dynamic Shared Object (DSO) loading
# See README.DSO and howto/DSO.html for more details.
<ifmodule mod_dso.c>
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
# LoadModule mod_sql_postgres.c
</ifmodule>



# Les mots de passe pour MySQL sont encrypt?s avec CRYPT

SQLAuthTypes Plaintext Crypt
SQLAuthenticate users* groups*

# Pour la connection ? la base
# databasename@host database_user user_password
# pour le mot d epasse, mettre celui choisi pour le grant MySQL :)
SQLConnectInfo ftp@localhost proftpd password

# On indique les champs utilis?s dans la table utilisateurs "usertable"

SQLUserInfo ftpuser userid passwd uid gid homedir shell

# HIdem avec la table des groupes "grouptable"
SQLGroupInfo ftpgroup groupname gid members

# UID et GID de d?part
SQLMinID 500

# On accepte la cr?ation du home directory ? la demande

# si le home directory n'existe pas
SQLHomedirOnDemand on

# Mise en place du compteur d'acc?s

SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser

# Mise ? jour de modified pour chaque upload ou delete
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

# Mise en place des quotas
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

# ATTENTION sur une seule ligne par requ?te !!!!

SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

# Pas de login root :)
RootLogin off

# Pas besoin de shell
RequireValidShell off

Pour détermnier l’ID du group et du user (respectivement 50 et 14 sur fedora):
[root@pussycat ~]# less /etc/passwd |grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@pussycat ~]# less /etc/group |grep ftp
ftp:x:50:

On modifie la bdd en fonction :

Code:

mysql> use ftp
mysql> INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 50, 'ftpuser');
mysql> INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (1, 'test','motdepass', 501, 501, '/var/ftp', '/sbin/nologin', 0, '','');

Sur le fw, on autorise le port 21, et le port 60000 à 60200 (pour le passive mode)

On lance proftpd :
[root@pussycat ~]# /etc/init.d/proftpd restart

Le problème va être qu’a chaque yum update, il va vouloir ecraser le package que nous venons de recompiler.
On exclue donc proftpd de yum :

dans /etc/yum.conf on ajoute:

Code:

exclude=proftpd*

Haut de page

Install de phpmyadmin

[root@pussycat tmp]# cd ~/tmp/; wget http://belnet.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.8.2.tar.bz2

# mv *.tar.bz2 /var/www/html

# cd /var/www/html;bzip2 -dc *.tar.bz2 | tar -xvf –

[root@pussycat html]# rm phpMyAdmin-2.8.2.tar.bz2
[root@pussycat html]# mv phpMyAdmin-2.8.2/ phpmyadmin
emacs /var/www/html/phpmyadmin/libraries/config.default.php
$cfg[‘PmaAbsoluteUri’] = ‘http://88.191.11.118/phpmyadmin’;
$cfg[‘blowfish_secret’] = ‘nimportequoipourvuecesoitlong’;
Under « Server(s) configuration » change « $cfg[‘Servers’][$i][‘auth_type’] = ‘config’; » to « $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’; ».

« Save as.. » « config.default.php » to « ../config.inc.php ».

# yum -y install php-mbstring

[root@pussycat html]# /etc/init.d/httpd restart

On se connecte en http :
http://88.191.11.118/phpmyadmin/

on crée le user ftp que l’on veut …

Haut de page

Mon .emacs

Code:

;; Don't show the GNU splash screen
(setq inhibit-startup-message t)

(if (file-exists-p "/bin/bash")
        (setq explicit-shell-file-name "/bin/bash"))

;; maintenant on ne veut plus la bar de menu

(menu-bar-mode nil)
;; pour la faire revenir M-x menu-bar-mode :)

;;bon la on a pas mal galerer mais bon c'est tellement
;;pratique. L'auto insert permet d'inserer selon l'extension d'un
;;fichier un contenu de fichier statique.

(add-hook 'find-file-hooks 'auto-insert)
(setq auto-insert-directory (expand-file-name "~/.autoinsert/"))
(auto-insert-mode 1)
(define-auto-insert "\\.tex\\'" "autoinsert.tex")


;; on en a marre d'ecrire yes, ou no en entier. Un y ou un n suffit
;; now.
(fset 'yes-or-no-p 'y-or-n-p)

(display-time)                     ;; Pour avoir l'heure dans la barre d'etat
(setq display-time-24hr-format t)  ;; Format 24 heures

(custom-set-faces)

;; pour ouvrir les fichiers compress	s
(auto-compression-mode 1)

; don't automatically add new lines when scrolling down at the bottom
; of a buffer
(setq next-line-add-newlines nil)


;;les beeps enervants d'emacs sont desactives le "t" signifiant "true"
(setq visible-bell t)

;; pour utiliser le format europen pour la calendrier.
(setq european-calendar-style 't)

;; on va dire que les semaines commencent le lundi, et non le
;; dimanche.
(setq calendar--week--start--day 1)

;; Accents...
(standard-display-european t)
(iso-accents-mode t)
(require 'iso-insert)

(set-language-environment 'latin-1)
(set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0)

;; configuration du reperage de phrase
;; ce truc est hyper utile ! je ne comprends pas pourquoi personne ne

;; s'en sert...
;; C-x backspace.
(setq sentence-end "[.?!][]\"')}]*\\($\\| $\\|     \\|  \\| \\)[       \n]*")
(setq sentence-end-double-space nil)

(setq line-number-mode t)
(setq column-number-mode t)


;; un peu de couleur :)
(set-face-foreground 'highlight    "yellow")
;;(set-face-foreground 'modeline    "red")
(set-face-foreground 'modeline     "white")
(set-face-background 'modeline     "DarkMagenta")

;;(set-face-background 'modeline     "lightblue")       ; Ligne en bas du tampon

;; font-lock pour tous les modes majeurs
(global-font-lock-mode 1)
(setq font-lock-maximum-decoration t)

;; highlight a region under X.

(transient-mark-mode t)
;; pour le mini buffer permet de le resizer qd la question depasse une
;; ligne de l'ecran
(resize-minibuffer-mode 1)

;; pour emacs 20.3 il semblerait qu'on utilise celui la pour virer

;; tout lors d'une selection par C-SPC.
(delete-selection-mode t)

;; Automatically turn on auto-fill-mode when editing text files
(add-hook 'text-mode-hook 'turn-on-auto-fill)
;; Auto-fill in all major modes

(setq-default auto-fill-function 'do-auto-fill)
;; on se met en mode Text pour une grande partie des fichiers.
(setq default-major-mode 'text-mode)

;; config html-helper-mode:
(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)

(setq html-helper-do-write-file-hooks t
      html-helper-build-new-buffer t)
(add-hook 'html-helper-load-hook '(lambda () (require 'html-font)))
(add-hook 'html-helper-mode-hook '(lambda () (font-lock-mode 1)))

;; end cfg html-helper-mode

;; datation automatique lors de l'enregistrement d'un fichier HTML
(setq html-helper-do-write-file-hooks t)
(setq html-helper-build-new-buffer t)
(setq tempo-interactive t)

(setq html-helper-never-indent 't)

;; association des fichiers html au mode html
(setcdr (assoc "\\.s?html?\\'" auto-mode-alist) 'html-helper-mode)

;; de la couleur en mode html !
(require 'font-lock)

(font-lock-mode 1)
      (setq font-lock-maximum-decoration 't
         font-lock-background-mode 'light)  ;; ou "dark", selon couleur de fond
      (setq font-lock-face-attributes
         '((font-lock-comment-face "Red4")

         (font-lock-string-face "Green4")
         (font-lock-keyword-face "Orange4")
         (font-lock-function-name-face "Blue4")
         (font-lock-variable-name-face "Blue2")

         (font-lock-type-face "Wheat")
         (font-lock-reference-face "VioletRed4")
         (message-cited-text-face "Blue1")
         (message-header-name-face "Green3")))


;; et on poursuit, vive le lisp
(global-set-key (read-kbd-macro "<f12>") 'font-lock-mode)
(global-set-key (read-kbd-macro "S-</f12><f12>") 'show_face_on_point_name)
;; explication, si on appuie sur F12 ca fontify le buffer ou

;; l'inverse, agit comme une bascule.

;; qd vous recevez un fichier .txt d'une machine dos/windows il est
;; tres enevervant de voir les ^M a chaque fin de ligne, utiliser M-x
;; dos2unix pour vous en debarrasser.

;; dos2unix
(defun dos-unix ()
  (interactive)
    (goto-char (point-min))
      (while (search-forward "\r" nil t) (replace-match "")))

;; c l'inverse du precedent.
;; unix2dos

(defun unix-dos ()
  (interactive)
    (goto-char (point-min))
      (while (search-forward "\n" nil t) (replace-match "\r\n")))

;;caracetere 8 bits sgml
       (setq sgml-mode-hook

       '(lambda () "Defauts pour le mode SGML."
       (load-library "iso-sgml")))

;; Mode sgml.
(setq auto-mode-alist
      (append '(("\.sgml$"  . sgml-mode))
                auto-mode-alist))


;; essai suppl	mentaire.
(setq auto-mode-alist
      (cons '("\\.sgml$" . sgml-mode)  auto-mode-alist))

(setq minibuffer-max-depth nil)

;; ispell
(autoload 'ispell-word "ispell" "Check the spelling of word in buffer." 't)

(autoload 'ispell-region "ispell" "Check the spelling of region." 't)
(autoload 'ispell-buffer "ispell" "Check the spelling of buffer." t)
(global-set-key (read-kbd-macro "M-$") 'ispell-word)

(setq ispell-dictionary "francais"
     ispell-skip-sgml t)
(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checking" t)
(setq flyspell-default-dictionary "francais")


;; Time-stamp quelle galere a faire fonctionner mais que c cool.
;; explication dans un fichier pour garder la derniere date de
;; modification on dispose bien entendu de la commande ls -l du shell
;; unix. Dans votre fichier mettez ceci Time-stamp: <> et entre les

;; crochets lors de votre enregistrement des informations seront mise
;; entre les crochets.
(defun insert-date ()
"Insert date at point."
(interactive)
(insert (format-time-string "%a %b %e, %Y %l:%M %p")))

(global-set-key [f3] 'insert-date)
(add-hook 'write-file-hooks 'time-stamp)
(setq time-stamp-active t)

;;de la couleur pour le mode info
;; (from Andy.Ling@quantel.com
)
(defvar info-font-lock-keywords
  (list
   '("^\\* [^:]+:+" . font-lock-function-name-face)
   '("\\*[Nn]ote\\b[^:]+:+" . font-lock-reference-face)
   '("  \\(Next\\|Prev\\|Up\\):" . font-lock-reference-face))

  "Additional expressions to highlight in Info mode")

(add-hook 'Info-mode-hook
            (lambda ()
            (make-local-variable 'font-lock-defaults)
            (setq font-lock-defaults '(info-font-lock-keywords nil t))))

Rajout du .htaccess sur phpmyadmin

[root@pussycat phpmyadmin]# more /var/www/html/phpmyadmin/.htaccess

Code:


AuthName "Limited access to admin"
AuthUserFile /etc/httpd/conf/.htaccess
AuthGroupFile /dev/null
AuthType Basic

<limit GET POST>
require toto tata
</limit>

[root@pussycat conf]# htpasswd -c /etc/httpd/conf/.htaccess toto
New password:
Re-type new password:
Adding password for user toto
[root@pussycat conf]# htpasswd /etc/httpd/conf/.htaccess tata
New password:
Re-type new password:
Adding password for user tata

Puis modif du
[root@pussycat phpmyadmin]# emacs /etc/httpd/conf/httpd.conf

Code:

    AllowOverride All

Haut de page

httpd logs analyser (awstats)

awstats est un log analyser. Il est par défaut quasi prêt à l’emploi.

[root@pussycat ~]# yum install awstats
[root@pussycat ~]# less /etc/httpd/conf.d/awstats.conf

Code:

#
# Content of this file, with correct values, can be automatically added to
# your Apache server by using the AWStats configure.pl tool.
#

#
# Directives to add to your Apache conf file to allow use of AWStats as a CGI.
# Note that path « /usr/share/awstats/ » must reflect your AWStats install path.
#
Alias /awstatsclasses « /usr/share/awstats/wwwroot/classes/ »
Alias /awstatscss « /usr/share/awstats/wwwroot/css/ »
Alias /awstatsicons « /usr/share/awstats/wwwroot/icon/ »
ScriptAlias /awstats/ « /usr/share/awstats/wwwroot/cgi-bin/ »

#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory « /usr/share/awstats/wwwroot »>
Options None
AllowOverride all
Order allow,deny
Allow from all
</Directory>
# Additional Perl modules
<IfModule mod_env.c>
SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins
</IfModule>

[root@pussycat ~]# /etc/init.d/httpd reload
[root@pussycat ~]# cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.crapules.com.conf
[root@pussycat ~]# emacs /etc/awstats/awstats.crapules.com.conf

Code:

# AWSTATS CONFIGURE FILE 6.5
#—————————————————————————–
# Copy this file into awstats.www.mydomain.conf and edit this new config file
# to setup AWStats (See documentation in docs/ directory).
# The config file must be in /etc/awstats, /usr/local/etc/awstats or /etc (for
# Unix/Linux) or same directory than awstats.pl (Windows, Mac, Unix/Linux…)
# To include an environment variable in any parameter (AWStats will replace
# it with its value when reading it), follow the example:
# Parameter= »__ENVNAME__ »
# Note that environment variable AWSTATS_CURRENT_CONFIG is always defined with
# the config value in an AWStats running session and can be used like others.
#—————————————————————————–
# $Revision: 1.324 $ – $Author: eldy $ – $Date: 2005/10/30 15:56:38 $

#—————————————————————————–
# MAIN SETUP SECTION (Required to make AWStats work)
#—————————————————————————–

# « LogFile » contains the web, ftp or mail server log file to analyze.
# Possible values: A full path, or a relative path from awstats.pl directory.
# Example: « /var/log/apache/access.log »
# Example: « ../logs/mycombinedlog.log »
# You can also use tags in this filename if you need a dynamic file name
# depending on date or time (Replacement is made by AWStats at the beginning
# of its execution). This is available tags :
# %YYYY-n is replaced with 4 digits year we were n hours ago
# %YY-n is replaced with 2 digits year we were n hours ago
# %MM-n is replaced with 2 digits month we were n hours ago
# %MO-n is replaced with 3 letters month we were n hours ago
# %DD-n is replaced with day we were n hours ago
# %HH-n is replaced with hour we were n hours ago
# %NS-n is replaced with number of seconds at 00:00 since 1970
# %WM-n is replaced with the week number in month (1-5)
# %Wm-n is replaced with the week number in month (0-4)
# %WY-n is replaced with the week number in year (01-52)
# %Wy-n is replaced with the week number in year (00-51)
# %DW-n is replaced with the day number in week (1-7, 1=sunday)
# use n=24 if you need (1-7, 1=monday)
# %Dw-n is replaced with the day number in week (0-6, 0=sunday)
# use n=24 if you need (0-6, 0=monday)
# Use 0 for n if you need current year, month, day, hour…
# Example: « /var/log/access_log.%YYYY-0%MM-0%DD-0.log »
# Example: « C:/WINNT/system32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log »
# You can also use a pipe if log file come from a pipe :
# Example: « gzip -d </var/log/apache/access.log.gz | »
# If there is several log files from load balancing servers :
# Example: « /pathtotools/logresolvemerge.pl *.log | »
#
LogFile= »/var/log/httpd/access_log »

# Enter the log file type you want to analyze.
# Possible values:
# W – For a web log file
# S – For a streaming log file
# M – For a mail log file
# F – For a ftp log file
# Example: W
# Default: W
#
LogType=W

# Enter here your log format (Must match your web server config. See setup
# instructions in documentation to know how to configure your web server to
# have the required log format).
# Possible values: 1,2,3,4 or « your_own_personalized_log_format »
# 1 – Apache or Lotus Notes/Domino native combined log format (NCSA combined/XLF/ELF log format)
# 2 – IIS or ISA format (IIS W3C log format). See FAQ-COM115 For ISA.
# 3 – Webstar native log format.
# 4 – Apache or Squid native common log format (NCSA common/CLF log format)
# With LogFormat=4, some features (browsers, os, keywords…) can’t work.
# « your_own_personalized_log_format » = If your log is ftp, mail or other format,
# you must use following keys to define the log format string (See FAQ for
# ftp, mail or exotic web log format examples):
# %host Client hostname or IP address (or Sender host for mail log)
# %host_r Receiver hostname or IP address (for mail log)
# %lognamequot Authenticated login/user with format: « john »
# %logname Authenticated login/user with format: john
# %time1 Date and time with format: [dd/mon/yyyy:hh:mm:ss +0000] or [dd/mon/yyyy:hh:mm:ss]
# %time2 Date and time with format: yyyy-mm-dd hh:mm:ss
# %time3 Date and time with format: Mon dd hh:mm:ss or Mon dd hh:mm:ss yyyy
# %time4 Date and time with unix timestamp format: dddddddddd
# %methodurl Method and URL with format: « GET /index.html HTTP/x.x »
# %methodurlnoprot Method and URL with format: « GET /index.html »
# %method Method with format: GET
# %url URL only with format: /index.html
# %query Query string (used by URLWithQuery option)
# %code Return code status (with format for web log: 999)
# %bytesd Size of document in bytes
# %refererquot Referer page with format: « http://from.com/from.htm »
# %referer Referer page with format: http://from.com/from.htm
# %uabracket User agent with format: [Mozilla/4.0 (compatible, …)]
# %uaquot User agent with format: « Mozilla/4.0 (compatible, …) »
# %ua User agent with format: Mozilla/4.0_(compatible…)
# %gzipin mod_gzip compression input bytes: In:XXX
# %gzipout mod_gzip compression output bytes & ratio: Out:YYY:ZZpct.
# %gzipratio mod_gzip compression ratio: ZZpct.
# %deflateratio mod_deflate compression ratio with format: (ZZ)
# %email EMail sender (for mail log)
# %email_r EMail receiver (for mail log)
# %virtualname Web sever virtual hostname. Use this tag when same log
# contains data of several virtual web servers. AWStats
# will discard records not in SiteDomain nor HostAliases
# %cluster If log file is provided from several computers (merged by
# logresolvemerge.pl), use this to define cluster id field.
# %extraX Another field that you plan to use for building a
# personalized report with ExtraSection feature (See later).
# If your log format has some fields not included in this list, use:
# %other Means another not used field
# %otherquot Means another not used double quoted field
#
# Examples for Apache combined logs (following two examples are equivalent):
# LogFormat = 1
# LogFormat = « %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot »
#
# Example for IIS:
# LogFormat = 2
#
LogFormat=1

# If your log field’s separator is not a space, you can change this parameter.
# This parameter is not used if LogFormat is a predefined value (1,2,3,4)
# Backslash can be used as escape character.
# Example:  »  »
# Example: « \t »
# Example: « \| »
# Example: « , »
# Default:  »  »
#
LogSeparator= »  »

# « SiteDomain » must contain the main domain name, or the main intranet web
# server name, used to reach the web site.
# If you share the same log file for several virtual web servers, this
# parameter is used to tell AWStats to filter record that contains records for
# this virtual host name only (So check that this virtual hostname can be
# found in your log file and use a personalized log format that include the
# %virtualname tag).
# But for multi hosting a better solution is to have one log file for each
# virtual web server. In this case, this parameter is only used to generate
# full URL’s links when ShowLinksOnUrl option is set to 1.
# If analysing mail log, enter here the domain name of mail server.
# Example: « myintranetserver »
# Example: « www.domain.com »
# Example: « ftp.domain.com »
# Example: « domain.com »
#
SiteDomain= »www.crapules.com »

# Enter here all other possible domain names, addresses or virtual host
# aliases someone can use to access your site. Try to keep only the minimum
# number of possible names/addresses to have the best performances.
# You can repeat the « SiteDomain » value in this list.
# This parameter is used to analyze referer field in log file and to help
# AWStats to know if a referer URL is a local URL of same site or an URL of
# another site.
# Note: Use space between each value.
# Note: You can use regular expression values writing value with REGEX[value].
# Note: You can also use @/mypath/myfile if list of aliases are in a file.
# Example: « www.myserver.com localhost 127.0.0.1 REGEX[mydomain\.(net|org)$] »
#
HostAliases= »localhost 127.0.0.1 sd-100.dedibox.fr www.crapules.com »

# If you want to have hosts reported by name instead of ip address, AWStats
# need to make reverse DNS lookups (if not already done in your log file).
# With DNSLookup to 0, all hosts will be reported by their IP addresses and
# not by the full hostname of visitors (except if names are already available
# in log file).
# If you want/need to set DNSLookup to 1, don’t forget that this will reduce
# dramatically AWStats update process speed. Do not use on large web sites.
# Note: Reverse DNS lookup is done on IPv4 only (Enable ipv6 plugin for IPv6).
# Note: Result of DNS Lookup can be used to build the Country report. However
# it is highly recommanded to enable the plugin ‘geoipfree’ or ‘geoip’ to
# have an accurate Country report with no need of DNS Lookup.
# Possible values:
# 0 – No DNS Lookup
# 1 – DNS Lookup is fully enabled
# 2 – DNS Lookup is made only from static DNS cache file (if it exists)
# Default: 2
#
DNSLookup=1

# When AWStats updates its statistics, it stores results of its analysis in
# files (AWStats database). All those files are written in the directory
# defined by the « DirData » parameter. Set this value to the directory where
# you want AWStats to save its database and working files into.
# Warning: If you want to be able to use the « AllowToUpdateStatsFromBrowser »
# feature (see later), you need « Write » permissions by web server user on this
# directory (and « Modify » for Windows NTFS file systems).
# Example: « /var/lib/awstats »
# Example: « ../data »
# Example: « C:/awstats_data_dir »
# Default: « . » (means same directory as awstats.pl)
#
DirData= »/var/lib/awstats »

# Relative or absolute web URL of your awstats cgi-bin directory.
# This parameter is used only when AWStats is run from command line
# with -output option (to generate links in HTML reported page).
# Example: « /awstats »
# Default: « /cgi-bin » (means awstats.pl is in « /yourwwwroot/cgi-bin »)
#
DirCgi= »/awstats »

# Relative or absolute web URL of your awstats icon directory.
# If you build static reports (« … -output > outputpath/output.html »), enter
# path of icon directory relative to the output directory ‘outputpath’.
# Example: « /awstatsicons »
# Example: « ../icon »
# Default: « /icon » (means you must copy icon directories in « /mywwwroot/icon »)
#
DirIcons= »/awstatsicons »

# When this parameter is set to 1, AWStats add a button on report page to
# allow to « update » statistics from a web browser. Warning, when « update » is
# made from a browser, AWStats is ran as a CGI by the web server user defined
# in your web server (user « nobody » by default with Apache, « IUSR_XXX » with
# IIS), so the « DirData » directory and all already existing history files
# awstatsMMYYYY[.xxx].txt must be writable by this user. Change permissions if
# necessary to « Read/Write » (and « Modify » for Windows NTFS file systems).
# Warning: Update process can be long so you might experience « time out »
# browser errors if you don’t launch AWStats enough frequently.
# When set to 0, update is only made when AWStats is ran from the command
# line interface (or a task scheduler).
# Possible values: 0 or 1
# Default: 0
#
AllowToUpdateStatsFromBrowser=0

# AWStats save and sort its database on a month basis, this allows to build
# build a report quickly. However, if you choose the -month=all from command
# line or value ‘-Year-‘ from CGI combo form to have a report for all year,
# AWStats needs to reload all data for full year, and resort them completely,
# requiring a large amount of time, memory and CPU. This might be a problem
# for web hosting providers that offer AWStats for large sites, on shared
# servers, to non CPU cautious customers.
# For this reason, the ‘full year’ is only enabled on Command Line by default.
# You can change this by setting this parameter to 0, 1, 2 or 3.
# Possible values:
# 0 – Never allowed
# 1 – Allowed on CLI only, -Year- value in combo is not visible
# 2 – Allowed on CLI only, -Year- value in combo is visible but not allowed
# 3 – Possible on CLI and CGI
# Default: 2
#
AllowFullYearView=2

#—————————————————————————–
# OPTIONAL SETUP SECTION (Not required but increase AWStats features)
#—————————————————————————–

# When the update process run, AWStats can set a lock file in TEMP or TMP
# directory. This lock is to avoid to have 2 update processes running at the
# same time to prevent unknown conflicts problems and avoid DoS attacks when
# AllowToUpdateStatsFromBrowser is set to 1.
# Because, when you use lock file, you can experience sometimes problems in
# lock file not correctly removed (killed process for example requires that
# you remove the file manualy), this option is not enabled by default (Do
# not enable this option with no console server access).
# Change : Effective immediatly
# Possible values: 0 or 1
# Default: 0
#
EnableLockForUpdate=1

# AWStats can do reverse DNS lookups through a static DNS cache file that was
# previously created manually. If no path is given in static DNS cache file
# name, AWStats will search DirData directory. This file is never changed.
# This option is not used if DNSLookup=0.
# Note: DNS cache file format is ‘minsince1970 ipaddress resolved_hostname’
# or just ‘ipaddress resolved_hostname’
# Change : Effective for new updates only
# Example: « /mydnscachedir/dnscache »
# Default: « dnscache.txt »
#
DNSStaticCacheFile= »dnscache.txt »

# AWStats can do reverse DNS lookups through a DNS cache file that was created
# by a previous run of AWStats. This file is erased and recreated after each
# statistics update process. You don’t need to create and/or edit it.
# AWStats will read and save this file in DirData directory.
# This option is used only if DNSLookup=1.
# Note: If a DNSStaticCacheFile is available, AWStats will check for DNS
# lookup in DNSLastUpdateCacheFile after checking into DNSStaticCacheFile.
# Change : Effective for new updates only
# Example: « /mydnscachedir/dnscachelastupdate »
# Default: « dnscachelastupdate.txt »
#
DNSLastUpdateCacheFile= »dnscachelastupdate.txt »

# You can specify specific IP addresses that should NOT be looked up in DNS.
# This option is used only if DNSLookup=1.
# Note: Use space between each value.
# Note: You can use regular expression values writing value with REGEX[value].
# Change : Effective for new updates only
# Example: « 123.123.123.123 REGEX[^192\.168\.] »
# Default: «  »
#
SkipDNSLookupFor= » »

# The following two parameters allow you to protect a config file from being
# read by AWStats when called from a browser if web user has not been
# authenticated. Your AWStats program must be in a web protected « realm » (With
# Apache, you can use .htaccess files to do so. With other web servers, see
# your server setup manual).
# Change : Effective immediatly
# Possible values: 0 or 1
# Default: 0
#
AllowAccessFromWebToAuthenticatedUsersOnly=0

# This parameter give the list of all authorized authenticated users to view
# statistics for this domain/config file. This parameter is used only if
# AllowAccessFromWebToAuthenticatedUsersOnly is set to 1.
# Change : Effective immediatly
# Example: « user1 user2 »
# Example: « __REMOTE_USER__ »
# Default: «  »
#
AllowAccessFromWebToFollowingAuthenticatedUsers= » »

# When this parameter is define to something, the IP address of the user that
# read its statistics from a browser (when AWStats is used as a CGI) is
# checked and must match one of the IP address values or ranges.
# Change : Effective immediatly
# Example: « 127.0.0.1 123.123.123.1-123.123.123.255 »
# Default: «  »
#
AllowAccessFromWebToFollowingIPAddresses= » »

# If the « DirData » directory (see above) does not exists, AWStats return an
# error. However, you can ask AWStats to create it.
# This option can be used by some Web Hosting Providers that has defined a
# dynamic value for DirData (for example DirData= »/home/__REMOTE_USER__ ») and
# don’t want to have to create a new directory each time they add a new user.
# Change : Effective immediatly
# Possible values: 0 or 1
# Default: 0
#
CreateDirDataIfNotExists=0

# You can choose in which format the Awstats history database is saved.
# Note: Using « xml » format make AWStats building database files three times
# larger than using « text » format.
# Change : Database format is switched after next update
# Possible values: text or xml
# Default: text
#
BuildHistoryFormat=text

# If you prefer having the report output pages be built as XML compliant pages
# instead of simple HTML pages, you can set this to ‘xhtml’ (May not works
# properly with old browsers).
# Change : Effective immediatly
# Possible values: html or xhtml
# Default: html
#
BuildReportFormat=html

# AWStats databases can be updated from command line of from a browser (when
# used as a cgi program). So AWStats database files need write permission
# for both command line user and default web server user (nobody for Unix,
# IUSR_xxx for IIS/Windows,…).
# To avoid permission’s problems between update process (run by an admin user)
# and CGI process (ran by a low level user), AWStats can save its database
# files with read and write permissions for everyone.
# By default, AWStats keep default user permissions on updated files. If you
# set AllowToUpdateStatsFromBrowser to 1, you can change this parameter to 1.
# Change : Effective for new updates only
# Possible values: 0 or 1
# Default: 0
#
SaveDatabaseFilesWithPermissionsForEveryone=0

# AWStats can purge log file, after analyzing it. Note that AWStats is able
# to detect new lines in a log file, to process only them, so you can launch
# AWStats as often as you want, even with this parameter to 0.
# With 0, no purge is made, so you must use a scheduled task or a web server
# that make this purge frequently.
# With 1, the purge of the log file is made each time AWStats update is ran.
# This parameter doesn’t work with IIS (This web server doesn’t let its log
# file to be purged).
# Change : Effective for new updates only
# Possible values: 0 or 1
# Default: 0
#
PurgeLogFile=0

# When PurgeLogFile is setup to 1, AWStats will clean your log file after
# processing it. You can however keep an archive file of all processed log
# records by setting this parameter (For example if you want to use another
# log analyzer). The archived log file is saved in « DirData » with name
# awstats_archive.configname[.suffix].log
# This parameter is not used if PurgeLogFile=0
# Change : Effective for new updates only
# Possible values: 0, 1, or tags (See LogFile parameter) for suffix
# Example: 1
# Example: %YYYY%MM%DD
# Default: 0
#
ArchiveLogRecords=0

# Each time you run the update process, AWStats overwrite the ‘historic file’
# for the month (awstatsMMYYYY[.*].txt) with the updated one.
# When write errors occurs (IO, disk full,…), this historic file can be
# corrupted and must be deleted. Because this file contains information of all
# past processed log files, you will loose old stats if removed. So you can
# ask AWStats to save last non corrupted file in a .bak file. This file is
# stored in « DirData » directory with other ‘historic files’.
# Change : Effective for new updates only
# Possible values: 0 or 1
# Default: 0
#
KeepBackupOfHistoricFiles=0

# Default index page name for your web server.
# Change : Effective for new updates only
# Example: « index.php index.html default.html »
# Default: « index.html »
#
DefaultFile= »index.html »

# Do not include access from clients that match following criteria.
# If your log file contains IP adresses in host field, you must enter here
# matching IP adresses criteria.
# If DNS lookup is already done in your log file, you must enter here hostname
# criteria, else enter ip address criteria.
# The opposite parameter of « SkipHosts » is « OnlyHosts ».
# Note: Use space between each value. This parameter is not case sensitive.
# Note: You can use regular expression values writing value with REGEX[value].
# Change : Effective for new updates only
# Example: « 127.0.0.1 REGEX[^192\.168\.] REGEX[^10\.] »
# Example: « localhost REGEX[^.*\.localdomain$] »
# Default: «  »
#
SkipHosts= »127.0.0.1″

# Do not include access from clients with a user agent that match following
# criteria. If you want to exclude a robot, you should update the robots.pm
# file instead of this parameter.
# The opposite parameter of « SkipUserAgents » is « OnlyUserAgents ».
# Note: Use space between each value. This parameter is not case sensitive.
# Note: You can use regular expression values writing value with REGEX[value].
# Change : Effective for new updates only
# Example: « konqueror REGEX[ua_test_v\d\.\d] »
# Default: «  »
#
SkipUserAgents= » »

# Use SkipFiles to ignore access to URLs that match one of following entries.
# You can enter a list of not important URLs (like framed menus, hidden pages,
# etc…) to exclude them from statistics. You must enter here exact relative
# URL as found in log file, or a matching REGEX value. Check apply on URL with
# all its query paramaters.
# For example, to ignore /badpage.php, just add « /badpage.php ». To ignore all
# pages in a particular directory, add « REGEX[^\/directorytoexclude] ».
# The opposite parameter of « SkipFiles » is « OnlyFiles ».
# Note: Use space between each value. This parameter is or not case sensitive
# depending on URLNotCaseSensitive parameter.
# Note: You can use regular expression values writing value with REGEX[value].
# Change : Effective for new updates only
# Example: « /badpage.php /page.php?param=x REGEX[^\/excludedirectory] »
# Default: «  »
#
SkipFiles= » »

# Use SkipReferrersBlackList if you want to exclude records coming from a SPAM
# referrer. Parameter must receive a local file name containing rules applied
# on referrer field. If parameter is empty, no filter is applied.
# An example of such a file is available in lib/blacklist.txt
# You can download updated version at http://www.jayallen.org/comment_spam/
# Change : Effective for new updates only
# Example: « /mylibpath/blacklist.txt »
# Default: «  »
#
# WARNING!! Using this feature make AWStats running very slower (5 times slower
# with black list file provided with AWStats !
#
SkipReferrersBlackList= » »

# Include in stats, only accesses from hosts that match one of following
# entries. For example, if you want AWStats to filter access to keep only
# stats for visits from particular hosts, you can add those hosts names in
# this parameter.
# If DNS lookup is already done in your log file, you must enter here hostname
# criteria, else enter ip address criteria.
# The opposite parameter of « OnlyHosts » is « SkipHosts ».
# Note: Use space between each value. This parameter is not case sensitive.
# Note: You can use regular expression values writing value with REGEX[value].
# Change : Effective for new updates only
# Example: « 127.0.0.1 REGEX[^192\.168\.] REGEX[^10\.] »
# Default: «  »
#
OnlyHosts= » »

# Include in stats, only accesses from user agent that match one of following
# entries. For example, if you want AWStats to filter access to keep only
# stats for visits from particular browsers, you can add their user agents
# string in this parameter.
# The opposite parameter of « OnlyUserAgents » is « SkipUserAgents ».
# Note: Use space between each value. This parameter is not case sensitive.
# Note: You can use regular expression values writing value with REGEX[value].
# Change : Effective for new updates only
# Example: « msie »
# Default: «  »
#
OnlyUserAgents= » »

# Include in stats, only accesses to URLs that match one of following entries.
# For example, if you want AWStats to filter access to keep only stats that
# match a particular string, like a particular directory, you can add this
# directory name in this parameter.
# The opposite parameter of « OnlyFiles » is « SkipFiles ».
# Note: Use space between each value. This parameter is or not case sensitive
# depending on URLNotCaseSensitive parameter.
# Note: You can use regular expression values writing value with REGEX[value].
# Change : Effective for new updates only
# Example: « REGEX[marketing_directory] REGEX[office\/.*\.(csv|sxw)$] »
# Default: «  »
#
OnlyFiles= » »

# Add here a list of kind of url (file extension) that must be counted as
# « Hit only » and not as a « Hit » and « Page/Download ». You can set here all
# images extensions as they are hit downloaded that must be counted but they
# are not viewed pages. URLs with such extensions are not included in the TOP
# Pages/URL report.
# Note: If you want to exclude particular URLs from stats (No Pages and no
# Hits reported), you must use SkipFiles parameter.
# Change : Effective for new updates only
# Example: « css js class gif jpg jpeg png bmp ico zip arj gz z wav mp3 wma mpg »
# Example: «  »
# Default: « css js class gif jpg jpeg png bmp ico »
#
NotPageList= »css js class gif jpg jpeg png bmp ico swf »

# By default, AWStats considers that records found in web log file are
# successful hits if HTTP code returned by server is a valid HTTP code (200
# and 304). Any other code are reported in HTTP status chart.
# Note that HTTP ‘control codes’, like redirection (302, 305) are not added by
# default in this list as they are not pages seen by a visitor but are
# protocol exchange codes to tell the browser to ask another page. Because
# this other page will be counted and seen with a 200 or 304 code, if you
# add such codes, you will have 2 pages viewed reported for only one in facts.
# Change : Effective for new updates only
# Example: « 200 304 302 305 »
# Default: « 200 304″
#
ValidHTTPCodes= »200 304 »

# By default, AWStats considers that records found in mail log file are
# successful mail transfers if field that represent return code in analyzed
# log file match values defined by this parameter.
# Change : Effective for new updates only
# Example: « 1 250 200 »
# Default: « 1 250″
#
ValidSMTPCodes= »1 250 »

# Some web servers on some Operating systems (IIS-Windows) considers that a
# login with same value but different case are the same login. To tell AWStats
# to also considers them as one, set this parameter to 1.
# Change : Effective for new updates only
# Possible values: 0 or 1
# Default: 0
#
AuthenticatedUsersNotCaseSensitive=0

# Some web servers on some Operating systems (IIS-Windows) considers that two
# URLs with same value but different case are the same URL. To tell AWStats to
# also considers them as one, set this parameter to 1.
# Change : Effective for new updates only
# Possible values: 0 or 1
# Default: 0
#
URLNotCaseSensitive=0

# Keep or remove the anchor string you can find in some URLs.
# Change : Effective for new updates only
# Possible values: 0 or 1
# Default: 0
#
URLWithAnchor=0

# In URL links, « ? » char is used to add parameter’s list in URLs. Syntax is:
# /mypage.html?param1=value1&param2=value2
# However, some servers/sites use also others chars to isolate dynamic part of
# their URLs. You can complete this list with all such characters.
# Change : Effective for new updates only
# Example: « ?;, »
# Default: « ?; »
#
URLQuerySeparators= »?; »

# Keep or remove the query string to the URL in the statistics for individual
# pages. This is primarily used to differentiate between the URLs of dynamic
# pages. If set to 1, mypage.html?id=x and mypage.html?id=y are counted as two
# different pages.
# Warning, when set to 1, memory required to run AWStats is dramatically
# increased if you have a lot of changing URLs (for example URLs with a random
# id inside). Such web sites should not set this option to 1 or use seriously
# the next parameter URLWithQueryWithOnlyFollowingParameters (or eventually
# URLWithQueryWithoutFollowingParameters).
# Change : Effective for new updates only
# Possible values:
# 0 – URLs are cleaned from the query string (ie: « /mypage.html »)
# 1 – Full URL with query string is used (ie: « /mypage.html?p=x&q=y »)
# Default: 0
#
URLWithQuery=0

# When URLWithQuery is on, you will get the full URL with all parameters in
# URL reports. But among thoose parameters, sometimes you don’t need a
# particular parameter because it does not identify the page or because it’s
# a random ID changing for each access even if URL points to same page. In
# such cases, it is higly recommanded to ask AWStats to keep only parameters
# you need (if you know them) before counting, manipulating and storing URL.
# Enter here list of wanted parameters. For example, with « param », one hit on
# /mypage.cgi?param=abc&id=Yo4UomP9d and /mypage.cgi?param=abc&id=Mu8fdxl3r
# will be reported as 2 hits on /mypage.cgi?param=abc
# This parameter is not used when URLWithQuery is 0 and can’t be used with
# URLWithQueryWithoutFollowingParameters.
# Change : Effective for new updates only
# Example: « param »
# Default: «  »
#
URLWithQueryWithOnlyFollowingParameters= » »

# When URLWithQuery is on, you will get the full URL with all parameters in
# URL reports. But among thoose parameters, sometimes you don’t need a
# particular parameter because it does not identify the page or because it’s
# a random ID changing for each access even if URL points to same page. In
# such cases, it is higly recommanded to ask AWStats to remove such parameters
# from the URL before counting, manipulating and storing URL. Enter here list
# of all non wanted parameters. For example if you enter « id », one hit on
# /mypage.cgi?param=abc&id=Yo4UomP9d and /mypage.cgi?param=abc&id=Mu8fdxl3r
# will be reported as 2 hits on /mypage.cgi?param=abc
# This parameter is not used when URLWithQuery is 0 and can’t be used with
# URLWithQueryWithOnlyFollowingParameters.
# Change : Effective for new updates only
# Example: « PHPSESSID jsessionid »
# Default: «  »
#
URLWithQueryWithoutFollowingParameters= » »

# Keep or remove the query string to the referrer URL in the statistics for
# external referrer pages. This is used to differentiate between the URLs of
# dynamic referrer pages. If set to 1, mypage.html?id=x and mypage.html?id=y
# are counted as two different referrer pages.
# Change : Effective for new updates only
# Possible values:
# 0 – Referrer URLs are cleaned from the query string (ie: « /mypage.html »)
# 1 – Full URL with query string is used (ie: « /mypage.html?p=x&q=y »)
# Default: 0
#
URLReferrerWithQuery=0

# AWStats can detect setup problems or show you important informations to have
# a better use. Keep this to 1, except if AWStats says you can change it.
# Change : Effective immediatly
# Possible values: 0 or 1
# Default: 1
#
WarningMessages=1

# When an error occurs, AWStats output a message related to errors. If you
# want (in most cases for security reasons) to have no error messages, you
# can set this parameter to your personalized generic message.
# Change : Effective immediatly
# Example: « An error occured. Contact your Administrator »
# Default: «  »
#
ErrorMessages= » »

# AWStat can be run with debug=x parameter to output various informations
# to help in debugging or solving troubles. If you want to allow this (not
# enabled by default for security reasons), set this parameter to 0.
# Change : Effective immediatly
# Possible values: 0 or 1
# Default: 0
#
DebugMessages=0

# To help you to detect if your log format is good, AWStats report an error
# if all the first NbOfLinesForCorruptedLog lines have a format that does not
# match the LogFormat parameter.
# However, some worm virus attack on your web server can result in a very high
# number of corrupted lines in your log. So if you experience awstats stop
# because of bad virus records at the beginning of your log file, you can
# increase this parameter (very rare).
# Change : Effective for new updates only
# Default: 50
#
NbOfLinesForCorruptedLog=50

# For some particular integration needs, you may want to have CGI links to
# point to another script than awstats.pl.
# Use the name of this script in WrapperScript parameter.
# Change : Effective immediatly
# Example: « awstatslauncher.pl »
# Default: «  »
#
WrapperScript= » »

# DecodeUA must be set to 1 if you use Roxen web server. This server converts
# all spaces in user agent field into %20. This make the AWStats robots, os
# and browsers detection fail in some cases. Just change it to 1 if and only
# if your web server is Roxen.
# Change : Effective for new updates only
# Possible values: 0 or 1
# Default: 0
#
DecodeUA=0

# MiscTrackerUrl can be used to make AWStats able to detect some miscellanous
# things, that can not be tracked on other way, like:
# – Javascript disabled
# – Java enabled
# – Screen size
# – Color depth
# – Macromedia Director plugin
# – Macromedia Shockwave plugin
# – Realplayer G2 plugin
# – QuickTime plugin
# – Mediaplayer plugin
# – Acrobat PDF plugin
# To enable all this features, you must copy the awstats_misc_tracker.js file
# into a /js/ directory stored in your web document root and add the following
# HTML code at the end of your index page (but before </BODY>) :
#
# <script language=javascript src= »/js/awstats_misc_tracker.js »></script>
# <noscript><img src= »/js/awstats_misc_tracker.js?nojs=y » height=0 width=0 border=0 style= »display: none »></noscript>
#
# If code is not added in index page, all those detection capabilities will be
# disabled. You must also check that ShowScreenSizeStats and ShowMiscStats
# parameters are set to 1 to make results appear in AWStats report page.
# If you want to use another directory than /js/, you must also change the
# awstatsmisctrackerurl variable into the awstats_misc_tracker.js file.
# Change : Effective for new updates only.
# Possible value: URL of javascript tracker file added in your HTML code.
# Default: « /js/awstats_misc_tracker.js »
#
MiscTrackerUrl= »/js/awstats_misc_tracker.js »

#—————————————————————————–
# OPTIONAL ACCURACY SETUP SECTION (Not required but increase AWStats features)
#—————————————————————————–

# Following values allows you to define accuracy of AWStats entities (robots,
# browsers, os, referers, file types) detection.
# It might be a good idea for large web sites or ISP that provides AWStats to
# high number of customers, to set this parameter to 1 (or 0), instead of 2.
# Possible values:
# 0 = No detection,
# 1 = Medium/Standard detection
# 2 = Full detection
# Change : Effective for new updates only
# Note : LevelForBrowsersDetection can also accept value « allphones ». This
# enable detailed detection of phone/pda browsers.
# Default: 2 (0 for LevelForWormsDetection)
#
LevelForBrowsersDetection=2 [root@pussycat ~]# 0 disables Browsers detection.
[root@pussycat ~]# 2 reduces AWStats speed by 2%
[root@pussycat ~]# allphones reduces AWStats speed by 5%
LevelForOSDetection=2 [root@pussycat ~]# 0 disables OS detection.
[root@pussycat ~]# 2 reduces AWStats speed by 3%
LevelForRefererAnalyze=2 [root@pussycat ~]# 0 disables Origin detection.
[root@pussycat ~]# 2 reduces AWStats speed by 14%
LevelForRobotsDetection=2 [root@pussycat ~]# 0 disables Robots detection.
[root@pussycat ~]# 2 reduces AWStats speed by 2.5%
LevelForSearchEnginesDetection=2 [root@pussycat ~]# 0 disables Search engines detection.
[root@pussycat ~]# 2 reduces AWStats speed by 9%
LevelForKeywordsDetection=2 [root@pussycat ~]# 0 disables Keyphrases/Keywords detection.
[root@pussycat ~]# 2 reduces AWStats speed by 1%
LevelForFileTypesDetection=2 [root@pussycat ~]# 0 disables File types detection.
[root@pussycat ~]# 2 reduces AWStats speed by 1%
LevelForWormsDetection=0 [root@pussycat ~]# 0 disables Worms detection.
[root@pussycat ~]# 2 reduces AWStats speed by 15%

#—————————————————————————–
# OPTIONAL APPEARANCE SETUP SECTION (Not required but increase AWStats features)
#—————————————————————————–

# When you use AWStats as a CGI, you can have the reports shown in HTML frames.
# Frames are only available for report viewed dynamically. When you build
# pages from command line, this option is not used and no frames are built.
# Possible values: 0 or 1
# Default: 1
#
UseFramesWhenCGI=1

# This parameter ask your browser to open detailed reports into a different
# window than the main page.
# Possible values:
# 0 – Open all in same browser window
# 1 – Open detailed reports in another window except if using frames
# 2 – Open always in a different window even if reports are framed
# Default: 1
#
DetailedReportsOnNewWindows=1

# You can add, in the HTML report page, a cache lifetime (in seconds) that
# will be returned to browser in HTTP header answer by server.
# This parameter is not used when report are built with -staticlinks option.
# Example: 3600
# Default: 0
#
Expires=3600

# To avoid too large web pages, you can ask AWStats to limit number of rows of
# all reported charts to this number when no other limit apply.
# Default: 1000
#
MaxRowsInHTMLOutput=2000

# Set your primary language (ISO-639-1 language codes).
# Possible value:
# Albanian=al, Bosnian=ba, Bulgarian=bg, Catalan=ca,
# Chinese (Taiwan)=tw, Chinese (Simpliefied)=cn, Croatian=hr, Czech=cz,
# Danish=dk, Dutch=nl, English=en, Estonian=et, Euskara=eu, Finnish=fi,
# French=fr, Galician=gl, German=de, Greek=gr, Hebrew=he, Hungarian=hu,
# Icelandic=is, Indonesian=id, Italian=it, Japanese=jp, Korean=ko,
# Latvian=lv, Norwegian (Nynorsk)=nn, Norwegian (Bokmal)=nb, Polish=pl,
# Portuguese=pt, Portuguese (Brazilian)=br, Romanian=ro, Russian=ru,
# Serbian=sr, Slovak=sk, Slovenian=si, Spanish=es, Swedish=se, Turkish=tr,
# Ukrainian=ua, Welsh=cy.
# First available language accepted by browser=auto
# Default: « auto »
#
Lang= »auto »

# Set the location of language files.
# Example: « /usr/share/awstats/lang »
# Default: « ./lang » (means lang directory is in same location than awstats.pl)
#
DirLang= »./lang »

# Show menu header with reports’ links
# Possible values: 0 or 1
# Default: 1
#
ShowMenu=1

# You choose here which reports you want to see in the main page and what you
# want to see in those reports.
# Possible values:
# 0 – Report is not shown at all
# 1 – Report is shown in main page with an entry in menu and default columns
# XYZ – Report shows column informations defined by code X,Y,Z…
# X,Y,Z… are code letters among the following:
# U = Unique visitors
# V = Visits
# P = Number of pages
# H = Number of hits (or mails)
# B = Bandwith (or total mail size for mail logs)
# L = Last access date
# E = Entry pages
# X = Exit pages
# C = Web compression (mod_gzip,mod_deflate)
# M = Average mail size (mail logs)
#

# Show monthly summary
# Context: Web, Streaming, Mail, Ftp
# Default: UVPHB, Possible column codes: UVPHB
ShowSummary=UVPHB

# Show monthly chart
# Context: Web, Streaming, Mail, Ftp
# Default: UVPHB, Possible column codes: UVPHB
ShowMonthStats=UVPHB

# Show days of month chart
# Context: Web, Streaming, Mail, Ftp
# Default: VPHB, Possible column codes: VPHB
ShowDaysOfMonthStats=VPHB

# Show days of week chart
# Context: Web, Streaming, Mail, Ftp
# Default: PHB, Possible column codes: PHB
ShowDaysOfWeekStats=PHB

# Show hourly chart
# Context: Web, Streaming, Mail, Ftp
# Default: PHB, Possible column codes: PHB
ShowHoursStats=PHB

# Show domains/country chart
# Context: Web, Streaming, Mail, Ftp
# Default: PHB, Possible column codes: PHB
ShowDomainsStats=PHB

# Show hosts chart
# Context: Web, Streaming, Mail, Ftp
# Default: PHBL, Possible column codes: PHBL
ShowHostsStats=PHBL

# Show authenticated users chart
# Context: Web, Streaming, Ftp
# Default: 0, Possible column codes: PHBL
ShowAuthenticatedUsers=0

# Show robots chart
# Context: Web, Streaming
# Default: HBL, Possible column codes: HBL
ShowRobotsStats=HBL

# Show worms chart
# Context: Web, Streaming
# Default: 0 (If set to other than 0, see also LevelForWormsDetection), Possible column codes: HBL
ShowWormsStats=0

# Show email senders chart (For use when analyzing mail log files)
# Context: Mail
# Default: 0, Possible column codes: HBML
ShowEMailSenders=0

# Show email receivers chart (For use when analyzing mail log files)
# Context: Mail
# Default: 0, Possible column codes: HBML
ShowEMailReceivers=0

# Show session chart
# Context: Web, Streaming, Ftp
# Default: 1, Possible column codes: None
ShowSessionsStats=1

# Show pages-url chart.
# Context: Web, Streaming, Ftp
# Default: PBEX, Possible column codes: PBEX
ShowPagesStats=PBEX

# Show file types chart.
# Context: Web, Streaming, Ftp
# Default: HB, Possible column codes: HBC
ShowFileTypesStats=HB

# Show file size chart (Not yet available)
# Context: Web, Streaming, Mail, Ftp
# Default: 1, Possible column codes: None
ShowFileSizesStats=0

# Show operating systems chart
# Context: Web, Streaming, Ftp
# Default: 1, Possible column codes: None
ShowOSStats=1

# Show browsers chart
# Context: Web, Streaming
# Default: 1, Possible column codes: None
ShowBrowsersStats=1

# Show screen size chart
# Context: Web, Streaming
# Default: 0 (If set to 1, see also MiscTrackerUrl), Possible column codes: None
ShowScreenSizeStats=0

# Show origin chart
# Context: Web, Streaming
# Default: PH, Possible column codes: PH
ShowOriginStats=PH

# Show keyphrases chart
# Context: Web, Streaming
# Default: 1, Possible column codes: None
ShowKeyphrasesStats=1

# Show keywords chart
# Context: Web, Streaming
# Default: 1, Possible column codes: None
ShowKeywordsStats=1

# Show misc chart
# Context: Web, Streaming
# Default: a (See also MiscTrackerUrl parameter), Possible column codes: anjdfrqwp
ShowMiscStats=a

# Show http errors chart
# Context: Web, Streaming
# Default: 1, Possible column codes: None
ShowHTTPErrorsStats=1

# Show smtp errors chart (For use when analyzing mail log files)
# Context: Mail
# Default: 0, Possible column codes: None
ShowSMTPErrorsStats=0

# Show the cluster report (Your LogFormat must contains the %cluster tag)
# Context: Web, Streaming, Ftp
# Default: 0, Possible column codes: PHB
ShowClusterStats=0

# Some graphical reports are followed by the data array of values.
# If you don’t want this array (to reduce report size for example), you can
# set thoose options to 0.
# Possible values: 0 or 1
# Default: 1
#
# Data array values for the ShowMonthStats report
AddDataArrayMonthStats=1
# Data array values for the ShowDaysOfMonthStats report
AddDataArrayShowDaysOfMonthStats=1
# Data array values for the ShowDaysOfWeekStats report
AddDataArrayShowDaysOfWeekStats=1
# Data array values for the ShowHoursStats report
AddDataArrayShowHoursStats=1

# In the Origin chart, you have stats on where your hits came from. You can
# includes hits on pages that comes from pages of same sites in this chart.
# Possible values: 0 or 1
# Default: 0
#
IncludeInternalLinksInOriginSection=0

# Following parameter can be used to choose maximum number of lines shown for
# the particular following report.
#
# Stats by countries/domains
MaxNbOfDomain = 10
MinHitDomain = 1
# Stats by hosts
MaxNbOfHostsShown = 10
MinHitHost = 1
# Stats by authenticated users
MaxNbOfLoginShown = 10
MinHitLogin = 1
# Stats by robots
MaxNbOfRobotShown = 10
MinHitRobot = 1
# Stats by pages
MaxNbOfPageShown = 10
MinHitFile = 1
# Stats by OS
MaxNbOfOsShown = 10
MinHitOs = 1
# Stats by browsers
MaxNbOfBrowsersShown = 10
MinHitBrowser = 1
# Stats by screen size
MaxNbOfScreenSizesShown = 5
MinHitScreenSize = 1
# Stats by window size (following 2 parameters are not yet used)
MaxNbOfWindowSizesShown = 5
MinHitWindowSize = 1
# Stats by referers
MaxNbOfRefererShown = 10
MinHitRefer = 1
# Stats for keyphrases
MaxNbOfKeyphrasesShown = 10
MinHitKeyphrase = 1
# Stats for keywords
MaxNbOfKeywordsShown = 10
MinHitKeyword = 1
# Stats for sender or receiver emails
MaxNbOfEMailsShown = 20
MinHitEMail = 1

# Choose if you want the week report to start on sunday or monday
# Possible values:
# 0 – Week start on sunday
# 1 – Week start on monday
# Default: 1
#
FirstDayOfWeek=1

# List of visible flags that links to other language translations.
# See Lang parameter for list of allowed flag/language codes.
# If you don’t want any flag link, set ShowFlagLinks to «  ».
# This parameter is used only if ShowMenu parameter is set to 1.
# Possible values: «  » or « language_codes_separated_by_space »
# Example: « en es fr nl de »
# Default: «  »
#
ShowFlagLinks= » »

# Each URL, shown in stats report views, are links you can click.
# Possible values: 0 or 1
# Default: 1
#
ShowLinksOnUrl=1

# When AWStats build HTML links in its report pages, it starts thoose link
# with « http:// ». However some links might be HTTPS links, so you can enter
# here the root of all your HTTPS links. If all your site is a SSL web site,
# just enter « / ».
# This parameter is not used if ShowLinksOnUrl is 0.
# Example: « /shopping »
# Example: « / »
# Default: «  »
#
UseHTTPSLinkForUrl= » »

# Maximum length of URL part shown on stats page (number of characters).
# This affects only URL visible text, link still work.
# Default: 64
#
MaxLengthOfShownURL=64

# You can enter HTML code that will be added at the top of AWStats reports.
# Default: «  »
#
HTMLHeadSection= » »

# You can enter HTML code that will be added at the end of AWStats reports.
# Great to add advert ban.
# Default: «  »
#
HTMLEndSection= » »

# You can set Logo and LogoLink to use your own logo.
# Logo must be the name of image file (must be in $DirIcons/other directory).
# LogoLink is the expected URL when clicking on Logo.
# Default: « awstats_logo6.png »
#
Logo= »awstats_logo6.png »
LogoLink= »http://awstats.sourceforge.net »

# Value of maximum bar width/height for horizontal/vertical HTML graphics bar.
# Default: 260/90
#
BarWidth = 260
BarHeight = 90

# You can ask AWStats to use a particular CSS (Cascading Style Sheet) to
# change its look. To create a style sheet, you can use samples provided with
# AWStats in wwwroot/css directory.
# Example: « /awstatscss/awstats_bw.css »
# Example: « /css/awstats_bw.css »
# Default: «  »
#
StyleSheet= » »

# Those colors parameters can be used (if StyleSheet parameter is not used)
# to change AWStats look.
# Example: color_name= »RRGGBB » # RRGGBB is Red Green Blue components in Hex
#
color_Background= »FFFFFF » # Background color for main page (Default = « FFFFFF »)
color_TableBGTitle= »CCCCDD » # Background color for table title (Default = « CCCCDD »)
color_TableTitle= »000000″ # Table title font color (Default = « 000000 »)
color_TableBG= »CCCCDD » # Background color for table (Default = « CCCCDD »)
color_TableRowTitle= »FFFFFF » # Table row title font color (Default = « FFFFFF »)
color_TableBGRowTitle= »ECECEC » # Background color for row title (Default = « ECECEC »)
color_TableBorder= »ECECEC » # Table border color (Default = « ECECEC »)
color_text= »000000″ # Color of text (Default = « 000000 »)
color_textpercent= »606060″ # Color of text for percent values (Default = « 606060 »)
color_titletext= »000000″ # Color of text title within colored Title Rows (Default = « 000000 »)
color_weekend= »EAEAEA » # Color for week-end days (Default = « EAEAEA »)
color_link= »0011BB » # Color of HTML links (Default = « 0011BB »)
color_hover= »605040″ # Color of HTML on-mouseover links (Default = « 605040 »)
color_u= »FFAA66″ # Background color for number of unique visitors (Default = « FFAA66″)
color_v= »F4F090 » # Background color for number of visites (Default = « F4F090″)
color_p= »4477DD » # Background color for number of pages (Default = « 4477DD »)
color_h= »66DDEE » # Background color for number of hits (Default = « 66DDEE »)
color_k= »2EA495″ # Background color for number of bytes (Default = « 2EA495″)
color_s= »8888DD » # Background color for number of search (Default = « 8888DD »)
color_e= »CEC2E8″ # Background color for number of entry pages (Default = « CEC2E8″)
color_x= »C1B2E2 » # Background color for number of exit pages (Default = « C1B2E2″)

#—————————————————————————–
# PLUGINS
#—————————————————————————–

# Add here all plugins file you want to load.
# Plugin files must be .pm files stored in ‘plugins’ directory.
# Uncomment LoadPlugin lines to enable a plugin after checking that perl
# modules required by the plugin are installed.

# Plugin: Tooltips
# Perl modules required: None
# Add some tooltips help on HTML report pages.
# Note that enabled this kind of help will increased HTML report pages size,
# so server load and bandwidth.
#
LoadPlugin= »tooltips »

# Plugin: DecodeUTFKeys
# Perl modules required: Encode and URI::Escape
# Allow AWStats to show correctly (in language charset) keywords/keyphrases
# strings even if they were UTF8 coded by the referer search engine.
#
#LoadPlugin= »decodeutfkeys »

# Plugin: IPv6
# Perl modules required: Net::IP and Net::DNS
# This plugin gives AWStats capability to make reverse DNS lookup on IPv6
# addresses.
# Note: If you are interesting in having country report, you should use the
# geoipfree or geoip plugin instead of enabled reverse DNS lookup.
#
#LoadPlugin= »ipv6″

# Plugin: HashFiles
# Perl modules required: Storable
# AWStats DNS cache files are read/saved as native hash files. This increase
# DNS cache files loading speed, above all for very large web sites.
#
#LoadPlugin= »hashfiles »

# Plugin: GeoIP
# Perl modules required: Geo::IP or Geo::IP::PurePerl (from Maxmind)
# Country chart is built from an Internet IP-Country database.
# This plugin is useless for intranet only log files.
# Note: You must choose between using this plugin (need Perl Geo::IP module
# from Maxmind, database more up to date) or the GeoIPfree plugin (need
# Perl Geo::IPfree module, database less up to date).
# This plugin reduces AWStats speed of 8% !
#
#LoadPlugin= »geoip GEOIP_STANDARD /pathto/GeoIP.dat »

# Plugin: GeoIPfree
# Perl modules required: Geo::IPfree version 0.2+ (from Graciliano M.P.)
# Country chart is built from an Internet IP-Country database.
# This plugin is useless for intranet only log files.
# Note: You must choose between using this plugin (need Perl Geo::IPfree
# module, database less up to date) or the GeoIP plugin (need Perl Geo::IP
# module from Maxmind, database more up to date).
# Note: Activestate provide a corrupted version of Geo::IPfree 0.2 Perl
# module, so install it from elsewhere (from www.cpan.org for example).
# This plugin reduces AWStats speed of 10% !
#
LoadPlugin= »geoipfree »

# Plugin: GeoIP_Region_Maxmind
# Perl modules required: Geo::IP (from Maxmind)
# This plugin add a chart of hits by regions. Only regions for US and
# Canada can be detected.
# Note: This plugin need Maxmind GeoIP Perl module AND the region database.
# Note: I get some problem with Maxmind Geo::IP Perl module with ActiveState
# on Windows but it works great on Linux with default Perl.
# You need to purchase a license from Maxmind to get/use the Region database.
# This plugin reduces AWStats speed.
#
#LoadPlugin= »geoip_region_maxmind GEOIP_STANDARD /pathto/GeoIPRegion.dat »

# Plugin: GeoIP_City_Maxmind
# Perl modules required: Geo::IP (from Maxmind)
# This plugin add a chart of hits by cities (with country and regions
# informations for major countries).
# Note: This plugin need Maxmind GeoIP Perl module AND the city database.
# Note: I get some problem with Maxmind Geo::IP Perl module with ActiveState
# on Windows but it works great on Linux with default Perl.
# You need to purchase a license from Maxmind to get/use the City database.
# This plugin reduces AWStats speed.
#
#LoadPlugin= »geoip_city_maxmind GEOIP_STANDARD /pathto/GeoIPCity.dat »

# Plugin: GeoIP_ISP_Maxmind
# Perl modules required: Geo::IP (from Maxmind)
# This plugin add a chart of hits by ISP.
# Note: This plugin need Maxmind GeoIP Perl module AND the ISP database.
# Note: I get some problem with Maxmind Geo::IP Perl module with ActiveState
# on Windows but it works great on Linux with default Perl.
# You need to purchase a license from Maxmind to get/use the ISP database.
# This plugin reduces AWStats speed.
#
#LoadPlugin= »geoip_isp_maxmind GEOIP_STANDARD /pathto/GeoIPISP.dat »

# Plugin: GeoIP_Org_Maxmind
# Perl modules required: Geo::IP (from Maxmind)
# This plugin add a chart of hits by Organization name
# Note: This plugin need Maxmind GeoIP Perl module AND the Org database.
# Note: I get some problem with Maxmind Geo::IP Perl module with ActiveState
# on Windows but it works great on Linux with default Perl.
# You need to purchase a license from Maxmind to get/use the Org database.
# This plugin reduces AWStats speed.
#
#LoadPlugin= »geoip_org_maxmind GEOIP_STANDARD /pathto/GeoIPOrg.dat »

# Plugin: UserInfo
# Perl modules required: None
# Add a text (Firtname, Lastname, Office Department, …) in authenticated user
# reports for each login value.
# A text file called userinfo.myconfig.txt, with two fields (first is login,
# second is text to show, separated by a tab char) must be created in DirData
# directory.
#
#LoadPlugin= »userinfo »

# Plugin: HostInfo
# Perl modules required: Net::XWhois
# Add a column into host chart with a link to open a popup window that shows
# info on host (like whois records).
#
#LoadPlugin= »hostinfo »

# Plugin: ClusterInfo
# Perl modules required: None
# Add a text (for example a full hostname) in cluster reports for each cluster
# number.
# A text file called clusterinfo.myconfig.txt, with two fields (first is
# cluster number, second is text to show) separated by a tab char. must be
# created into DirData directory.
# Note this plugin is useless if ShowClusterStats is set to 0 or if you don’t
# use a personalized log format that contains %cluster tag.
#
#LoadPlugin= »clusterinfo »

# Plugin: UrlAliases
# Perl modules required: None
# Add a text (Page title, description…) in URL reports before URL value.
# A text file called urlalias.myconfig.txt, with two fields (first is URL,
# second is text to show, separated by a tab char) must be created into
# DirData directory.
#
#LoadPlugin= »urlalias »

# Plugin: TimeHiRes
# Perl modules required: Time::HiRes (if Perl < 5.8)
# Time reported by -showsteps option is in millisecond. For debug purpose.
#
#LoadPlugin= »timehires »

# Plugin: TimeZone
# Perl modules required: Time::Local
# Allow AWStats to correct a bad timezone for user of some IIS that use
# GMT date in its log instead of local server time.
# This module is useless for Apache and most IIS version.
# This plugin reduces AWStats speed of 40% !!!!!!!
#
#LoadPlugin= »timezone +2″

# Plugin: Rawlog
# Perl modules required: None
# This plugin adds a form in AWStats main page to allow users to see raw
# content of current log files. A filter is also available.
#
#LoadPlugin= »rawlog »

# Plugin: GraphApplet
# Perl modules required: None
# Supported charts are built by a 3D graphic applet.
#
LoadPlugin= »graphapplet /awstatsclasses » # EXPERIMENTAL FEATURE

#—————————————————————————–
# EXTRA SECTIONS
#—————————————————————————–

# You can define your own charts, you choose here what are rows and columns
# keys. This feature is particularly usefull for marketing purpose, tracking
# products orders for example.
# For this, edit all parameters of Extra section. Each set of parameter is a
# different chart. For several charts, duplicate section changing the number.
# Note: Each Extra section reduces AWStats speed by 8%.
#
# WARNING: A wrong setup of Extra section might result in too large arrays
# that will consume all your memory, making AWStats unusable after several
# updates, so be sure to setup it correctly.
# In most cases, you don’t need this feature.
#
# ExtraSectionNameX is title of your personalized chart.
# ExtraSectionCodeFilterX is list of codes the record code field must match.
# Put an empty string for no test on code.
# ExtraSectionConditionX are conditions you can use to count or not the hit,
# Use one of the field condition (URL,URLWITHQUERY,QUERY_STRING,REFERER,UA,
# HOST,extraX) and a regex to match, after a coma. Use « || » for « OR ».
# ExtraSectionFirstColumnTitleX is the first column title of the chart.
# ExtraSectionFirstColumnValuesX is a string to tell AWStats which field to
# extract value from (URL,URLWITHQUERY,QUERY_STRING,REFERER,UA,HOST,extraX)
# and how to extract the value (using regex syntax). Each different value
# found will appear in first column of report on a different row. Be sure
# that list of different possible values will not grow indefinitely.
# ExtraSectionFirstColumnFormatX is the string used to write value.
# ExtraSectionStatTypesX are things you want to count. You can use standard
# code letters (P for pages,H for hits,B for bandwidth,L for last access).
# ExtraSectionAddAverageRowX add a row at bottom of chart with average values.
# ExtraSectionAddSumRowX add a row at bottom of chart with sum values.
# MaxNbOfExtraX is maximum number of rows shown in chart.
# MinHitExtraX is minimum number of hits required to be shown in chart.
#

# Example to report the 20 products the most ordered by « order.cgi » script
#ExtraSectionName1= »Product orders »
#ExtraSectionCodeFilter1= »200 304″
#ExtraSectionCondition1= »URL,\/cgi\-bin\/order\.cgi||URL,\/cgi\-bin\/order2\.cgi »
#ExtraSectionFirstColumnTitle1= »Product ID »
#ExtraSectionFirstColumnValues1= »QUERY_STRING,productid=([^&]+) »
#ExtraSectionFirstColumnFormat1= »%s »
#ExtraSectionStatTypes1=PL
#ExtraSectionAddAverageRow1=0
#ExtraSectionAddSumRow1=1
#MaxNbOfExtra1=20
#MinHitExtra1=1

# There is also a global parameter ExtraTrackedRowsLimit that limit the
# number of possible rows an ExtraSection can report. This parameter is
# here to protect too much memory use when you make a bad setup in your
# ExtraSection. It applies to all ExtraSection independently meaning that
# none ExtraSection can report more rows than value defined by ExtraTrackedRowsLimit.
# If you know an ExtraSection will report more rows than its value, you should
# increase this parameter or AWStats will stop with an error.
# Example: 2000
# Default: 500
#
ExtraTrackedRowsLimit=500

#—————————————————————————–
# INCLUDES
#—————————————————————————–

# You can include other config files using the directive with the name of the
# config file.
# This is particularly usefull for users who have a lot of virtual servers, so
# a lot of config files and want to maintain common values in only one file.
# Note that when a variable is defined both in a config file and in an
# included file, AWStats will use the last value read for parameters that
# contains one value and AWStats will concat all values from both files for
# parameters that are lists of value.
#

#Include «  »

facultatif : On install un module perl GeoIP qui permet de localiser un pays en fonction d’une IP.
Si on ne veut pas ce module, on commente la ligne suivante dans /etc/awstats/awstats.crapules.com.conf

Code:

LoadPlugin= »geoipfree »

[root@pussycat ~]# wget ‘http://search.cpan.org/CPAN/authors/id/G/GM/GMPASSOS/Geo-IPfree-0.2.tar.gz’
[root@pussycat ~]# tar zxvf Geo-IPfree-0.2.tar.gz;cd Geo-IPfree-0.2
[root@pussycat ~]# perl Makefile.PL && make && make test && make install
[root@pussycat ~]# wget http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
[root@pussycat ~]# tar zxvf GeoIP.dat.gz && gunzip GeoIP.dat.gz && mkdir /usr/local/share/GeoIP && cp GeoIP.dat /usr/local/share/GeoIP/

On exécute l’analyse des logs :
[root@pussycat ~]# /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=crapules.com

Si nous n’avons pas d’erreur, on automatise cette commande via un crontab :
[root@pussycat ~]# emacs /etc/crontab

Code:

….SNIP….
#awstats update all day at 03:05
5 3 * * * root /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=crapules.com > /dev/null

choix perso : je met le même .htaccess que phpmyadmin pour être le seul à pouvoir voir les logs.
[root@pussycat ~]# cp /var/www/html/phpmyadmin/.htaccess /usr/share/awstats/wwwroot/

Haut de page

TODO

      Mise en place système de gestion de « surveillance », monitoring de ftp
      Changer les règles de fw (drop tout par défault)
      Conf serveur de mail (postfix ou mailq) + mailing list
      Remettre de l’ordre dans ce billet qui semble un peu mélanger
      Mise en place port knocking ( http://www.portknocking.org/)
      MRTG
      Install wiki
      Export display?
      Faire des bisoux
Ce contenu a été publié dans Linux. Vous pouvez le mettre en favoris avec ce permalien.

2 réponses à Installation Dedibox

  1. thierry dit :

    Concernant la synchronisation avec un serveur de temps:

    1. vous avez programmé la mise à l’heure par cron à 3h00 du matin, cad à une heure pleine (00 minutes). Beaucoup de gens font comme vous ce qui pose aux serveurs de temps un problème de concentration des consommations de ressources. Les admins des serveurs de temps demandent à ce que l’on choisisse une heure non pleine pour répartir la charge sur toute l’heure.

    2. vous gagneriez à utiliser le démon ntpd à la place, qui tourne tout seul hors cron, se synchronise tout seul, et en plus gère la dérive de l’horloge, etc.

  2. Manu dit :

    Je n’utilise normalement, JAMAIS des heures pleines pour quoique ce soit, il s’agit d’une enorme erreur de ma part!
    Je vous remercie de votre remarque et je corrige immédiatement!
    Manu

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *