Installer un serveur web (apache)


Installation de "Apache" :

pgd@rpi01:~ $ sudo apt-get install apache2            


Test de 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


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

pgd@rpi01:~ $ sudo a2enmod php7.2                     

pgd@rpi01:~ $ sudo nano /etc/php/7.3/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-php7.2

pgd@rpi01:~ $ sudo apt install libapache2-mod-php7.2  

pgd@rpi01:~ $ sudo a2enmod php7.2                     

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