L'installation d'Apache et PHP nécessite environ 150Mo d'espace disque (fichiers sources compris). En fait, ce sont les sources une fois compilés qui font 150 Mo. Les binaires, une fois installés prennent 33 Mo. Si la taille de votre compte est limitée, vous devrez donc réaliser la compilation dans /tmp.
./configure --prefix=/path/to/apache/homedir --enable-module=so --enable-ssl --enable-rewrite --enable-info --enable-dav --enable-dav-fs make make install./configure ... : sur une seule ligne, --prefix doit spécifier un chemin dans lequel vous avez des droits d'écriture
![]() |
RéponsesLes réponses sont affichées dans ce style là. |
Le fichier de configuration d'Apache est conf/httpd.conf.
![]() |
Redémarrer le serveurA chaque fois que la configuration du serveur est modifiée, il faut relancer le serveur. Pour redémarrer le serveur il faut lancer la commande bin/apachctl restart ; le serveur relit alors son fichier de configuration. |
Démarrez le serveur web à l'aide de la commande bin/apachctl start et vérifiez qu'il fonctionne.
<Location /monitor/server-status> SetHandler server-status </Location> <Location /monitor/server-info> SetHandler server-info </Location>
<Location /monitor> Order deny,allow Deny from all Allow from dahu.inria.fr </Location>
Listen 8001 <VirtualHost *:8001> DocumentRoot /path/to/monWeb </VirtualHost>
Listen 8001 Include conf/vhosts/*.conf
Fichier conf/vhosts/vhost.8001.conf :
<VirtualHost *:8001> DocumentRoot /path/to/monWeb </VirtualHost>
Manuel en français : http://www.php.net/manual/fr.
./configure --with-apxs2=/path/to/apache/homedir/bin/apxs --prefix=/path/to/apache/homedir make make installapxs : permet de construire un module dynamique pour Apache
<?php phpinfo();?>Modifiez la configuration pour que le script PHP soit exécuté sur le serveur.
LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php DirectoryIndex index.phpRedémarrez le serveur.
![]() |
Hashage d'un mot de passeLes mots de passe sont stockés sous forme de hash qui ne peut être décodé. Utilisez l'utilitaire fourni par Apache pour créer le fichier (sans l'option -c pour ajouter un utilisateur à un fichier existant) : ./bin/htpasswd -c /path/to/.htpasswd billGates |
Le fichier de configuration d'Apache doit permettre l'utilisation des directives d'autorisation :
<Directory /> AllowOverride AuthConfig </Directory>
Dans le fichier monWeb/.htaccess :
AuthType Basic AuthName "Accès restreint" AuthUserFile /path/to/monWeb/.htpasswd <Limit GET POST> require valid-user </Limit>
Test :
bash-2.05b$
pwd /path/to/apache/homedir/conf/sslbash-2.05b$
ls -al total 12 drwxr-xr-x 2 bill gates 4096 Oct 12 15:40 . drwxr-xr-x 4 bill gates 4096 Oct 11 18:32 ..bash-2.05b$
openssl genrsa -des3 -out server.key 1024 Generating RSA private key, 1024 bit long modulus ......++++++ ............++++++ e is 65537 (0x10001) Enter pass phrase for server.key: Verifying - Enter pass phrase for server.key:bash-2.05b$
openssl req -new -x509 -days 365 -key server.key -out server.crt Enter pass phrase for server.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [GB]:FR State or Province Name (full name) [Berkshire]:France Locality Name (eg, city) [Newbury]:Sophia-Antipolis Organization Name (eg, company) [My Company Ltd]:INRIA Organizational Unit Name (eg, section) []:DISC Common Name (eg, your name or your server's hostname) []:dahu.inria.fr Email Address []:bash-2.05b$
openssl rsa -in server.key -out server.keybash-2.05b$
ls -al total 44 drwxr-xr-x 3 bill gates 4096 Oct 12 16:03 . drwxr-xr-x 4 bill gates 4096 Oct 11 18:32 .. -rw-r--r-- 1 bill gates 2558 Oct 12 16:03 server.crt -rw-r--r-- 1 bill gates 951 Oct 12 15:53 server.key
Fichier conf/ssl.conf :
Listen 8443 <VirtualHost *:8443> DocumentRoot /path/to/monWeb/ ServerName dahu.inria.com:8443 SSLCertificateFile /path/to/apache/homedir/conf/ssl/server.crt SSLCertificateKeyFile /path/to/apache/homedir/conf/ssl/server.key # preserve other options <VirtualHost *:8443>
Veillez à ce que les directives contenues dans conf/ssl.conf ne soient pas conditionnelles (<IfDefine ...>) ; pour cela, on peut démarrer Apache en spécifiant bin/apachectl -D SSL -k (re)start.
![]() |
Requête WebDAVSi vous n'avez pas konqueror, vous pouvez toujours taper les requêtes WebDAV à la main :
Pour s'identifier, il faut encoder en base64 son login/passwd :
ou secret est le nom du fichier qui contient : Aladdin:open sesame (sans retour à la ligne) ce qui permet d'obtenir : QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Jusqu'ici, vous avez accédé directement au file system du serveur pour y déposer les documents HTML ou PHP, ce qui n'est pas le cas dans une utilisation réelle. Les contributeurs disposent en général d'un espace de travail local pour leurs pages Web (inaccessible par le serveur), à partir duquel ils doivent mettre à jour les fichiers sur le serveur ; pour cette mise à jour, vous allez utiliser WebDAV.
Fichier conf/http.conf :
Listen 8002
Fichier conf/vhosts/vhost.8002.conf :
<VirtualHost *:8002> DavLockDB DavLock DocumentRoot /path/to/monWeb <Location /> Dav On </Location> </VirtualHost>
Comme les ACL ne sont pas les mêmes, il suffit d'utiliser un autre fichier. Par exemple .htupdate. D'autre part, un contributeur devrait pouvoir éditer le fichier .htaccess pour qu'il puisse indiquer quels groupes ou utilisateurs ont le droit d'accéder à ses documents, il faut donc ouvrir la restriction à ce fichier.
Dans le fichier conf/vhosts/vhost.8002.conf :
<VirtualHost *:8002> DavLockDB DavLock DocumentRoot /path/to/monWeb AccessFileName .htupdate <Files ".htaccess"> Order allow,deny Allow from all </Files> <Location /> Dav On </Location> </VirtualHost>
Fichier monWeb/.htupdate :
AuthType Basic AuthName "Accès restreint aux contributeurs" AuthUserFile /path/to/monWeb/.htpasswd AuthGroupFile /path/to/monWeb/.htgroup Require group webadmin
Fichier monWeb/.htgroup :
webadmin: bill
Utilisez konqueror pour accéder à vos documents ; utilisez des URLs du type webdav://localhost:8002/path/to/file.
Ajouter dans le fichier conf/vhost/vhost.8002.conf :
<Files ~ "\.php$"> ForceType text/plain </Files>
Les fichiers PHP seront restitués tels quels sans être exécutés.
bash-2.05b$
openssl s_client -connect localhost:8002
Il suffit de fusionner les directives de l'hôte WebDAV et de l'hôte SSL. Il serait prudent de ne conserver que l'hôte WebDAV+SSL et de supprimer l'hôte WebDAV sans SSL afin de sécuriser les échanges entre le serveur et les contributeurs, en particulier vis à vis de leur authentification.