Outils pour utilisateurs

Outils du site


serveur_lamp7

Installer un server LAMP (Linux - Apache - MySQL - PHP 7)

Installation

Suivez la procédure décrite sur le forum Ubuntu. Attention, il y a toutefois des changements depuis la 13.10 !

Si vous êtes pressé, ci-dessous, voici toutes les commandes minimales :

Installation

  sudo apt-get install apache2 apache2-doc mysql-server php7.4 php7.4-gd libapache2-mod-php7.4 php7.4-mysql php7.4-xml

L'installation ne demande plus le mot de passe principal de la base MySQL. Il va falloir suivre une procédure particulière (voir plus loin).


Vérification du bon fonctionnement d'Apache

Ouvrez votre navigateur internet et rendez-vous à l'URL : http://127.0.0.1 Le navigateur doit afficher une page d'accueil avec des commentaires techniques.


Changer le root du serveur web (/var/www) pour mettre votre propre répertoire

Editer le fichier de configuration

  sudo xed /etc/apache2/sites-available/000-default.conf

Modifier la ligne 'DocumentRoot' : mettez votre répertoire à la place de /var/www

  DocumentRoot /home/votre_nom_de_user/website

Modifiez le bloc <Directory /> (ou ajoutez-le s'il n'existe pas)

  <Directory />
      Options FollowSymLinks
      AllowOverride None
      Order allow,deny
      allow from all
      Require all granted
  </Directory>

Remarque : si vous souhaitez faire de l'url-rewriting, mettez “AllowOverride All” à la place de “AllowOverride None”

Relancer le serveur web

  /etc/init.d/apache2 restart

Rebooter si cela ne marche pas.


Afficher les erreurs en PHP

Si vous développez en PHP, il est utile de voir les erreurs de syntaxe, qui, par défaut, ne sont pas affichées.

Pour les visualiser, éditer le fichier /etc/php/7.4/apache2/php.ini

   sudo xed /etc/php/7.4/apache2/php.ini

Chercher l'option display_errors et mettez-là à “on”.

  display_errors = On

La fonction date()

La fonction PHP date() pose parfois problème : PHP exige désormais que le TimeZone soit défini.

Pour ce faire :

  Dans le bloc [Date], ajoutez votre TimeZone :
  date.timezone = "Europe/Brussels";

Vous trouverez ici les valeurs possibles pour ce paramètre : http://php.net/manual/en/timezones.php

Ici aussi il faut relancer le server web.

   /etc/init.d/apache2 restart

Configurer l'url rewriting (si vous en avez besoin)

Activer mod_rewrite

Ouvrir un terminal et taper :

  sudo a2enmod rewrite

(Ouvrez un fichier avec phpinfo() : si le mod_rewrite est activé, il sera mentionné.)

Configurer Apache

Si vous ne l'avez pas fait lors de l'étape de changement de répertoire : ouvrir le fichier de configuration

  sudo xed /etc/apache2/sites-available/000-default.conf

Dans le bloc <Directory />, mettre AllowOverride All à la place de AllowOverride None

  <Directory />
      Options FollowSymLinks
      AllowOverride All
      Order allow,deny
      allow from all
      Require all granted
  </Directory>

Véfifier si l'url rewriting fonctionne bien :

Pour vérifier si le module mod_rewrite d'Apache est activé, il vous suffit de suivre les points suivants :

  • Créez un répertoire nommé test que vous placerez à la racine de votre site (il sera donc accessible via l'adresse 127.0.0.1/test
  • Dans ce répertoire, créez un fichier HTML nommé test.html (127.0.0.1/test/test.html) contenant uniquement les lignes suivantes :
  <html><head><title>Test</title></head><body>OK !</body></html>
  • Dans ce répertoire, créez un fichier nommé .htaccess contenant les lignes suivantes :
  Options +FollowSymlinks
  RewriteEngine on
  RewriteRule inconnu\.html$  /test/test.html [L]

Vous devriez voir “OK” apparaître dans votre navigateur.

Source : http://www.webrankinfo.com/dossiers/techniques/tutoriel-url-rewriting


Problème avec le tag PHP

Ce code pose désormais problème : <? echo $_SERVER['REQUEST_URI'] ?>

Il a fallu le remplacer par <?php echo $_SERVER['REQUEST_URI'] ?>


Configurer MYSQL

  • Ouvrir un terminal
   sudo mysql_secure_installation

!!! Attention à la longueur du password ! 8 minimum par défaut !!!

Répondre comme suit :

Validate Password Plugin : y
Level : 0 (LOW)  (length min = 8)
New Password for root : taper votre mot de passe
Re-enter new password : retaper votre mot de passe
Remove anonymous users : y
Disallow root login remotely : n
Remove test database : n
Reload privileges tables : y

S'il y a encore un souci avec le mot de passe :

    sudo mysql -u root -p

Taper ce qui suit pour modifier le mot de passe

mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'votre_mot_de_passe';

Si la modification du mot de passe est refusée, vérifier les critères de validation :

mysql> SHOW VARIABLES LIKE 'validate_password%';

Au besoin, modifier ces critères

mysql> SET GLOBAL validate_password.length = longueur minimale souhaitée; 
mysql> SET GLOBAL validate_password.number_count = 0; 
mysql> SET GLOBAL validate_password.policy=LOW;

Et remodifier le mot de masse

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'votre_mot_de_passe';

Adminer ?

Nous n'installons plus PHPMyAdmin. AdMiner suffit pour ce qu'on a besoin de faire. Peut-être est-ce votre cas..

Adminer, (ne pas prendre celui des dépôts, périmés), est une solution sans doute suffisante pour bon nombre d'utilisateurs.

Adminer (anciennement phpMinAdmin) est une application Web offrant une interface graphique pour le système de gestion de base de données MySQL, réalisée en PHP et distribuée sous licence Apache. Il se présente comme une alternative légère (plus léger que cela tu meurs) à phpMyAdmin et a pour particularité d'être entièrement contenu dans un seul fichier PHP.

Depuis la version 3.0.0, sortie le 15 octobre 2010, Adminer supporte également les bases de données MS SQL, SQLite, PostgreSQL et Oracle1.

Pour importer des fichiers de grandes tailles et contourner la limite de taille, mettre un .htaccess dans le répertoire adminer et y mettre :

  php_value upload_max_filesize 10M
  php_value post_max_size 20M
  php_value memory_limit 32M
serveur_lamp7.txt · Dernière modification : 2021/01/09 14:25 de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki