SDB:Linux Apache MySQL PHP

Aller à : navigation, rechercher


Testé sur openSUSE Articles recommendés Articles liés
Icon-checked.png

Icon-manual.png Icon-help.png
Cette page explique comment installer un serveur LAMP — Linux Apache MariaDB PHP. Pour cela il faut installer et configurer:
  • un serveur Apache2,
  • un serveur de bases de donnés MariaDB — MySQl —,
  • PHP5 pour un fonctionnement coordonné avec Apache, et pour finir
  • phpMyAdmin pour administrer les bases de données depuis une interface Web.


Le temps requis pour une telle installation / configuration est d'environ 20 minutes, mais cela peut dépendre de la performance de votre connexion à Internet.


Cette article a été mis à jour pour refléter une installation sur openSUSE Leap 42.1 Néanmoins, il s'écarte assez peu des préconisations concernant les versions précédentes d'openSUSE.

Obtenir les privilèges du super-utilisateur

Ouvrez un terminal et tapez:

user $ su
Password:

Après que vous avez tapé votre mot de passe et validé, le prompt passe en rouge et se termine par le signe #.


Installer et configurer Apache2

Installer Apache2

Vérifiez que vous avez les privilèges du super-utilisateur et entrez la commande suivante :

root # zypper in apache2


Démarrer Apache2

Pour démarrer le serveur apache, entrez la commande suivante :

root # systemctl start apache2
Si vous devez le redémarrer, utilisez
root # systemctl restart apache2

ou si vous voulez l'arrêter

root # systemctl stop apache2


Pour que le serveur apache démarre automatiquement au démarrage de l'ordinateur :

root # systemctl enable apache2


Tester l'installation

Pour tester le fonctionnement du serveur apache, créez un fichier index.html dans le dossier /srv/www/htdocs/ avec le contenu suivant :

Fichier /srv/www/htdocs/index.html Fichier de test pour apache
<html>
    <body>
        <h1>Bienvenue sur mon site Web!</h1>
    </body>
</html>

Maintenant, pointez votre navigateur sur : localhost. Vous devriez voir une page avec le titre de niveau 1 suivant : Bienvenue sur mon site Web!.

Autoriser l'accès public au serveur Web

Pour le moment, le serveur Web n'est accessible que depuis l'hôte local — localhost. Si vous voulez donner l'accès depuis un hôte distant, vous devez ouvrir le port 80 (http) dans le pare-feu. Pour cela, éditez le fichier {/etc/sysconfig/SuSEfirewall2 et changez la ligne

FW_CONFIGURATION_EXT=""

en

FW_CONFIGURATION_EXT="apache2""
Les élément listés dans cette ligne doivent être séparés par une espace.


Ensuite, redémarrez le pare-feu :

root # systemctl restart SuSEfirewall2
En alternative, vous pouvez autoriser cet accès public en utilisant YaST. Sélectionnez Sécurité et utilisateurs --> Pare-feu --> Services autorisés et ajouter serveur HTTP.

Installer et configurer PHP5

Installer PHP5

Assurez-vous d'avoir les privilèges du super-utilisateur — voir plus haut. Installez php5 avec :

root # zypper in php5 php5-mysql apache2-mod_php5

N'oubliez pas d'activer mod-php avec :

root # a2enmod php5

Voilà! C'est tout! php5 est installé.

Redémarrer le serveur Web

Maintenant que PHP5 est installé, il faut redémarrer le serveur apache :

root # systemctl restart apache2

Testier l'installation

Pour vérifier que php5 fonctionne, créez un fichier index.php dans le dossier /srv/www/htdocs/ avec le contenu suivant :

Fichier /srv/www/htdocs/index.php Fichier de test pour php
<?php 
    phpinfo();
 ?>

Pointez maintenant votre navigateur sur localhost/index.php. Vous devriez voir une page avec un table résumant la configuration de php.

Index-php.png

Installer et configurer MariaDB

MariaDB est un paquet alternatif à MySQL, c'est pourquoi nous utiliserons indifféremment les mots MariaDB et mysql dans la suite de ce document.


Installer MariaDB

Assurez-vous d'avoir les privilèges du super-utilisateur — voir plus haut. Vous devez installer mariadb et mariadb-tools:

root # zypper in mariadb mariadb-tools
Le paquet mariadb-tools est nécessaire pour l'administration


Démarrer le serveur MariaDB

Pour démarrer le serveur MariaDB, executez:

root # systemctl start mysql
Si vous voulez voir les messages émis par le serveur affichez le contenu du fichier /var/log/messages :
root # cat /var/log/messages


Pour que le serveur démarre à chaque démarrage de l'ordinateur :

root # systemctl enable mysql
Si vous avez besoin de redémarrer mysql, exécutez
root # systemctl restart mysql

ou, si vous voulez l'arrêter

root # systemctl stop mysql


Configurer serveur MariaDB/MySql

Avec Leap 42.1

Pour configurer le serveur MariaDB avec un niveau de sécurité amélioré, il est recommandé d'utiliser le script mysql_secure_installation fourni par openSUSE. Voici comment les choses se passent :

root # mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here.

Enter current password for root (enter for none):

Contentez-vous de presser la touche Entrée pour le moment.

root #
... (suite de la sortie de la commande précédente)

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation.

Set root password? [Y/n] y

Répondez y pour oui ici.

root #
... (suite de la sortie de la commande précédente)

New password:

Saisissez le mot de passe du super-utilisateur.

root #
... (suite de la sortie de la commande précédente)

Re-enter new password:

Confirmez le mot de passe du super utilisateur.

root #
... (suite de la sortie de la commande précédente)

Password updated successfully!

Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.

Remove anonymous users? [Y/n]

Répondez y pour oui pour supprimer les utilisateurs anonymes.

root #
... (suite de la sortie de la commande précédente)

... Success!

Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]

Répondez y pour oui.

root #
... (suite de la sortie de la commande précédente)

... Success!

By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.

Remove test database and access to it? [Y/n]

Répondez y pour oui

root #
... (suite de la sortie de la commande précédente)

- Dropping test database...

... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

Reload privilege tables now? [Y/n]

Répondez y pour oui

root #
... (suite de la sortie de la commande précédente)

... Success!

Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure.

Thanks for using MariaDB!

Pour mémoire en ce qui concerne les versions antérieures

En remplaçant <NEW PASSWORD> avec la valeur du mot de passe que vous voulez définir, exécutez :

root # mysqladmin -u root password '<NEW PASSWORD>'
Password:

Saisissez le mot de passe actuel ou pressez simplement Entrée si c'est la première fois que vous définissez un mot de passe.

Se connecter au client

Maintenant vous pouvez vous connecter au client du serveur en exécutant la commande suivante :

root # mysql -u root -p
Enter password:

Saisissez votre mot de passe de super-utilisateur.

root #
... (suite de la sortie de la commande précédente)

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 154 Server version: 10.0.22-MariaDB openSUSE package

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Pour quitter et retourner au terminal, exécutez :

root #
... (suite de la sortie de la commande précédente)


Installer phpMyAdmin

Qu'est ce que phpMyAdmin?

phpMyAdmin — encore appelé pma — est un outil d'administration des bases de données via une interface Web.

Installer phpMyAdmin

Pour installer phpMyAdmin exécutez :

root # zypper in phpMyAdmin

Un certain nombre de modules php5 seront installés en tant que dépendances. Ensuite redémarrez le serveur apache.

root #
... (suite de la sortie de la commande précédente)

Se connecter à phpMyAdmin

Pour se connecter à phpMyAdmin:

  • Pointez votre navigateur sur localhost/phpMyAdmin
  • Saisissez l'identifiant et le mot de passe de l'utilisateur root du serveur mysql.
  • Cliquez sur le bouton de confirmation.
Normalement, vous devriez aboutir sur une page avec un message d'erreur vous signalant que l'extension Multibytes String n'est pas activé. C'est l'objet de la section suivante que de l'activer.


Configurer phpMyAdmin et tester

Leap 42.1

Éditez le fichier /etc/php5/apache2/php.ini. Pour activer l'extension Multibytes String qui est nécessaire pour les langues qui nécessitent plus d'un octet par caractère, recherchez la ligne :

;php_mbstring.dll

et dé-commentez la. Ensuite redémarrez apache :

root # systemctl restart apache2

Maintenant pointez votre navigateur sur http://localhost/phpmyadmin or http://ip_address/phpmyadmin et entrez l'identifiant et le mot de passe de l'utilisateur root du serveur mysql.

500px

C'est tout! Vous pouvez administrer vos bases de données depuis une interface Web.

Versions antérieures

La configuration de phpMyAdmin se fait en éditant le fichier /etc/phpMyAdmin/config.inc.php.

Fichier /etc/phpMyAdmin/config.inc.php Configuration de phpMyAdmin
* Ouvrez le fichier et modifiez les lignes suivantes (notez le double tiret bas dans le nom des tables) : 
 $cfg['Servers'][$i]['controluser'] = '<SOME NAME>';
 $cfg['Servers'][$i]['controlpass'] = '<SOME PASSWORD>';
 /*Advanced phpMyAdmin features */
 $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
 $cfg['Servers'][$i]['relation'] = 'pma__relation';
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
 $cfg['Servers'][$i]['history'] = 'pma__history';
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
 $cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';

Vous devez:

  • remplacer <some name> — première ligne — et <some password> — deuxième ligne — par le nom du nouveau compte et par son mot de passe.
  • Changer la protection du ce fichier afin qu'il soit propriété de root et accessible seulement en lecture par le groupe www.
root # chown root:www /etc/phpMyAdmin/config.inc.php
root # chmod 640 /etc/phpMyAdmin/config.inc.php
  • Vous reconnecter à localhost/phpMyAdmin et utiliser l'onglet Import de la page the phpMyAdmin pour importer le fichier /usr/share/doc/packages/phpMyAdmin/example/create_tables.sql
Un commentaire vous avertit qu'un utilisateur pma devrait exister, néanmoins ce n'est pas une nécessité.
  • Vous reconnecter et déconnecter avec le nom d'utilisateur root et le mot de passe root de mysql.
  • Selectionnez l'onglet Users and pressez Add User — Ajouter un utilisateur. Saisissez un nom d'utilisateur nouveau, celui que vous avez placé dans la ligne controluser plus haut, le nom localhost en tant qu' host — hôte — et le mot de passe — celui que vous avez placé dans la ligne controlpass plus haut et cliquez le bouton de confirmation — Go tout à fait en bas à droite de la page.
  • Créez un fichier avec le contenu suivant, dans lequel <SOME NAME> et <SOME PASSWORD> sont remplacé par les valeurs définies ci-dessus. Notez que les simples quotes doivent être conservées dans la reqûete mysql.
Fichier Créer un utilisateur msql
 GRANT USAGE ON mysql.* TO '<SOME NAME>'@'localhost' IDENTIFIED BY '<SOME PASSWORD>';
 GRANT SELECT (
   Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
   Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
   File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
   Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
   Execute_priv, Repl_slave_priv, Repl_client_priv
  ) ON mysql.user TO 'somename'@'localhost';
  GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO 'somename'@'localhost';
  GRANT SELECT ON mysql.db TO 'somename'@'localhost';
  GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'somename'@'localhost';

and import that file via the Import tab.

  • Lisez la documentation de phpMyAdmin sur phpMyAdmin website.
  • N'oubliez pas de prendre les mesures de sécurité nécessaires.

Vous devriez désormais disposer d'un accès à vos bases de données par une interfaces Web ! Félicitations !