Articles Taggés ‘Mysql’

Importer des fichiers trop volumineux pour PHPmyAdmin

13 avril 2010

Si le fichier SQL que vous essayez d’importer est trop volumineux pour PhpMyAdmin, il vous reste la solution d’importer dans MySQL directement en ligne de commande.

mysql -D ma_base_de_donnees -u nom_Utilisateur -p mot_de_passe < mon_gros_fichier.sql

Vous ne passez plus par l’interface web et du coup vous ne serez pas limité.

Avant d’exécuter la commande placez vous,avec la commande cd, dans le dossier qui contient votre fichier mon_gros_fichier.sql. nom_Utilisateur et mot_de_passe correspondent à un utilisateur MySQL, vous pouvez paramétrer les droits de celui-ci (GRANT par exemple) dans privilèges dans l’interface PHPmyAdmin

Pour exécuter cette ligne de commande vous pouvez vous connecter sur le serveur Web avec Putty par exemple et pour mettre le fichier sur le serveur vous pouvez utiliser un client FTP comme fileZilla.

Installer PHP sous Ubuntu, soit LAMP (Linux Apache MySQL PHP)

12 mars 2010

Installation de l’environnement

Pour développer en local du PHP, vous aurez besoin d’installer Apache, MySQL et PHP.
Tapez dans un terminal :
[cc lang=’bash’ width=’100%’]
sudo tasksel install lamp-server
[/cc]
Il est conseillé de mettre un mot de passe pour MySQL
Une fois que c’est fait, vous pouvez tester le serveur en entrant l’adresse suivante dans votre navigateur préféré : http://127.0.0.1 ou http://localhost/

Si vous voyez ce message :
[cc width=’100%’]
It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.
[/cc]
c’est que tout s’est bien passé.

Changer de répertoire de travail

Par défaut, la page web que vous voyez se trouve dans
[cc lang=’bash’ width=’100%’]
/var/www
[/cc]
Ce qui n’est pas très pratique, car par défaut vous n’avez pas les droits en écriture sur ce dossier qui appartient à ROOT.

Puisqu’on ne va pas l’utiliser rendons ce dossier inaccessible de l’extérieur.
[cc lang=’bash’ width=’100%’]
sudo gedit /etc/apache2/sites-available/default
[/cc]
Recherchez le bloc délimité par <Directory /var/www/> et </Directory/>et remplacez-le contenu par :
[cc lang=’bash’ width=’100%’]

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order Deny,Allow
Deny from all
Allow from 127.0.0.1

[/cc]
Ajoutez également Allow from 192.168.0.0/24 si vous voulez y accéder de votre réseau local, si vos adresses IP local sont en 192.168.1.0, adaptez évidemment.

Ouvrez ensuite le fichier httpd.conf
[cc lang=’bash’ width=’100%’]
sudo gedit /etc/apache2/httpd.conf
[/cc]
Et ajoutez cette ligne
[cc lang=’bash’ width=’100%’]
ServerName localhost
[/cc]
On va maintenant activer l’option userdir, qui va permettre d’activer un dossier de développement pour chaque utilisateur.
[cc lang=’bash’ width=’100%’]
mkdir /home/$USER/public_html
sudo a2enmod userdir
[/cc]
On redémarre Apache, pour que les modifications soient prises en compte.
[cc lang=’bash’ width=’100%’]
sudo /etc/init.d/apache2 force-reload
[/cc]
Voilà, maintenant le dossier public_html qui se trouve dans votre espace de travail est accessible via http://127.0.0.1/~yann
Remplacez évidemment yann par votre nom d’utilisateur
pour tester, créez un nouveau fichier test.php dans le dossier public_html et copiez-y ce code

[cc lang=’php’ width=’100%’]
< ?php echo phpinfo(); ?>
[/cc]

Ouvrez l’URL http://127.0.0.1/~yann/test.php, vous devriez voir la configuration PHP s’afficher. Si votre navigateur télécharge les fichiers au lieu de les interpréter, regardez la fin de cet article…

Installer phpMyAdmin

Téléchargez l’archive de phpMyAdmin et décompressez là. Renommez ensuite le dossier en phpMyAdmin puis déplacez le dans /var/www
[cc lang=’bash’ width=’100%’]
sudo mv phpMyAdmin/ /var/www/phpMyAdmin
[/cc]
phpMyAdmin utilise le module mcrypt, alors installons-le
[cc lang=’bash’ width=’100%’]
sudo apt-get install php5-mcrypt
[/cc]
On redémarre Apache
[cc lang=’bash’ width=’100%’]
sudo /etc/init.d/apache2 force-reload
[/cc]
Et voilà phpMyAdmin est accessible à l’adresse http://127.0.0.1/phpMyAdmin
Connectez vous avec root : mot_de_passe_que vous avez_choisi

Où est mon php.ini ?

Le fichier de configuration de PHP se trouve dans /etc/php5/apache2/php.ini pour désactiver short_open_tag et magic_quotes_gpc par exemple, ce qui serait une très bonne idée 😉
N’oubliez pas de relancer Apache
[cc lang=’bash’ width=’100%’]
sudo /etc/init.d/apache2 force-reload
[/cc]

Mon navigateur télécharge les fichiers PHP au lieu de les interpréter 🙁

Sous Ubuntu 10.04, php est désactivé quand vous utilisez le module a2enmod. Pour éviter que le navigateur télécharge les fichiers php, éditez le fichier
[cc lang=’bash’ width=’100%’]
sudo gedit /etc/apache2/mods-enabled/php5.conf
[/cc]
Et commentez les lignes ci dessous :
[cc lang=’bash’ width=’100%’]
#
#
# php_admin_value engine Off
#

#

[/cc]
Et on relance apache…
[cc lang=’bash’ width=’100%’]
sudo /etc/init.d/apache2 force-reload
[/cc]

Si vous recherchez des conseils pour la certification PHP 5

Mysql : ON DUPLICATE KEY UPDATE

4 mars 2010

Une petite clause bien pratique : ON DUPLICATE KEY UPDATE.
Imaginez que vous vouliez mettre à jour un enregistrement dans votre base dans le cas ou celui ci existe déjà et sinon, s’il n’existe pas, en créer un nouveau. Une solution serait de faire un SELECT sur la clé, et soit un UPDATE ou un INSERT selon que la clé existe ou non. Une autre solution serait de faire un UPDATE et si mysql_affected_rows == 0 alors vous faites un INSERT… Pourquoi pas.

Mais MySQL permet de faire tout ça en une seule requête !
[cc lang=’php’ width=’100%’]
INSERT INTO maTable (id_table,champ_table)
VALUES (‘152′,’valeur à modifier’)
ON DUPLICATE KEY UPDATE
champ_table=’valeur à modifier’;
[/cc]
Bien entendu, pas besoin de mettre de WHERE dans la partie UPDATE vu que c’est parce que la clé existe que le update est exécuté

A noter que ON DUPLICATE KEY UPDATE est différent de REPLACE qui s’apparente plutôt à un DELETE + INSERT qui oblige à donner une valeur à tous les champs, alors qu’avec ON DUPLICATE KEY UPDATE on ne spécifie que les champs qui sont à modifier.