LAMP

De Teteve wiki
Aller à : navigation, rechercher

PhpMyAdmin

L'installation de PhpMyAdmin se fait dans la foulée après celle de Mysql et Php :

# apt-get install phpmyadmin

Editer le fichier de configuration d'Apache :

# vim /etc/apache2/apache2.conf

Rajouter la ligne suivante :

include /etc/phpmyadmin/apache.conf

Pour accéder ensuite à l'interface de PhpMyAdmin, il suffit de se rendre sur le site web (ou en localhost si le serveur web n'est pas opérationnel) :

http://localhost/phpmyadmin

note : PhpMyAdmin utilise les identifiants de l'admin de Mysql tels que définis à l'installation de Mysql

Blog avec WordPress

Grâce à l'interface web de phpmyadmin, créer une base de données.
Nous appelons cette base de données : db_blog
Créer un utilisateur dans Mysql pour accéder à la base de données du blog : user_blog
Mettre un mot de passe aléatoire complexe (nous n'aurons pas à nous en souvenir) mettre les autorisations pour user_blog sur db_blog

installer Wordpress :

cd /var/home/www/
wget http://fr.wordpress.org/latest-fr_FR.zip
unzip latest-fr_FR.zip ./

aller sur l'adresse du site, et suivre la configuration automatique, en renseignant les nom de la base/login/mot de passe/localhost

Mise à jour

Je suis obligé de faire des mises à jour manuelles de Wordpress. Je fais donc ici un petit récapitulatif des actions à effectuer : (pb reglé : l'utilisateur d'Apache doit être le propriétaire des fichiers. Sinon, il faut renseigner un user/mdp FTP qui soit le propriétaire => OK vu que tous les utilisateurs FTP sont virtuels...)

wget http://fr.wordpress.org/latest-fr_FR.zip
unzip latest-fr_FR.zip

sauvegarder le site

cp -r blog/* /home/temp/
cp -r worpress/* blog/

Lancer le site, on arrive sur une page d'installation. S'aider de la sauvegarde /home/temp/wp-config.php pour renseigner les champs.
A la demande, fermer le site, et recopier les thèmes et uploads :

cp -r /home/temp/wp-content/themes/* blog/wp-content/themes/

relancer le site et se connecter...

AWSTATS

En cours de mise en place et d'approfondissement...

Installation :

# apt-get install awstats

Définir l'alias utilisé par les différents domaines :

# vim /etc/apache2/sites-available/stats.conf
Alias /awstatsclasses "/usr/share/awstats/classes/"
Alias /awstatscss "/usr/share/awstats/css/"
Alias /awstats-icon "/usr/share/awstats/icon/"

ScriptAlias /stats /usr/lib/cgi-bin/awstats.pl

# mêmes paramètres que dans awstats.*.conf
<Directory /usr/lib/cgi-bin/>
  DirectoryIndex awstats.pl
  UseCanonicalName off
  AuthType Digest
  AuthName "Acces restreint aux stats"
  AuthDigestDomain /awstats http://www.teteve.fr/awstats
  AuthDigestProvider file
  AuthUserFile /etc/apache2/.awstats.pwd
  Require valid-user
  Options +ExecCGI
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>
#  a2ensite stats.conf
Enabling site stats.
To activate the new configuration, you need to run:
 service apache2 reload
# service apache2 reload

Je n'explique pas le fonctionnement du "AuthDigestDomain" : ça fonctionne pour tous les sites : www.mondomaine.fr/awstats avec le même et unique fichier de conf...
recopier le fichier de conf par défaut :

# cp /etc/awstats/awstats.local.conf /etc/awstats/awstats.www.teteve.fr.conf

Config

EN COURS...

Extrait de mon fichier de config, à rapprocher de la Conf d'Apache et des vhosts...

LogFile="/var/log/apache2/log/teteve.log"
LogType=W

J'ai barré les variables ne correspondant pas à un serveur web. A reprendre dans le cas d'un autre type de serveur.
# 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 = %virtualname %host %logname %time1 %methodurl %code %bytesd %refererquot %uaquot

LogFile="/var/log/apache2/vhosts/teteve.log"
LogType=W
LogFormat = %virtualname %host %logname %time1 %methodurl %code %bytesd %refererquot %uaquot
LogSeparator=" "

J'ai été obligé de rajouter %bytesd sinon awstats refuse d'analyser les logs. De même, je n'ai pas réussi à faire passer un "virtualname:port"

Commande

Pour lancer l'update manuellement (ou à rajouter dans un cron...)

/usr/lib/cgi-bin/awstats.pl -config=www.teteve.fr

Web radio avec MPD et Icecast2

Introduction

Cette section est un tutoriel visant à expliquer comment installer, configurer et utiliser une web radio. Tout d'abord, il faut savoir qu'elle est composée de plusieurs logiciels ayant des rôles spécifiques :

  • Un lecteur audio, ==> MPD
  • Un diffuseur de flux, ==> Icecast2
  • Une interface. ==> Pitchfork


Lecteur audio : MPD (Music Player Daemon)

Installation

Sous Debian :

# apt-get install mpd avahi-daemon

Configuration

Pour configurer MPD, il faut éditer le fichier de configuration : /etc/mpd.conf.

 music_directory “chemin du Répertoire où se trouvent les fichiers audio”
 playlist_directory “chemin du Répertoire où se trouvent les playlists”
 db_file “chemin du Répertoire où se la Base de données MPD"
 log_file “chemin du fichier log”
 error_file “chemin du fichier log d'erreur”
 pid_file “chemin du fichier pid”
 password          "XXXX@read,add,control,admin"
 audio_output {
 type        “shout”                                         # Type de flux
 name        “Teteve Radio”                                  # Nom de la Web radio
 host        “localhost”                                     # Nom d'hôte ou ip
 port        “8000″                                          # Port
 mount       “/mpd.ogg”                                      # Point de montage pour Icecast
 password    “mot de passe qu'on réutilisera dans Icecast”   # Password
 quality     “5″                                             # Qualité du flux
 user        “mpd”                                           # Utilisateur système
 description “Radio de teteve.fr”                            # Commentaires, description
 genre       “éclectique”                                    # Genre de musique
}

audio_output {                          # Sortie audio bidon pour éviter  
 type "ao"                              # le message d'erreur : problem opening audio device
 driver "null"                                                    
 name "Dummy output"        
 }

log_level          "verbose"                                 # log explicites

Diffuseur de flux : Icecast

Installation

Sous Debian :

# apt-get install icecast2 php5 php-pear

Configuration

Pour configurer Icecast2, il faut éditer le fichier /etc/icecast2/icecast.xml.

<icecast>
   <limits>
       <clients>10</clients> <-- ici, le nombre d'auditeurs simultanés autorisés

... plus bas, ligne 23, reportez le mot de passe de /etc/mpd.conf:

<authentication>
        <source-password>XXXXXXX</source-password>

Puis modifiez les paramètres par défaut d'authentification:

       <relay-password>YYYYYYYYYY</relay-password>

L'Admin se connecte avec le nom d'utilisateur ci-dessous:

       <admin-user>admin</admin-user>
       <admin-password>ZZZZZZZZ</admin-password>
</authentication>

Pour pouvoir lister les dossiers :

<directory>                                                   #listage des dossiers
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>

ligne 49, votre hôte (doit correspondre à ce que vous avez rentré au paramètre "host" du fichier de configuration de MPD)

   <hostname>localhost</hostname>

Le port utilisé par Icecast, vous pouvez laisser 8000

<listen-socket>
   <port> 8000 </port>
</listen-socket>
<listen-socket>
   <port> 8001 </port>
</listen-socket>

Le reste de la configuration d'Icecast :

<master-server> 127.0.0.1 </master-server>
<master-server-port> 8000 </master-server-port>
<master-update-interval> 120 </master-update-interval>  
<master-password> XXXXX </master-password>
<fileserve> 1 </fileserve>
<shoutcast-mount> /mpd.ogg </shoutcast-mount>       # Point de montage du flux
<paths>
    <basedir> /usr/share/icecast2 </basedir>           # utilisé que lorsque chroot est activé
    <logdir> /var/log/icecast2 </logdir>               #dossier des logs
    <webroot> /usr/share/icecast2/web </webroot>       #dossier interface
    <adminroot> /usr/share/icecast2/admin </adminroot> #dossier interface administration
    <alias source="/" dest="/status.xsl"/>           #redirige vers la page de status
</paths>
 <security>
     <chroot>0</chroot>
 </security>
 </icecast>

Pour que Icecast2 tourne en tâche de fond, éditer également: /etc/default/icecast2 et modifier la fin du fichier pour obtenir:

ENABLE=true

Relance Icecast2 et MPD pour tenir compte des modifications:

#/etc/init.d/mpd restart
#/etc/init.d/icecast2 stop
#/etc/init.d/icecast2 start

Et créer la base de données de MPD:

#mpd --create-db

Utilisation

Vous accéderez a l'interface d'Icecast à une adresse du type: http://teteve.fr:8000

Interface Web Cliente : Pitchfork

Installation

Pour commencer, télécharger Pitchfork à l'adresse suivante : [1]

Ensuite :

  • Décompresser l'archive à l'endroit de votre choix.
  • Mettre l'utilisateur Apache (www-data) propiétaire du dossier "config" de Pitchfork

Configuration

Copier le fichier Pitchfork.conf dans le dossier de configuration du serveur web /etc/httpd/conf.d/

Dans le Pitchfork.conf :

Alias /teteveradio /home/teteve/www/teteveradio        # radio accessible via teteve.fr/teteveradio
<Directory /home/teteve/www/teteveradio>
       DirectoryIndex index.php
       Options -Indexes
       AllowOverride all
       AddType application/x-httpd-php .php
       php_flag magic_quotes_gpc off
       php_flag magic_quotes_runtime off
       php_flag display_errors on
       php_flag log_errors on
       # switch comment marks on the two items to disable access logging 
       # completely for pitchfork. See INSTALL
       SetEnvIf Request_URI "player/command\.php" pitchforknolog 
       #SetEnv pitchforknolog
</Directory>

Lancer ensuite la page de config de Pitchfork : [2]

Réglages de connexion :

Hôte : localhost
Port : 6600
Mot de Passe : mot de passe MPD

Intégration du shoutcast : http://<nom de domaine>:<port icecast>/<point de montage du shout>

Ce qui donne pour notre exemple : http://teteve.fr:8000/mpd.ogg

Vous pouvez également entrer cette URL dans un lecteur audio comme VLC pour écouter votre flux :

  • Fichier/Ouvrir un flux réseau
  • Sélectionner HTTP/HTTPS/FTP/MMS
  • Entrer l'URL dans le champ à droite

Utilisation

Pour utiliser Pitchfork, il suffit ensuite de lancer l'URL configurée dans Pitchfork.conf : [3]