Installer un serveur web (apache)
Installation de "Apache" :
pgd@rpi01:~ $ sudo apt-get install apache2 apache2-utils -y
Test de la bonne l'installation :
http://127.0.0.1
pgd@rpi01:~ $ sudo rm /var/www/html/index.html
pgd@rpi01:~ $ sudo chmod 777 /var/www/html
pgd@rpi01:~ $ echo "<?php phpinfo(); ?>" > /var/www/html/index.php
Modification de la configuration d'Apache
pgd@rpi01:~ $ sudo nano /etc/apache2/ports.conf
pgd@rpi01:~ $ sudo chmod 777 /etc/apache2/apache2.conf
pgd@rpi01:~ $ sudo nano /etc/apache2/apache2.conf
pgd@rpi01:~ $ sudo chmod 664 /etc/apache2/apache2.conf
pgd@rpi01:~ $ sudo nano /etc/apache2/sites-available/000-default.conf
➔ modifier DocumentRoot
En cas de refus d'accéder directement aux sous-répertoires par le lien web :
pgd@rpi01:~ $ sudo nano /etc/apache2/apache2.conf
Remplacer :
Options Indexes FollowSymLinks
par
Options FollowSymLinks
Prise en compte des .htaccess :
pgd@rpi01:~ $ sudo nano /etc/apache2/apache2.conf
Remplacer tous les :
AllowOverride Non
par "AllowOverride All"
Redémarrage du serveur Apache pour prise en compte des modifications :
pgd@rpi01:~ $ sudo service apache2 restart
ou bien
pgd@rpi01:~ $ sudo /etc/init.d/apache2 restart
Installation de PHP :
pgd@rpi01:~ $ sudo apt-get install php libapache2-mod-php -y
Recherche version php installée
pgd@rpi01:~ $ ls /etc/php
pgd@rpi01:~ $ sudo a2enmod phpx.x
pgd@rpi01:~ $ sudo nano /etc/php/x.x/apache2/php.ini
➔ si besoin mettre à jour error_reporting et display_errors ont respectivement les valeurs E_ALL & on.
En cas de problème :
pgd@rpi01:~ $ sudo apt purge libapache2-mod-php libapache2-mod-phpx.x
pgd@rpi01:~ $ sudo apt install libapache2-mod-phpx.x
pgd@rpi01:~ $ sudo a2enmod phpx.x
pgd@rpi01:~ $ sudo systemctl restart apache2
Installation de la librairie GD :
pgd@rpi01:~ $ sudo apt-get install php-gd
pgd@rpi01:~ $ sudo apt-get install php7.2-gd
Installation de MariaDB (remplace MySQL) :
pgd@rpi01:~ $ sudo apt-get install mariadb-server
pgd@rpi01:~ $ sudo apt install php-mysql
pgd@rpi01:~ $ sudo apt install php7.2-mysqli
pgd@rpi01:~ $ sudo mysql_secure_installation
pgd@rpi01:~ $ sudo phpenmod mysqli
pgd@rpi01:~ $ sudo service apache2 restart
Installation MySQL :
pgd@rpi01:~ $ sudo aptitude install mysql-server php5-mysql
pgd@rpi01:~ $ mysql --user=root --password=votrepasswd
pgd@rpi01:~ $ sudo aptitude install phpmyadmin
➔ Choisir Apache 2
➔ dbconfig-common
http://127.0.0.1/phpmyadmin
Installation de SQLite3 :
pgd@rpi01:~ $ sudo apt-get install sqlite3
Cas du stockage de fichiers en dehors de l'arborescence du site web DocumentRoot
Il peut arriver d'avoir besoin d'autoriser l'accès web à des portions du système de fichiers qui ne se trouvent pas dans l'arborescence DocumentRoot.
Dans ce cas il faut ajouter une section dans un fichier de configuration.
pgd@rpi01:~ $ sudo nano /etc/apache2/sites-available/000-default.conf
➔ Ajouter les lignes suivantes dans la section "VirtualHost" :
Alias "/docs" "/var/web"
<Directory "/var/web">
Require all granted
</Directory>
L'URL http://www.example.com/docs/dir/file.html correspondra au fichier /var/web/dir/file.html.
Installation d'une environnement virtuel Python pour Apache ou autres
En cas de besoin d'exécuter des scripts python en shell sous Apache, il est nécessaire de créer un environnement virtuel Python.
pgd@rpi01:~ $ cd /<chemin du projet>
pgd@rpi01:~ $ virtualenv -p python3 <virtual env name>
pgd@rpi01:~ $ . <virtual env name>/bin/activate
pgd@rpi01:~ $ pip install <modules nécessaires>
pgd@rpi01:~ $ deactivate
Ensuite il faut utiliser la commande python de l'environnement virtuel :
pgd@rpi01:~ $ /<chemin du projet/<virtual env name>/python3 <script python>
Installation de Python sous Apache (cgi)
pgd@rpi01:~ $ sudo apt get -y install python
pgd@rpi01:~ $ sudo a2enmod cgi
pgd@rpi01:~ $ sudo systemctl restart apache2
pgd@rpi01:~ $ sudo nano /etc/apache2/apache2.conf
Ajouter à la fin du fichier :
######### Adding capaility to run CGI-scripts #################
ServerName localhost
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
Options +ExecCGI
AddHandler cgi-script .cgi .pl .py
pgd@rpi01:~ $ sudo nano /etc/apache2/conf-available/serve-cgi-bin.conf
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin/">
AllowOverride None
Options +ExecCGI
</Directory>
Installation de mod_python (obsolète ?)
Pour exécuter des scripts python :
pgd@rpi01:~ $ sudo apt-get install libapache2-mod-wsgi-py3
ou
pgd@rpi01:~ $ sudo apt install libapache2-mod-wsgi