Précédent Sommaire 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Suivant
LAMP est l'acronyme de Linux Apache MySQL PHP.
WAMP est l'acronyme de Windows Apache MySQL PHP.
Comme nous l'avons vu, WampServer ou XAMPP permettent d'installer facilement un serveur Web (avec les 3 éléments Apache, MySQL et PHP).
Cependant, ces environnements ne sont pas destinés à un usage en production : ce sont normalement des outils de test et développement, en local.
Pour bénéficier de toute la puissance des technologies Apache - MySQL - PHP, il faut installer et configurer chacune de ces composantes de manière classique : le serveur Web Apache qui sert de base, le système de base de données MySQL, l'environnement de programmation PHP, etc.
Pour les gros sites Web, des compétences deviennent indispensables pour tirer pleinement parti des nombreuses fonctionnalités offertes.
Ce qui suit a été testé avec Linux (Ubuntu) et la carte Raspberry Pi modèle B (Raspbian wheezy) avec les versions :
Toutes les installations se feront en lignes de commande !
pi@raspberrypi ~ $ sudo apt-get install apache2
...
The following extra packages will be installed:
apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1
libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap ssl-cert
Suggested packages:
apache2-doc apache2-suexec apache2-suexec-custom openssl-blacklist
The following NEW packages will be installed:
apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common
libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap ssl-cert
...
Dans un navigateur :
http://localhost/index.html
doit afficher la page :
/var/www
http://localhost/index.html
correspond donc au fichier /var/www/index.html
Démarrage du serveur
$ sudo service apache2 start
Arrêt du serveur
$ sudo service apache2 stop
Redémarrage du serveur
$ sudo service apache2 restart
pi@raspberrypi ~ $ sudo apt-get install libapache2-mod-php5
...
The following extra packages will be installed:
apache2-mpm-prefork libonig2 libqdbm14 php5-cli php5-common
Suggested packages:
php-pear
The following packages will be REMOVED:
apache2-mpm-worker
The following NEW packages will be installed:
apache2-mpm-prefork libapache2-mod-php5 libonig2 libqdbm14 php5-cli
php5-common
...
Nous allons créer le fichier /var/www/test.php
qui contient le code suivant :
<?php print "Bonjour"; phpinfo(); ?>
On peut utiliser l'éditeur de texte nano
:
$ sudo nano
Saisir le code, puis :
^O WriteOut
File Name to Write : /var/www/test.php
^X Exit
Dans un navigateur :
http://localhost/test.php
doit afficher la page :
pi@raspberrypi ~ $ sudo apt-get install mysql-server-5.5
...
The following extra packages will be installed:
heirloom-mailx libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl
libmysqlclient16 libnet-daemon-perl libplrpc-perl mysql-client-5.5
mysql-common mysql-server-core-5.5
Suggested packages:
exim4 mail-transport-agent libipc-sharedcache-perl libterm-readkey-perl
tinyca
Recommended packages:
mailx
The following NEW packages will be installed:
heirloom-mailx libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl
libmysqlclient16 libnet-daemon-perl libplrpc-perl mysql-client-5.5
mysql-common mysql-server-5.5 mysql-server-core-5.5
...
Une fenêtre apparaît :
Configuring mysql-server-5.5
New password for the MySQL "root" user: algoud
(par exemple)
Ce mot de passe du superutilisateur de MySQL est à conserver précieusement !
pi@raspberrypi ~ $ mysql -u root -p -e "SHOW DATABASES"
Enter password: ******
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
Démarrage du serveur
$ sudo service mysql start
Arrêt du serveur
$ sudo service mysql stop
Redémarrage du serveur
$ sudo service mysql restart
pi@raspberrypi ~ $ sudo apt-get install php5-mysql
...
The following extra packages will be installed:
libmysqlclient18
The following NEW packages will be installed:
libmysqlclient18 php5-mysql
...
Nous allons créer le fichier /var/www/test_mysql.php
qui contient le code suivant :
<?php $connexion = mysql_connect("localhost","root","algoud") or die ("Connexion au serveur impossible ".mysql_error()); $resultat = mysql_query("SHOW DATABASES"); while($ligne = mysql_fetch_array($resultat,MYSQL_ASSOC)) { print $ligne['Database']."<br/>"; } ?>
On peut utiliser l'éditeur de texte nano
:
$ sudo nano
Saisir le code, puis :
^O WriteOut
File Name to Write : /var/www/test_mysql.php
^X Exit
Dans un navigateur :
http://localhost/test_mysql.php
doit afficher la page :
pi@raspberrypi ~ $ sudo apt-get install phpmyadmin
...
The following extra packages will be installed:
dbconfig-common libmcrypt4 php5-gd php5-mcrypt
Suggested packages:
libmcrypt-dev mcrypt mysql-server
The following NEW packages will be installed:
dbconfig-common libmcrypt4 php5-gd php5-mcrypt phpmyadmin
...
Une fenêtre apparaît :
Web server to reconfigure automatically: [*] apache2
Configuring phpmyadmin
Configure database for phpmyadmin with dbconfig-common? Yes
Password of the database's administrative user: algoud
(c'est le mot de passe défini lors de l'installation du serveur MySQL)
MySQL application password for phpmyadmin: (laisser le champ vide)
Dans un navigateur :
http://localhost/phpmyadmin
doit afficher la page :
En cas de problème, la commande suivante devrait le résoudre :
$ sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
.htaccess
Pour rendre actif les fichiers .htaccess
il faut modifier le fichier de configuration du serveur Apache : /etc/apache2/sites-available/default
$ sudo nano /etc/apache2/sites-available/default
Remplacer la directive AllowOverride None
par AllowOverride All
pour le dossier /var/www
:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
puis redémarrer le serveur Apache :
$ sudo service apache2 restart
Pour des raisons de sécurité, les mots de passe sont chiffrés.
Par exemple, on veut définir l'utilisateur admin
avec le mot de passe Fe45hJ
dans le fichier .password
$ htpasswd -c .password admin
New password: Fe45hJ
Re-type new password: Fe45hJ
Adding password for user admin
Le fichier .password
contient le mot de passe crypté :
$ cat .password
admin:$apr1$C0HfQNxE$ecy12tkKkAXL8FbN6ZiwQ.
Le fichier de configuration du serveur Apache /etc/apache2/sites-available/default
donne l'emplacement du répertoire par défaut des scripts CGI :
/usr/lib/cgi-bin
Nous allons créer le script CGI en langage Python (version 2.7) /usr/lib/cgi-bin/testcgi.py
:
#! /usr/bin/python # -*- coding: utf-8 -*- print "Content-Type: text/plain ; charset=utf-8\n" print "Une page de texte brut en CGI-Python"
On peut utiliser l'éditeur de texte nano
:
$ sudo nano
Saisir le code, puis :
^O WriteOut
File Name to Write : /usr/lib/cgi-bin/testcgi.py
^X Exit
Il faut maintenant donner des droits en exécution sur ce fichier :
$ sudo chmod +x /usr/lib/cgi-bin/testcgi.py
Dans un navigateur :
http://localhost/cgi-bin/testcgi.py
doit afficher la page :
Contenu sous licence CC BY-NC-SA 3.0
Fabrice Sincère ; version 1.5.5
Contacter l'auteur