Linux
- Apache
Les
VirtualHost
<VirtualHost
192.168.1.2>
ServerName forum.malekal.com
DocumentRoot /usr/share/phpbb2/site/
Alias /images/avatars /var/lib/phpbb2/avatars
Alias /images /usr/share/phpbb2/site/images
</VirtualHost>
Dans l'exemple ci-dessous, on a créé
un VirtualHost sur l'ip 192.168.1.2 ( en local car on est
derrière un routeur ).
On définit le site à partir de l'option
ServerName
DocumentRoot permet de définir le repertoire
racine du site sur le serveur web.
En d'autre terme, toute personne qui va saisir sur son navigateur
l'adresse forum.malekal.com arrivera sur le site qui se trouve dans le
dossier
/usr/share/phpbb2/site/
VirtualHost - Apache en
proxy-Web
On peut aussi utiliser Apache en Proxy-Web, ainsi
lorsqu'une requete http arrive sur le serveur apache, celle-ci sera
redirigée vers une autre machine.
Cela peut être utile si l'on a plusieurs tomcat.
Internet ----> Apache - Proxy en public --------------->
tomcat en local
<VirtualHost
212.11.31.54:80>
ServerName exemple.proxy.malekal.com
ProxyPass
/ http://exemple.proxy:8093/
ProxyPassReverse /
http://exemple.proxy:8093/
</VirtualHost>
Dans le fichier /etc/hosts - on définit l'ip de la machine
exemple.proxy
où tomcat tournera.
Ainsi, si on déplace le tomcat de machine, il suffit de
modifier le fichier /etc/hosts serveur du serveur Apache.
Ensuite on configure le port de tomcat sur 8093 et l'host de tomcat,
à partir du fichier ./conf/server.xml
<Host
name="exemple.proxy"
debug="0" appBase="exemple.proxy">
<Context path="" docBase="/var/www/site/exemple"
privileged="true"
debug="0" reloadable="true" />
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs"
prefix="exemple_log."
suffix=".txt"
timestamp="true"/>
</Host>
Ainsi tomcat va écouter sur le port 8093 et attendre que
l'on lui demande le site exemple.proxy à travers les
requetes http d'apache.
Activer le PHP sur Apache
- On installe php : apt-get install php4
- Ensuite il faut activer php sur apache pour cela, on
édite /etc/apache/http.conf ( chemin sur une debian ) :
- Décommentez
la ligne LoadModule
php4_module /usr/lib/apache/1.3/libphp4.so
pour charger le module php
- Décommentez la ligne
# AddType
application/x-httpd-php .php ainsi apache va envoyer les
pages .php à l'interpréteur php
- Vous pouvez aussi ajouter les fichiers index.php dans DirectoryIndex
index.html index.htm index.shtml index.cgi index.php index.php3
ainsi si l'utilisateur saisie une URL sans fichier index, apache
cherchera à charger les fichiers d'index suivants.
- Enregistrez les modifications
puis /etc/init.d/apache reload pour recharger la configuration
Vous pouvez utiliser le module mysql pour php pour cela :
apt-get install php4-mysql puis éditez le fichier
/etc/php.ini.
et décommentez la ligne
extension=mysql.so
Pour plus d'information sur MySQL voir
ici
L'authentification par
mot de passe avec .htaccess
htacess permet de demander une authentification
à l'utilisateur lorsqu'une connexion à un
répertoire spécifique du site est faite.
Si l'utilisateur ne rentre pas le couple utilisateur/password
définie, il n'aura pas accès à cette
partie du site.
d'un côté sur votre site, on aura le fichier
.htaccess dans le répertoire où l'on
désire mettre l'authentification
de l'autre un fichier .htpasswd qui contiendra les informations sur les
utilisateurs/mot de passe.
Ce fichier n'est pas obligatoirement dans l'aborescence du site.
La structure est user:
motdepasse_crypté
Dans le fichier conf d'apache,
modifiez la variable
comme ceci :
AllowOverride All
.htpasswd
- Pour créer la base de données, on utilisera
l'option -c par exemple :
htpasswd -c .htpasswd malekalmorte
Le mot de passe sera demandé ensuite.
- Si vous désirez ajouter un utilisateur à la
base, on utilisera la commande :
htpasswd .htpasswd malek
- Pour supprimer un utilisateur, utiliser votre éditeur
favoris pour supprimer la ligne correspondante à cet
utilisateur.
.htaccess
Vous devez donc ensuite créer le fichier .htaccess dans
l'arborescence de votre site.
Exemple :
AuthName message
AuthUserFile
/ou/se/trouve/la/fichier/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
AuthName
"Accès restreint"
<limit
GET POST>
require valid-user
</Limit>
AuthName "Acces Restreint"
vous permet de spécifier le texte qui sera
affiché dans la boite de dialogue d'authentification
AuthType
Basic
détermine le type d’authentification
utilisé, dans notre cas l’authentification HTTP
standard.
<limit GET
POST> ... </limit>
permet de déterminer le type
d’opérations permises.
GET permet de faire
un GET, cela est utilisé par le navigateur pour
récupérer les pages WEB.
PUT permet de faire de l’upload sous protocole HTTP
require valid-user
signifie littéralement qu’un utilisateur valide
est requis, contenu dans le fichier .htpasswd.
On peut aussi
limiter l'accès à quelques utilisateurs contenus
dans .httpasswd, par exemple :
require
user malek
permet de limiter l'authentification à malek
L'authentification par
adresse réseau avec .htaccess
.htaccess permet aussi de limiter l'accès de l'arborescence
du site WEB par les adresses réseau, par exemple :
- On peut accepter
tous les accès sauf ceux qui sont
précisés par "allow from"
ici on accepte que les domaines en .fr et .ca
AuthUserFile
/dev/null
AuthGroupFile /dev/null
AuthName AccesRestreint
AuthType Basic
<limit GET
POST>
order deny,allow
deny from all
allow from .fr
allow from .ca
</Limit>
- On peut aussi
refuser tous les accès sauf ceux qui sont
précisés par "allow from"
Ici on accepte toutes les connexions sauf celles provenant
de domaines en .us
AuthUserFile
/dev/null
AuthGroupFile /dev/null
AuthName InterditPartiel
AuthType Basic
<limit
GET POST>
order allow,deny
allow from all
deny from .us
</Limit>
Charset par
défaut d'apache
On peut fixer le charset d'apache avec l'option suivante :
AddDefaultCharset
UTF-8
Retour à la page
d'accueil