dimanche 11 mai 2014

II. Ubuntu/Debian: Installation et configuration d'un Server LAMP - Suite et Fin

III. Quelques messages d'erreur


1. Problème d'identification du nom de domaine

 

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message


Ceci n'est pas message d'erreur, mais juste un message d'avertisement qui nous dit qu'Apache ne peut pas identifier le nom de domaine du server.

Pour y remedier, ajouter 'ServerName localhost' en fin de texte dans le fichier de configuration de Apache /etc/apache2/apache2.conf




Notez bien que l'on peut retrouver les messages d'erreur du serveur Apache dans les logs, /var/log/apache2/error.log

Sources:
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Recent Apache2 update broke virtual host and New Error on restart or starting

2. Problème de configuration de phpMyAdmin avec Apache

The requested URL /phpmyadmin was not found on this server.



C'est tout a fait normal vu que je n'ai choisi aucun serveur associé à phpmyadmin lors de l'installation de ce dernier. Reconfigurons donc phpmyadmin.

sudo dpkg-reconfigure phpmyadmin





Une autre option, si on ne souhaite pas reconfigurer phpmyadmin, serait d'ajouter 'Include /etc/phpmyadmin/apache.conf' a la fin du fichier /etc/apache2/apache2.conf

Sources:
Localhost or phpMyAdmin not found on server: How to fix?
phpmyadmin is not working after I installed it

3. Accès à phpMyAdmin sans mot de passe

Login without a password is forbidden by configuration




Et oui, je fais mon rebel, puisqu'il le faut de temps en temps pour ne pas s'ennuyer .. ce serveur n'est utilise qu'en local, pour m'entrainer au language php, donc je me suis permis de ne pas mettre de mot de passe pour acceder a phpmyadmin, ce qui est fortement deconseille.

Pour se connecter dans phpmyadmin sans mot de passe, il suffit d'editer le fichier

/etc/phpmyadmin/config.inc.php

Puis de decommenter la ligne '$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;'



Source;
How to login without password in phpMyAdmin


VI. Notes supplementaires

1. Afficher les erreurs php


Ce qui serait intéressant, lorsqu'on commence à programmer en PHP, c'est d'avoir les messages d'erreur qui s'affiche dans le navigateur. Pour ce faire, il faut editer le fichier /etch/php5/apache2, et de modifier la valeur comme suit: 'display_errors = On'.




Encore une fois, ceci est une machine pour faire des tests, et qu'il est recommande de garder l'option en 'display_errors = Off'.

Pour afficher les messages d'erreur avec un server MAMP (dans LAMP, il n'y a aucun message d'erreur qui s'affiche, de ce fait j'ai choisi l'option ci-dessus), il suffit d'ajouter le code ci-dessous sur chacune des pages php:

// Afficher les erreurs à l'écran
ini_set('display_errors', 1);
// Enregistrer les erreurs dans un fichier de log
ini_set('log_errors', 1);
// Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
ini_set('error_log', dirname(__file__) . '/log_error_php.txt');
// Afficher les erreurs et les avertissements
error_reporting(e_all);





Source:
Afficher les erreurs PHP


2. Edition des éléments d'une table dans MySQL


Voici les deux types de messages que j'ai rencontrés:


Ou encore:



Pour y remedier, il faut editer 'Columns', cliquer sur 'primary' (en general, c'est au niveau du champs qui s'auto-incremente), puis de valider par 'OK'.



Et voila, tout devrait etre bon maintenant.



Source:
Scripting Help>phpMyAdmin
mySQL (phpMyAdmin) error : This table does not contain a unique column
This table does not contain a unique column.

3. MOOC: Massive Open Online Curses

Pour cloturer cette documentation, voici une petite Liste de MOOCs pour suivre des cours de HTML5, CSS, PHP, JavaScript, etc. Il y en a d'autre sur internet en faisant des petites recherches.

Apprenez à créer votre site web avec HTML5 / CSS3
Concevez votre site web avec PHP et MySQL
Introduction à HTML5 - Animations et jeux

I. Ubuntu/Debian: Installation et configuration d'un Server LAMP

Avant de commencer cet article, je tiens a preciser que j'ai installe ce server LAMP dans le but de pouvoir suivre les cours sur le language PHP. Les manipulations ci-dessous sont des manipulations basiques pour Ubuntu 13.10 et 14.04, et non optimise pour un server en production.

I. Preparation du server LAMP


On va commencer par installer tout betement les paquets necessaire au server LAMP (Linux, Apache, MySQL and PHP):

sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql

Puis configurer le répertoire de travail. (Je reprends ici toutes les manipulation proposees dans la documentation de Ubuntu, mais en y rajoutant ma petite touche personne avec mes preferences.)


1. Protection de /var/www/html


sudo vim /etc/apache2/sites-available/000-default.conf
Rajouter en dessous de la ligne DocumentRoot /var/www/html (pour autoriser uniquement les machines avec une adresse IP du type 127.0.0.1 ou 192.168.1.0, à acceder aux dossier dans /var/www/html).

<Directory /var/www/html>
   Options Indexes FollowSymLinks MultiViews
   AllowOverride None
   <RequireAny>
     Require ip 127.0.0.1
     Require ip 192.168.1
   </RequireAny>
 </Directory>



2. Création des répertoires de travail


sudo mkdir -p /media/www-dev/{public,private}


3. Donner les droits utilisateur aux répertoires de travail


sudo chown -R $USER:users /media/www-dev


4. Configuration d'alias dans Apache



Éditez en super utilisateur le fichier : /etc/apache2/sites-available/000-default.conf afin d'y ajouter en dessous de la ligne DocumentRoot /var/www/html

## ZONE PUBLIQUE
Alias /public /media/www-dev/public
<Directory /media/www-dev/public>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

## ZONE PRIVEE
Alias /private /media/www-dev/private
<Directory /media/www-dev/private>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    <RequireAny>
        Require ip 127.0.0.1
        Require ip 192.168.1
        Require host .w3.org
    </RequireAny>
</Directory>
 

5. Ajout de liens symboliques


sudo ln -s /media/www-dev/public /var/www/html/public
sudo ln -s /media/www-dev/private /var/www/html/private
sudo rm /var/www/html/index.html

Note: pour supprimer un lien symbolique,

rm /dossier/nom_symbolique




6. Finalisation


sudo /etc/init.d/apache2 reload

ou sinon,  /etc/init.d/apache2 force-reload


II. Verification et test sur les differents serveurs


Verifions maintenant que tout fonctionne comme il faut:

1. Test du serveur Apache:


http://localhost/




2. Test du serveur PHP


sudo echo "<?php phpinfo(); ?>" >> /var/www/html/testphp.php

Voici ce que nous renvoie la page localhost/test.php


Source:
Wiki debian.org - LAMP, Linux Apache MySQL PHP


3.Test du serveur MySQL:


mysql -u root -p



Si vous n'avez pas mis de mot de passe, c'est le moment de le faire.

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('votre_nouveau_mot_de_passe');

Redemarrer le server Apache:
sudo /etc/init.d/apache2 restart

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.49 sec)

mysql> use test;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
24 rows in set (0.00 sec)

mysql> quit
Bye
malagasy@ubuntu:~/Temp$


Source:
Building a LAMP Server
Installing LAMP (Linux, Apache, MySQL and PHP) On Linux Mint
MySQL: Testing a MySQL Installation


4. Installation de l’interface de gestion de MySQL


Je vous propose ensuite l'installation de phpmyadmin, vu que jongler avec les lignes de commande n'est pas tres pratique - en tout cas, pour moi.

sudo apt-get install phpmyadmin





5. Racourci vers le dossier de travail


Une fois que tout est bon, vous pouvez ajouter le dossier /media/www-dev comme dans les marques pages de votre navigateur de dossier.



Et voila, le serveur LAMP est  prêt et est fonctionnel.

Source:
Installing Apache2 With PHP5 And MySQL Support On Ubuntu 13.04 (LAMP)