vendredi 31 juillet 2009

LAMP (Suite)

Salamou Alaykoum,
Ouf! j'ai enfin réussis à éxprimer le determinant de la métrique à 4 dimensions de l'espace-temps en fonction de celui d'une métrique d'une surface tridimensionnelle immergée dans ce dernier...
Ok ok ... où en etions nous???
Ah oui! restait à tester mysql (serveur et module php).
Voila, créez un fichier nommé msqltest.php dans le dossier www et mettez-y le code suivant:
<?php
$link = mysql_connect("localhost","root","");
mysql_select_db("information_schema", $link);
$query = "SELECT * FROM `USER_PRIVILEGES`";
$result = mysql_query($query, $link);
if(mysql_errno() != 0)
{
echo mysql_error();
mysql_close();
exit();
}
while($num_rows = mysql_fetch_array($result)) {print_r($num_rows);}
mysql_close();
?>
Puis dans votre navigateur allez à l'adresse localhost/msqltest.php vous devriez voir normalement quelque chose qui ressemble à ça:

Array ( [0] => 'root'@'localhost' [GRANTEE] => 'root'@'localhost' [1] => [TABLE_CATALOG] => [2] => SELECT [PRIVILEGE_TYPE] => SELECT [3] => YES [IS_GRANTABLE] => YES ) Array ( [0] => 'root'@'localhost' [GRANTEE] => 'root'@'localhost' [1] => [TABLE_CATALOG] => [2] => INSERT [PRIVILEGE_TYPE] => INSERT [3] => YES [IS_GRANTABLE] => YES )
Qu'est-ce-que ça veut dire? ça veut dire que le serveur mysql marche de même que le module mysql de php.

Maintenant je vais vite fait vous présenter le fameux géstionnaire de bases de données phpmyadmin, pour l'avoir c'est simple, choisissez ici la dernière version (all languages), c'est un fichier compréssé, allez (en tant que root avec sudo nautilus) dans le repertoire www et décompressez le. Regardez le chemin du dossier ....

PUB/ Tous ce qui vien après /var/www c-à-d /var/www/PATH/mapage.php est accessible en url par localhost/PATH/mapage.php par exemple, pour acceder à la page située à /var/www/mesprojets/projet1/test1/test.php il faudra taper http://localhost/mesprojets/projet1/test1/test.php
Vous verrez alors la page d'acceuil de pma qui demande un login et un password, si vous êtes bon observateur vous savez déja que:
Login = root
Password = /(rien)
Voila voilou, tout est prêt, il ne vous reste qu'à trouver un bon tuto (je recommande le sdz) et commencer à coder ;-)

Rendre le dossier www "writable" par "whoami" (vous)

Dans une console faire :
ubugnu@ubugnu-laptop:~$ sudo gedit /etc/apache2/apache2.conf
Puis cherchez les deux lignes:

user www-data
group www-data
Remplacez www-data par votre pseudo (pour le connaitre faire un whoami "qui-suis-je" dans un terminal) puis enregistrez.
Puis tapez la commade suivante, mettez votre pseudo là ou inquiqué:
ubugnu@ubugnu-laptop:~$ sudo chown -R pseudo:pseudo /var/www
Redemarrez le serveur Apache avec:
ubugnu@ubugnu-laptop:~$ sudo /etc/init.d/apache2 restart
Et le tour est joué ;-)

Changer le mot de passe mysql

Il est indispensable de le changer car si par malheur quelqu'un accède à votre machine via le port sql et trouve qu'il n'y a pas de mot de passe, il pourra exécuter des commandes arbitraires sur votre machine, comme par exemple créer une fichier php (un shell) via la commane SELECT '... code php ...' INTO OUTFILE '/var/www/phpmyadmin/tests/' puis y acceder via votre serveur Apache, il aura ainsi accés à un grand nombre de fichiers de votre machine, ou alors il pourra lire directement un fichier avec la commande LOAD_FILE ... Bref, le risque est bien là, donc mieux vaut prevenir que guérir (j'ai déja éxpérimenté ça).
L'opération se résume en une ligne:
ubugnu@ubugnu-laptop:~$ sudo mysqladmin -u root password XXXXXXXXXXX -p
Où XXXXXXXXXXX est le nouveau mot de passe.