Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
est un serveur Web. Historiquement, l'acronyme « LAMP » fait référence aux quatre composantes d'un tel serveur Web :
apt-get update && apt-get dist-upgrade
apt-get install build-essential
apt-get install apache2
Dans ce wiki : la prise en main d'apache2 qui est le serveur web !
cd /var/www/
mkdir hypathie.net
chown -R hypathie:www-data hypathie.net/
chmod -R 750 hypathie.net/
vim hypathie.net/index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>hypathie.net _ index.html</title> </head> <body> <h1>Bienvenue sur le site hypathie ! </h1> </body> </html>
Pour régler définitivement les problèmes d'encodage, au cas où l'on oublie la balise <meta charset=“UTF-8”>
du head
, on édite le fichier /etc/apache2/conf-availables/charset.conf
vim /etc/apache2/conf-available/charset.conf
Et on dé-commente la ligne :
AddDefaultCharset UTF-8
service apache2 reload
cd /etc/apache2/sites-available
vim hypathie.net.conf
<VirtualHost *:80> ServerName hypathie.net ServerAdmin webmaster@localhost DocumentRoot /var/www/hypathie.net/ <Directory /var/www/hypathie.net> require all granted AllowOverride All </Directory> LogLevel info ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Options -Indexes:: -Indexes stops people from being able to go to a directory and see files listed in there. Instead they see a Forbidden error. This can stops users view all your files in your /images directory, for instance.
ErrorLog, CustomLog: Create log files specifically for your domain, so they don't get mixed in with traffic / errors from other sites running on the server.
a2ensite hypathie.net.conf
service apache2 reload
Le domaine n'a pas à être loué forcément, mais le nom du site pour Apache2.
vim /etc/hosts
127.0.0.1 localhost 127.0.1.1 db 127.0.1.1 hypathie.net # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
db
: c'est le hostname de la machine sur laquelle tourne apache2 et pour laquelle on vient de modifier le fichier /etc/hosts
.http://localhost
/var/www/html/index.html
On désactive ce site :
cd /etc/apache2/sites-enabled/ && a2dissite 000-default.conf && service apache2 reload
less /etc/hosts
127.0.0.1 localhost 127.0.1.1 db 127.0.1.1 hypathie.net # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Par exemple, on a créé les dossiers essai
et test
dans le dossier /var/www/
, avec dans chacun d'eux un dossier public
qui contient une page web d'accueil.
ls /var/www/
essai html hypathie.net test
Comme plus haut :
vim essai.conf
<VirtualHost *:80> ServerName essai.local ServerAdmin webmaster@localhost DocumentRoot /var/www/essai/public <Directory /var/www/essai/public/> require all granted AllowOverride All </Directory> LogLevel info ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
vim test.conf
<VirtualHost *:80> ServerName test.local ServerAdmin webmaster@localhost DocumentRoot /var/www/test/public <Directory /var/www/test/public/> require all granted AllowOverride All </Directory> LogLevel info ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
a2ensite essai.conf
a2ensite test.conf
service apache2 reload
On configure le fichier hosts des ordinateurs distants du réseau local susceptibles de se connecter aux sites test.local
et essai.local
:
Par exemple pour la machine d'ip : 192.168.0.14, qui se connectera sur le serveur d'ip 192.168.0.17 sur lequel tourne apache2 :
vim /etc/hosts
127.0.0.1 localhost 127.0.1.1 debian 192.168.0.17 db 192.168.0.17 test.local 192.168.0.17 essai.local # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
debian
: c'est le hostname de la machine cliente d'ip 192.168.0.14 qui va visiter les sites de la machine d'ip 192.168.0.17 sur laquelle tourne apache2 ;db
: c'est la hostname de la machine qui fait office de serveur qui a l'ip 192.168.0.17 et sur laquelle tourne apache2.test.local
: c'est le servername
, le nom du serveur virtuel crée par apache2 et qui va permettre au client (distant) de demander à apache2 de visualiser ce siteessai.local
: idem
On édite le fichier hosts qui se trouve : C:\Windows\System32\drivers\etc
On y ajoute l'ip du serveur debian qui se trouve sur le sous-réseau :
# localhost name resolution is handled within DNS itself. 127.0.0.1 localhost ::1 localhost 192.168.0.17 db 192.168.0.17 test.local 192.168.0.17 essai.local
essai.local
test.local
http://ip_du_routeur_de_son_fai/essai.local
Pour ce faire, il faut configurer son routeur pour rediriger les connexions extérieures qui viennent toc-toquer sur sa box-machin, dans cet exemple vers l'ip 192.168.0.17 de la machine sur laquelle tourne apache2.
mkdir Web/
chown -R hypathie:www-data /home/hypathie/Web/
hypathie
par l'utilisateur voulu !
chmod -R 750 /home/hypathie/Web/
cd /var/www/ && mv essai/ ~/Web/
www
, sinon en root !
ln -s ~/Web/essai/ /var/www/essai
Il n'y a rien de plus à faire, ni à modifier le virtualhost ni à recharger apache.
On donne le chemin du dossier de son répertoire personnel dans le virtualhost.
<VirtualHost *:80> ServerName test.local ServerAdmin webmaster@localhost DocumentRoot /home/user/dossier-racine-du-site/ <Directory /home/user/dossier-racine-du-site/ require all granted AllowOverride All </Directory> LogLevel info ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Sur Jessie inutile d'activer le module avec a2enmod.
apt-cache search php5
* On installe les paquets nécessaires.
apt-get install php5 libapache2-mod-php5
apt-cache search php7
apt install php7.4* libapache2-mod-php7.4*
chown -R utilisateur:www-data /chemin/du/site/
chmod -R 750 /home/utilisateur/site/
Si le droit d'exécution est nécessaire pour traverser les sous-dossiers du site, quand ceux-ci contiendront les fichiers de code source, mieux vaut retirer récursivement depuis le dossier racine du site le droit d'exécution sur tous les fichiers.
Pour ce faire :
cd /chemin/dossier/site_web && find . -type f -exec chmod 640 {} \;
/var/www/
www
et à ses sous dossiers à l'utilisateur courant du système et au groupe www-data, ainsi que les droits 755 avec chmod./etc/apache2/site-available
. Lorsqu'on crée un fichier on lui donne l'extension .conf
sur Jessie.a2ensite le-site
. On peut aussi crée manuellement un lien symbolique avec la commande linux lnindex.html
ou index.php
) se modifie à la dernière ligne :vim /etc/apache2/apache2.conf
DirectoryIndex index.html default.html index.php default.php
index.php
) doit se trouver dans le dossier déclaré dans la configuration du virtualhost dans la balise Directory
, par exemple :[...] <Directory /var/www/essai/public/> [...]
ls /etc/apache2/mods-available/
ls /etc/apache2/mods-enabled/
service apache2 reload
{start|stop|graceful-stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean}
a2ensite le_site
a2dissite le_site
a2enmod nomModule
a2dismod nomModule